리소스 관리 속성
리소스 관리 속성 (Resource management properties)
쿼리가 클러스터에서 사용할 수 있는 메모리·CPU 등 리소스의 상한을 정하는 관리 속성들이에요.
출처: 문서
본문
query.max-cpu-time
- 타입: duration
- 기본값:
1_000_000_000d
쿼리가 클러스터 전체에서 사용할 수 있는 최대 CPU 시간이에요. 이 한도를 초과한 쿼리는 종료(kill)돼요.
query.max-memory-per-node
- 타입: heap size
- 기본값: (노드의 최대 힙 크기의 30%)
쿼리가 한 워커에서 사용할 수 있는 최대 사용자 메모리(user memory)예요. 사용자 메모리는 실행 중 사용자 쿼리에 직접 귀속되거나 제어 가능한 것들에 할당돼요. 예를 들어 실행 중 만들어지는 해시 테이블이 쓰는 메모리, 정렬에 쓰이는 메모리 등이죠. 어떤 워커에서든 쿼리의 사용자 메모리 할당이 이 한도에 도달하면 쿼리가 종료돼요.
경고 (Warning)
query.max-memory-per-node와 memory.heap-headroom-per-node의 합은 노드의 JVM 최대 힙 크기보다 작아야 해요. JVM 설정을 참고하세요.
참고 (Note)
태스크 수준 재시도가 활성화된 쿼리(
retry-policy=TASK)에는 적용되지 않아요.
query.max-memory
- 타입: data size
- 기본값:
20GB
쿼리가 클러스터 전체에서 사용할 수 있는 최대 사용자 메모리예요. 사용자 메모리는 실행 중 사용자 쿼리에 직접 귀속되거나 제어 가능한 것들에 할당돼요. 예를 들어 실행 중 만들어지는 해시 테이블이 쓰는 메모리, 정렬에 쓰이는 메모리 등이죠. 모든 워커에서 쿼리의 사용자 메모리 할당이 이 한도에 도달하면 쿼리가 종료돼요.
경고 (Warning)
query.max-total-memory는 query.max-memory보다 커야 해요.
참고 (Note)
태스크 수준 재시도가 활성화된 쿼리(
retry-policy=TASK)에는 적용되지 않아요.
query.max-total-memory
- 타입: data size
- 기본값: (
query.max-memory* 2)
쿼리가 클러스터 전체에서 사용할 수 있는 최대 총 메모리로, 회수 가능한(revocable) 메모리를 포함해요. 모든 워커에서 쿼리가 할당한 메모리가 이 한도에 도달하면 쿼리가 종료돼요. query.max-total-memory의 값은 query.max-memory보다 커야 해요.
경고 (Warning)
query.max-total-memory는 query.max-memory보다 커야 해요.
참고 (Note)
태스크 수준 재시도가 활성화된 쿼리(
retry-policy=TASK)에는 적용되지 않아요.
memory.heap-headroom-per-node
- 타입: heap size
- 기본값: (노드의 최대 힙 크기의 30%)
Trino가 추적하지 않는 할당을 위해 JVM 힙에 여유분(headroom)/버퍼로 남겨두는 메모리 양이에요.
경고 (Warning)
query.max-memory-per-node와 memory.heap-headroom-per-node의 합은 노드의 JVM 최대 힙 크기보다 작아야 해요. JVM 설정을 참고하세요.
exchange.deduplication-buffer-size
- 타입: data size
- 기본값:
32MB
장애 허용 실행 동안 스풀된 데이터에 사용하는 버퍼 크기예요.
더 알아보기 (Learn more)
메모리 사용을 세분화해서 관리하는 방법이 궁금하다면 스필(Spill to disk) 문서를 이어서 읽어 보세요.