autovacuum_vacuum_scale_factor
| 버전 | 기본값 | 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 |
autovacuum이 VACUUM을 일으킬지 판단할 때, autovacuum_vacuum_threshold에 더할 값을 테이블 크기의 비율로 정한다. 기본값은 0.2로, 테이블 크기의 20%에 해당한다.
autovacuum은 테이블에 쌓인 dead tuple 수가 autovacuum_vacuum_threshold + autovacuum_vacuum_scale_factor × 테이블 행 수를 넘으면 vacuum을 시작한다. 따라서 scale factor가 크면 큰 테이블일수록 vacuum이 늦게 일어나 dead tuple과 bloat이 더 많이 쌓이고, 작으면 더 자주 일어난다. 이 파라미터는 postgresql.conf나 서버 커맨드라인에서 설정하지만, 개별 테이블의 storage parameter로 덮어쓸 수도 있다.
운영 노트: 행 수가 아주 많은 대형 테이블에서는 비율 기반 임계값이 너무 커져 vacuum이 드물게 돌고 bloat이 심해지기 쉽다. 이런 테이블은 테이블 단위 storage parameter로
autovacuum_vacuum_scale_factor를 낮추거나 autovacuum_vacuum_threshold를 조정해 vacuum 주기를 따로 잡는 것이 효과적이다.출처: PostgreSQL 18 문서