autovacuum_worker_slots
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 18 | typically 16 slots | postmaster (재시작) | integer |
| 19 | typically 16 slots | postmaster (재시작) | integer |
autovacuum worker 프로세스를 위해 예약할 프로세스 slot 수를 정한다. 기본값은 보통 16이지만, initdb 시점에 커널 설정이 이를 지원하지 못하면 더 작게 잡힐 수 있다. 서버 시작 시에만 설정할 수 있다.
PostgreSQL 18에서 autovacuum_max_workers를 reload로 조정할 수 있게 만들면서 도입된 파라미터다. 공유 메모리 구조는 서버 시작 시 크기가 고정되므로, worker가 쓸 slot 풀을 이 파라미터로 미리 넉넉히 예약해 두고 실제 동시 실행 개수는 autovacuum_max_workers로 그때그때 조절하는 구조다. 따라서 autovacuum_max_workers를 이 값보다 크게 설정해도 초과분은 효과가 없다. 이 값을 바꿀 때는 autovacuum_max_workers도 함께 검토해야 한다.
운영 노트: 기본값 16이면 대부분의 환경에서 여유가 충분하다. slot은 예약만 해 두는 것이므로 크게 잡아도 그 자체로 worker가 늘어나지는 않지만, 재시작 없이 worker를 증설할 수 있는 상한이 된다. vacuum 부하 변동이 큰 대형 인스턴스라면 slot을 여유 있게 잡아 두고
autovacuum_max_workers만 reload로 올렸다 내렸다 하는 운영이 가능하다.출처: PostgreSQL 18 문서