io_worker_idle_timeout
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 19 | 1 minute | sighup | integer |
완전히 idle 상태인 I/O worker process가 종료되기까지의 시간을 정한다. PostgreSQL 19(beta)에서 추가된 파라미터로, 기본값은 1분이다.
PostgreSQL 18에서는 I/O worker 수를 io_workers 하나로 고정했지만, PostgreSQL 19는 부하에 따라 pool 크기가 자동으로 늘고 주는 방식으로 바꿨다. io_min_workers가 pool의 하한, io_max_workers가 상한이며, worker가 늘어나는 속도는 io_worker_launch_interval이, 한가해진 worker가 정리되는 시점은 io_worker_idle_timeout이 제어한다. 네 파라미터 모두 io_method가 worker일 때만 효과가 있고, postgresql.conf 파일이나 서버 command line에서만 설정할 수 있다.
이 timeout이 지나도록 일이 없던 worker는 스스로 종료해 pool 크기를 수요에 맞춰 줄인다. 단, pool은 io_min_workers 아래로는 줄어들지 않는다.
운영 노트: I/O burst가 주기적으로 반복되는 워크로드라면 timeout을 늘려 pool이 줄었다 다시 커지기를 반복하는 것을 피할 수 있다. 반대로 부하가 드문 인스턴스에서는 기본값으로도 충분하다.
출처: PostgreSQL 19 문서