본문으로 건너뛰기
vacuum_cost_page_miss

vacuum_cost_page_miss

버전기본값context타입
142userinteger
152userinteger
162userinteger
172userinteger
182userinteger
192userinteger

cost 기반 vacuum delay 체계에서, vacuum이 디스크에서 읽어와야 하는 buffer를 처리할 때 부과하는 추정 비용이다. 기본값은 2다.

buffer pool을 잠그고, 공유 hash table을 조회하고, 원하는 블록을 디스크에서 읽어 들인 뒤 내용을 훑는 수고를 나타낸다. 캐시에 있는 페이지를 처리하는 vacuum_cost_page_hit(기본 1)보다 디스크 읽기만큼 비싸고, 블록을 dirty로 만드는 vacuum_cost_page_dirty(기본 20)보다는 싸다. 참고로 이 기본값 2는 PostgreSQL 14에서 10에서 하향된 것으로, 현대 스토리지에서 읽기 비용이 과대평가돼 있었다는 판단이 반영됐다.

vacuum이 누적한 비용의 합이 vacuum_cost_limit에 도달하면 프로세스는 vacuum_cost_delay만큼 잠들었다가 재개한다. 캐시에 없는 콜드 데이터를 vacuum할 때 이 비용이 주로 쌓이며, 값 자체를 바꾸기보다 vacuum_cost_limit과 delay로 전체 처리량을 조절하는 것이 일반적이다.

출처: PostgreSQL 18 문서