ClickHouse锁竞争:一年之痒的性能瓶颈
2025-03-21
Tinybird在高负载期间遇到了ClickHouse集群CPU利用率极低的难题,持续了一年之久。最终发现问题根源在于Context锁竞争。通过添加`ContextLockWaitMicroseconds`指标监控锁等待时间,并重构Context锁机制,将单全局互斥锁替换为读写互斥锁,显著提升了性能。文章还详细介绍了使用Clang线程安全分析工具排查和解决并发问题的过程,以及性能改进后的基准测试结果,最终实现了3倍的QPS提升和CPU利用率的显著提高。
开发