min_dynamic_shared_memory
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | 0 (none) | postmaster (재시작) | integer |
| 15 | 0 (none) | postmaster (재시작) | integer |
| 16 | 0 (none) | postmaster (재시작) | integer |
| 17 | 0 (none) | postmaster (재시작) | integer |
| 18 | 0 (none) | postmaster (재시작) | integer |
| 19 | 0 (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 문서