recovery_prefetch
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 15 | — | user | enum |
| 16 | — | user | enum |
| 17 | — | user | enum |
| 18 | — | user | enum |
| 19 | — | user | enum |
recovery 중 WAL이 참조하는 블록 가운데 아직 buffer pool에 없는 블록을 미리 읽어올지(prefetch) 결정한다.
유효한 값은 off, on, try이며 기본값은 try다. try는 운영체제가 read-ahead advice 발행을 지원할 때만 prefetch를 활성화한다. 곧 필요해질 블록을 미리 읽어 두면 일부 워크로드에서 recovery 중 I/O 대기 시간을 줄일 수 있다. crash recovery나 standby의 WAL replay처럼 recovery가 진행 중일 때만 동작에 영향을 주는 파라미터다.
prefetch가 WAL을 얼마나 앞서 읽을지는 wal_decode_buffer_size가, 동시에 발행할 수 있는 prefetch 양은 maintenance_io_concurrency가 제한한다.
운영 노트: standby의 replay 지연이 랜덤 읽기 I/O 대기에서 오는 경우라면
maintenance_io_concurrency와 wal_decode_buffer_size를 함께 조정해 prefetch 효과를 키울 수 있다.출처: PostgreSQL 18 문서