본문으로 건너뛰기
max_parallel_maintenance_workers

max_parallel_maintenance_workers

버전기본값context타입
142userinteger
152userinteger
162userinteger
172userinteger
182userinteger
192userinteger

유틸리티 명령 하나가 시작할 수 있는 parallel worker 수의 상한을 정한다. 기본값은 2이고, 0으로 설정하면 유틸리티 명령의 parallel worker 사용이 꺼진다.

현재 parallel worker를 활용하는 유틸리티 명령은 B-tree·GIN·BRIN 인덱스를 만드는 CREATE INDEX, 그리고 FULL 옵션 없는 VACUUM이다. parallel worker는 max_worker_processes가 만든 프로세스 풀에서 가져오며 max_parallel_workers의 제약도 함께 받는다. 따라서 이 값을 올려도 풀에 여유가 없으면 요청한 수만큼 worker를 못 받을 수 있고, 그 경우 작업은 더 적은 worker로 진행된다.

parallel query와 다른 점 하나는 메모리 한도의 적용 방식이다. parallel query에서는 work_mem 같은 한도가 worker마다 따로 적용되지만, parallel 유틸리티 명령은 maintenance_work_mem을 worker 수와 무관하게 명령 전체에 대한 한도로 취급한다. 그래서 worker를 늘려도 메모리 사용량이 그만큼 배로 늘지는 않는다. 다만 CPU와 I/O 대역폭은 worker 수에 비례해 더 쓸 수 있다.

출처: PostgreSQL 18 문서