vacuum_cost_page_dirty
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | 20 | user | integer |
| 15 | 20 | user | integer |
| 16 | 20 | user | integer |
| 17 | 20 | user | integer |
| 18 | 20 | user | integer |
| 19 | 20 | user | integer |
cost 기반 vacuum delay 체계에서, vacuum이 이전까지 깨끗했던 블록을 수정(dirty 상태로 변경)할 때 부과하는 추정 비용이다. 기본값은 20이다.
dirty가 된 블록은 나중에 디스크로 다시 flush해야 하므로 추가 I/O가 발생한다. 이 값은 그 비용을 반영한다. 세 가지 page 비용(vacuum_cost_page_hit 1, vacuum_cost_page_miss 2, vacuum_cost_page_dirty 20) 가운데 가장 커서, dead row 정리가 실제로 많이 일어나는 vacuum일수록 비용이 빨리 쌓여 vacuum_cost_limit에 먼저 도달하고 그만큼 자주 쉬게 된다. 반대로 정리할 것이 없어 읽기만 하는 vacuum은 상대적으로 빠르게 진행된다.
이 값 자체를 바꾸는 일은 드물다. vacuum 처리량 조절은 보통 vacuum_cost_limit이나 autovacuum_vacuum_cost_delay 쪽에서 한다. 쓰기 비용의 가중치를 읽기 대비 낮추거나 높여 vacuum의 쓰기 I/O 성향을 미세 조정하고 싶을 때만 손대는 파라미터다.
출처: PostgreSQL 18 문서