vacuum_buffer_usage_limit
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 16 | 256 kB | user | integer |
| 17 | 2MB | user | integer |
| 18 | 2MB | user | integer |
| 19 | 2MB | user | integer |
VACUUM과 ANALYZE가 사용하는 Buffer Access Strategy의 크기를 지정한다. 기본값은 2MB이며, 단위 없이 값을 주면 킬로바이트로 해석한다. 언제든 변경할 수 있다.
Buffer Access Strategy는 vacuum이 shared buffers 전체를 휘젓지 않도록 제한된 크기의 buffer ring만 돌려쓰게 하는 장치다. 값을 0으로 주면 이 제한이 풀려 shared buffers를 제한 없이 쓸 수 있다. 유효 범위는 128kB부터 16GB까지이고, 지정한 크기가 shared_buffers의 1/8을 넘으면 조용히 그 값으로 잘린다. VACUUM과 ANALYZE 명령에 BUFFER_USAGE_LIMIT 옵션을 주면 개별 실행에서 이 설정을 재정의할 수 있다.
값을 키우면 vacuum과 analyze가 빨라질 수 있지만, 너무 크게 잡으면 다른 세션에 유용한 페이지들이 shared buffers에서 밀려난다. 기본값 2MB는 vacuum이 캐시를 오염시키지 않는 쪽에 무게를 둔 설정이다.
운영 노트: 대형 테이블을 급히 vacuum해야 하는 상황(예: wraparound 임박)이라면
VACUUM (BUFFER_USAGE_LIMIT '1GB') ...처럼 일회성으로 키우는 방법이 있다. 전역값을 올리는 것보다 부작용 범위를 좁힐 수 있다.출처: PostgreSQL 18 문서