ClickHouse 락 경쟁: 1년간 지속된 성능 병목 현상

2025-03-21

Tinybird는 피크 로드 중 ClickHouse 클러스터의 CPU 사용률이 매우 낮은 문제를 1년 동안 겪었습니다. 근본 원인은 Context 락 경쟁으로 밝혀졌습니다. `ContextLockWaitMicroseconds` 메트릭을 추가하여 락 대기 시간을 모니터링하고 Context 락 메커니즘을 재설계함으로써(단일 글로벌 뮤텍스를 읽기-쓰기 뮤텍스로 교체) 성능이 크게 향상되었습니다. 이 글에서는 Clang의 스레드 안전성 분석을 사용하여 동시성 문제를 디버깅 및 해결하는 방법과 QPS가 3배 증가하고 CPU 사용률이 크게 향상된 벤치마크 결과에 대해 자세히 설명합니다.

더 보기
개발