최대 메모리 사용량 관련 설정
최대 메모리 사용량 관련 설정
단일 서버에서 쿼리를 실행할 때 사용하는 최대 RAM 양을 제어하는 설정들이에요. 쿼리별 및 사용자별 메모리 제한을 지정할 수 있답니다. 이 설정들은 system.settings 테이블에서 확인할 수 있고 소스 코드에서 자동 생성된 값들이에요.
출처: 문서
본문
이 설정들은 system.settings에서 확인할 수 있고, 소스 코드에서 자동 생성된 값들이에요.
max_memory_usage
클라우드 기본값: 레플리카의 RAM 양에 따라 달라져요.
단일 서버에서 쿼리를 실행할 때 사용할 최대 RAM 양이에요. 값 0은 무제한을 의미해요. 이 설정은 사용 가능한 메모리 양이나 머신의 총 메모리 양을 고려하지 않아요. 제한은 단일 서버 내의 단일 쿼리에 적용돼요.
SHOW PROCESSLIST를 사용해 각 쿼리의 현재 메모리 소비를 볼 수 있어요. 각 쿼리에 대해 최대 메모리 소비가 추적되고 로그에 기록돼요.
다음 집계 함수의 String과 Array 인자에 대한 상태에는 메모리 사용량이 완전히 추적되지 않아요:
minmaxanyanyLastargMinargMax
메모리 소비는 max_memory_usage_for_user과 max_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');