최대 메모리 사용량 관련 설정

최대 메모리 사용량 관련 설정

단일 서버에서 쿼리를 실행할 때 사용하는 최대 RAM 양을 제어하는 설정들이에요. 쿼리별 및 사용자별 메모리 제한을 지정할 수 있답니다. 이 설정들은 system.settings 테이블에서 확인할 수 있고 소스 코드에서 자동 생성된 값들이에요.

출처: 문서

본문

이 설정들은 system.settings에서 확인할 수 있고, 소스 코드에서 자동 생성된 값들이에요.

max_memory_usage

클라우드 기본값: 레플리카의 RAM 양에 따라 달라져요.

단일 서버에서 쿼리를 실행할 때 사용할 최대 RAM 양이에요. 값 0은 무제한을 의미해요. 이 설정은 사용 가능한 메모리 양이나 머신의 총 메모리 양을 고려하지 않아요. 제한은 단일 서버 내의 단일 쿼리에 적용돼요.

SHOW PROCESSLIST를 사용해 각 쿼리의 현재 메모리 소비를 볼 수 있어요. 각 쿼리에 대해 최대 메모리 소비가 추적되고 로그에 기록돼요.

다음 집계 함수의 StringArray 인자에 대한 상태에는 메모리 사용량이 완전히 추적되지 않아요:

  • min
  • max
  • any
  • anyLast
  • argMin
  • argMax

메모리 소비는 max_memory_usage_for_usermax_server_memory_usage 파라미터로도 제한돼요.

max_memory_usage_for_user

단일 서버에서 사용자의 쿼리를 실행할 때 사용할 최대 RAM 양이에요. 0은 무제한을 의미해요. 기본적으로 이 양은 제한되지 않아요(max_memory_usage_for_user = 0). max_memory_usage의 설명도 참조하세요.

예를 들어 clickhouse_read라는 사용자에 대해 max_memory_usage_for_user를 1000바이트로 설정하려면 다음 문장을 사용할 수 있어요:

ALTER USER clickhouse_read SETTINGS max_memory_usage_for_user = 1000;

클라이언트에서 로그아웃했다가 다시 로그인하고 getSetting 함수를 사용하면 작동했는지 확인할 수 있어요:

SELECT getSetting('max_memory_usage_for_user');

더 알아보기 (Learn more)