Free Lines Arrow
본문 바로가기
DataBase/Clickhouse

[ClickHouse] 클릭하우스 Memory exceeded

by skahn1215 2024. 1. 20.
728x90
반응형

클릭하우스 메모리 초과

  • 클릭하우스의 데이터가 많고 쿼리 조회량이 많아 지는 경우 다음과 같은
    에러가 발생 할 수 있다. 
DB::Exception: Memory limit (for query) exceeded: would use 18.64 GiB 
(attempt to allocate chunk of 4227918 bytes), maximum: 18.63 GiB

 

 

클릭 하우스의 Maxmum Memory 계산법

  • max_server_memory_usage 는 아래와 같은 공식으로 정해진다
max_server_memory_usage = max_memory_usage * max_server_memory_usage_to_ram_ratio

 

  • max_memory_usage 는 기본 적으로 10GB 로 환경설정 파일에 정의 되어 있다.
  • max_server_memory_usage_to_ram_ratio​ 는 기본적으로 0.9 값이다. 

 

해결방안

  • max_memory_usage: 20
  • max_server_memory_usage_to_ram_ratio :0.9 였다.
  • 맨 위 18.63 으로 최대 값이 정해졌고 18.64 질의로 메모리가 초과 되었다.
  • max_server_memory_usage_to_ram_ratio 1.2 로 증가 시켜주어 해결해 주었다.

 

주의사항

그럼 무조건 1.2 로 늘려 주는것이 답인가?

아니다. 아래와 같은 순으로 확을하면 좋을 것 같다.

1. 쿼리가 최적화가 가능한가?

2. 실제 max_server_memory_usage_to_ram_ratio 1.2 로 하였을때 서버의 메모리가 충분한가?

 

2가지를 고려하여 메모리값을 계산해서 정의하면 좋을 것 같다.

 

 

 

728x90
반응형

댓글