io_combine_limit
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 17 | 128kB | user | integer |
| 18 | 128kB | user | integer |
| 19 | 128kB | user | integer |
I/O를 병합해 수행하는 연산에서 한 번에 처리할 수 있는 최대 I/O 크기를 정한다. 단위 없이 값을 주면 블록(BLCKSZ, 보통 8kB) 단위로 해석하며, 기본값은 128kB다.
PostgreSQL은 sequential scan처럼 연속된 블록을 읽는 작업에서 여러 블록의 읽기를 하나의 큰 I/O로 합쳐 시스템 콜 횟수를 줄이고 throughput을 높인다. 이 파라미터가 그 병합 크기의 상한이다. io_max_combine_limit보다 높게 설정하면 경고 없이 더 낮은 값이 대신 쓰이므로, I/O 크기를 키우려면 두 값을 함께 올려야 한다. 설정 가능한 최대 크기는 OS와 블록 크기에 따라 다르지만 보통 Unix에서 1MB, Windows에서 128kB다.
운영 노트: 세션 단위로 바꿀 수 있는 값이므로 대량 scan 성능을 실험할 때
SET io_combine_limit으로 조정해 볼 수 있다. 다만 상한인 io_max_combine_limit는 서버 시작 시에만 바꿀 수 있다는 점을 기억해 둔다.출처: PostgreSQL 18 문서