본문으로 건너뛰기
vacuum_buffer_usage_limit

vacuum_buffer_usage_limit

버전기본값context타입
16256 kBuserinteger
172MBuserinteger
182MBuserinteger
192MBuserinteger

VACUUMANALYZE가 사용하는 Buffer Access Strategy의 크기를 지정한다. 기본값은 2MB이며, 단위 없이 값을 주면 킬로바이트로 해석한다. 언제든 변경할 수 있다.

Buffer Access Strategy는 vacuum이 shared buffers 전체를 휘젓지 않도록 제한된 크기의 buffer ring만 돌려쓰게 하는 장치다. 값을 0으로 주면 이 제한이 풀려 shared buffers를 제한 없이 쓸 수 있다. 유효 범위는 128kB부터 16GB까지이고, 지정한 크기가 shared_buffers의 1/8을 넘으면 조용히 그 값으로 잘린다. VACUUMANALYZE 명령에 BUFFER_USAGE_LIMIT 옵션을 주면 개별 실행에서 이 설정을 재정의할 수 있다.

값을 키우면 vacuum과 analyze가 빨라질 수 있지만, 너무 크게 잡으면 다른 세션에 유용한 페이지들이 shared buffers에서 밀려난다. 기본값 2MB는 vacuum이 캐시를 오염시키지 않는 쪽에 무게를 둔 설정이다.

운영 노트: 대형 테이블을 급히 vacuum해야 하는 상황(예: wraparound 임박)이라면 VACUUM (BUFFER_USAGE_LIMIT '1GB') ...처럼 일회성으로 키우는 방법이 있다. 전역값을 올리는 것보다 부작용 범위를 좁힐 수 있다.

출처: PostgreSQL 18 문서