checkpoint_completion_target
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | 0 | sighup | string |
| 15 | 0 | sighup | string |
| 16 | 0 | sighup | string |
| 17 | 0 | sighup | string |
| 18 | 0 | sighup | string |
| 19 | 0 | sighup | string |
checkpoint를 완료하기까지의 목표 시점을, checkpoint 간격 전체 시간에 대한 비율로 정한다. 기본값은 0.9다.
기본값 0.9는 checkpoint 작업을 사용 가능한 간격의 거의 전체에 걸쳐 분산시킨다. 이렇게 하면 I/O 부하가 한쪽에 몰리지 않고 비교적 고르게 퍼져, checkpoint로 인한 디스크 쓰기 폭주를 완화하면서 마무리에 필요한 약간의 여유 시간도 남긴다.
이 값을 줄이는 것은 권장하지 않는다. 값을 낮추면 checkpoint를 더 빨리 끝내게 되는데, 그러면 checkpoint 동안 I/O가 높게 치솟았다가 다음 checkpoint 전까지 I/O가 한산한 구간이 생겨 부하가 들쭉날쭉해진다. 이 파라미터는 postgresql.conf나 서버 커맨드라인에서만 설정할 수 있다.
운영 노트: 특별한 이유가 없으면 기본값 0.9를 그대로 두는 것이 좋다. checkpoint I/O를 간격 전체에 분산시켜 쓰기 부하가 고르게 퍼지도록 하는 설계 의도에 가장 잘 맞는 값이다.
출처: PostgreSQL 18 문서