본문으로 건너뛰기
shared_memory_type

shared_memory_type

버전기본값context타입
14postmaster (재시작)enum
15postmaster (재시작)enum
16postmaster (재시작)enum
17postmaster (재시작)enum
18postmaster (재시작)enum
19postmaster (재시작)enum

shared buffers를 비롯한 공유 데이터가 담기는 주 shared memory 영역을 어떤 구현으로 만들지 지정한다. 서버 시작 시에만 설정할 수 있다.

선택지는 세 가지다. mmapmmap으로 할당하는 익명 shared memory, sysvshmget으로 할당하는 System V shared memory, windows는 Windows shared memory다. 모든 플랫폼이 모든 값을 지원하는 것은 아니며, 각 플랫폼에서 지원되는 첫 번째 옵션이 그 플랫폼의 기본값이 된다. Linux를 포함한 대부분의 환경에서 기본값은 mmap이다.

sysv는 어떤 플랫폼에서도 기본값이 아니며 사용이 권장되지 않는다. 큰 메모리 할당을 허용하려면 보통 커널 설정(kernel.shmmax, kernel.shmall 등)을 기본값과 다르게 손봐야 하기 때문이다.

운영 노트: 사실상 바꿀 일이 없는 파라미터다. 과거 PostgreSQL 9.2 이하에서 shared_buffers를 키울 때 필요했던 커널 shmmax 조정은 mmap 방식이 기본이 된 이후로는 필요 없다.

출처: PostgreSQL 18 문서