[Clickhouse] 하드웨어 사양 선택

clickhouse는 빠른 쿼리 성능에 집착하는만큼, 리소스도 매우 많이 소모하는 편이다.
그래서 고성능 장비가 좀 있어야 제 성능을 낼 수 있다.




메모리 최소 사양

공식 문서에서 지정하는 최소 사양은 따로 없다.
하지만 8GB 미만이면 최소한의 동작도 어렵고, 통상적으로 32GB 정도는 있어야 한다고 본다.




CPU와 메모리

CPU 코어와 메모리의 비율은 1:2~1:4를 권장한다. 코어가 10개가 있다면 메모리는 20GB~40GB 정도는 있는게 좋다는 것이다.




디스크

되도록이면 성능이 좋은 SSD를 선택하는 편이 좋다.

그리고 clickhouse는 다른 DB들에 비해서 디스크 저장 효율이 매우 뛰어난 편이다.
postgres에서 200gb짜리 데이터를 가져와서 저장한다면, clickhouse에서는 그 절반도 안되는 크기로 저장이 가능하다.

그래도 기본적으로 빅데이터를 핸들링하기 위한 것이니 디스크 용량은 넉넉히 주면 좋다.




메모리와 디스크

메모리와 디스크 사이에도 권장되는 비율이 있다.
대체로 1:30, 1:50 정도를 권장하고, 데이터가 좀 많은 편이라면 1:100정도 까지가 적절하다고 본다.

그러니까 데이터가 10TB 정도라면 각 서버 메모리가 100GB 정도는 되어야 한다는 것이다.




참조
https://github.com/ClickHouse/ClickHouse/issues/50223
https://clickhouse.com/docs/guides/developer/debugging-memory-issues
https://clickhouse.com/docs/guides/sizing-and-hardware-recommendations
https://stackoverflow.com/questions/68592186/clickhouse-memory-issue