shared_memory_type
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | — | postmaster (재시작) | enum |
| 15 | — | postmaster (재시작) | enum |
| 16 | — | postmaster (재시작) | enum |
| 17 | — | postmaster (재시작) | enum |
| 18 | — | postmaster (재시작) | enum |
| 19 | — | postmaster (재시작) | enum |
shared buffers를 비롯한 공유 데이터가 담기는 주 shared memory 영역을 어떤 구현으로 만들지 지정한다. 서버 시작 시에만 설정할 수 있다.
선택지는 세 가지다. mmap은 mmap으로 할당하는 익명 shared memory, sysv는 shmget으로 할당하는 System V shared memory, windows는 Windows shared memory다. 모든 플랫폼이 모든 값을 지원하는 것은 아니며, 각 플랫폼에서 지원되는 첫 번째 옵션이 그 플랫폼의 기본값이 된다. Linux를 포함한 대부분의 환경에서 기본값은 mmap이다.
sysv는 어떤 플랫폼에서도 기본값이 아니며 사용이 권장되지 않는다. 큰 메모리 할당을 허용하려면 보통 커널 설정(kernel.shmmax, kernel.shmall 등)을 기본값과 다르게 손봐야 하기 때문이다.
운영 노트: 사실상 바꿀 일이 없는 파라미터다. 과거 PostgreSQL 9.2 이하에서
shared_buffers를 키울 때 필요했던 커널 shmmax 조정은 mmap 방식이 기본이 된 이후로는 필요 없다.출처: PostgreSQL 18 문서