본문으로 건너뛰기
max_worker_processes

max_worker_processes

버전기본값context타입
148postmaster (재시작)integer
158postmaster (재시작)integer
168postmaster (재시작)integer
178postmaster (재시작)integer
188postmaster (재시작)integer
198postmaster (재시작)integer

클러스터가 지원할 수 있는 background process 수의 상한을 정한다. 기본값은 8이며, 서버 시작 시에만 설정할 수 있다.

이 값은 worker 관련 파라미터 계층의 최상위 예산이다. parallel query와 parallel 유틸리티 명령이 쓰는 parallel worker, logical replication worker, extension이 등록하는 background worker가 모두 이 풀에서 나온다. 그래서 max_parallel_workers를 아무리 크게 잡아도 max_worker_processes를 넘는 부분은 효과가 없다. 값을 바꿀 때는 그 아래 단계인 max_parallel_workers, max_parallel_maintenance_workers, max_parallel_workers_per_gather도 함께 조정하는 것을 고려해야 한다.

standby 서버를 운영할 때는 이 값을 primary와 같거나 더 크게 설정해야 한다. 그렇지 않으면 standby에서 쿼리가 허용되지 않는다.

운영 노트: extension(예: pg_cron, logical replication 구독 다수)이 background worker를 상시 점유하는 환경에서는 남는 풀이 생각보다 작아진다. parallel query가 worker를 못 받아 느려진다면 이 값부터 확인할 필요가 있다. 재시작이 필요한 파라미터이므로 증설 계획 시 미리 여유를 두는 편이 좋다.

출처: PostgreSQL 18 문서