io_max_workers
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 19 | 8 | sighup | integer |
asynchronous I/O를 처리하는 I/O worker process의 최대 수를 정한다. PostgreSQL 19(beta)에서 추가된 파라미터로, 기본값은 8이다.
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에서만 설정할 수 있다.
상한은 인스턴스 전체 기준이다. I/O 대기가 몰리면 pool이 이 값까지 커지고, 부하가 빠지면 io_worker_idle_timeout에 따라 다시 줄어든다.
운영 노트: I/O 대기가 길게 관찰되는데 pool이 상한에 붙어 있다면 값을 올려볼 수 있다. 다만 I/O worker도 process이므로 CPU·메모리 여유와 storage가 감당할 수 있는 동시 I/O 수준을 함께 봐야 한다.
출처: PostgreSQL 19 문서