autovacuum_naptime
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | one minute ( 1min ) | sighup | integer |
| 15 | one minute ( 1min ) | sighup | integer |
| 16 | one minute ( 1min ) | sighup | integer |
| 17 | one minute ( 1min ) | sighup | integer |
| 18 | one minute ( 1min ) | sighup | integer |
| 19 | one minute ( 1min ) | sighup | integer |
한 데이터베이스에 대해 autovacuum이 다시 실행되기까지의 최소 대기 시간을 정한다. 단위 없이 값을 주면 초로 해석하며, 기본값은 1분(1min)이다.
autovacuum launcher는 이 주기에 맞춰 라운드를 돌고, 각 라운드에서 해당 데이터베이스의 테이블들을 검사해 필요한 테이블에 VACUUM과 ANALYZE를 실행한다. 즉 이 값은 “dead tuple이 임계값(autovacuum_vacuum_threshold + autovacuum_vacuum_scale_factor 조합)을 넘긴 테이블이 얼마나 빨리 발견되는가"를 결정한다. 값을 줄이면 임계값 초과를 더 빨리 감지해 vacuum 지연이 짧아지고, 늘리면 검사 자체가 뜸해져 그만큼 정리가 늦어진다. postgresql.conf나 서버 커맨드라인에서만 설정할 수 있다.
운영 노트: 기본값 1분이면 대부분의 워크로드에 충분하다. 검사 부담을 줄이겠다고 이 값을 크게 올리면 갱신이 몰리는 테이블에서 dead tuple 발견이 늦어져 bloat이 앞서 나간다. 반대로 데이터베이스 수가 매우 많은 인스턴스는 launcher가
naptime / 데이터베이스 수 간격으로 worker를 띄우려 하므로, 지나치게 짧은 값은 불필요한 wakeup만 늘린다.출처: PostgreSQL 18 문서