본문으로 건너뛰기
min_dynamic_shared_memory

min_dynamic_shared_memory

버전기본값context타입
140 (none)postmaster (재시작)integer
150 (none)postmaster (재시작)integer
160 (none)postmaster (재시작)integer
170 (none)postmaster (재시작)integer
180 (none)postmaster (재시작)integer
190 (none)postmaster (재시작)integer

parallel query가 쓸 shared memory를 서버 시작 시점에 미리 얼마나 할당해 둘지 지정한다. 기본값은 0(할당 안 함)이며, 서버 시작 시에만 설정할 수 있다.

parallel query는 실행 중에 dynamic shared memory 영역을 필요로 한다. 이 파라미터로 잡아둔 영역이 부족하거나 동시 쿼리들이 다 써버리면, 새 parallel query는 dynamic_shared_memory_type에 설정된 방식으로 OS에서 shared memory를 그때그때 추가로 할당받는다. 이 경로는 메모리 관리 오버헤드 때문에 더 느릴 수 있다.

시작 시점에 min_dynamic_shared_memory로 할당된 메모리는 huge_pages 설정의 적용을 받는다. huge page를 지원하는 OS에서는 이 영역이 큰 페이지의 이점을 받을 가능성이 높고, OS가 자동으로 관리하는 플랫폼에서도 마찬가지다.

운영 노트: parallel query를 많이 쓰는 분석성 워크로드에서 huge_pages를 켜둔 경우라면 이 값을 잡아 parallel query의 메모리 할당 경로를 안정화하는 효과를 볼 수 있다. OLTP 위주라면 기본값 0으로 충분하다.

출처: PostgreSQL 18 문서