DB & SQL

[PostgreSQL] VACUUM

akasha.park 2025. 5. 19. 16:16

maintenance_work_mem : VACUUM, CREATE INDEX, ALTER TABLE ADD FOREIGN KEY 등의 작업에 할당된 메모리 양을 설정합니다.
자동 VACUUM이 아닌 수동 VACUUM 시 사용됩니다.
(기본값: 64MB)

autovacuum_work_mem : 자동 VACUUM 작업에 사용되는 메모리 양을 설정합니다.

autovacuum_max_workers :  동시에 실행될 수 있는 자동 VACUUM 프로세스의 최대 개수를 설정합니다. (기본값: 3)
 
autovacuum_naptime :  각 자동 VACUUM 프로세스가 다음 작업을 시작하기 전 대기하는 시간 간격을 설정합니다.

autovacuum_vacuum_threshold : 자동 VACUUM이 시작되기 위한 기본 임계값을 설정합니다.  (기본값: 50)
 
autovacuum_vacuum_scale_factor :  각 테이블의 크기에 비례하여 VACUUM이 시작되는 비율을 설정합니다. 
기본값: 0.2 (20%)
 
autovacuum_ vacuum_cost_delay  :  VACUUM 작업의 대기 시간을 설정 (ms)
 
autovacuum_ vacuum_cost_limit : VACUUM의 비용 한도  

autovacuum_freeze_max_age  : XID가 랩어라운드 되기 전 테이블을 VACUUM하는 임계값  

autovacuum_analyze_threshold : ANALYZE가 시작되는 기본 임계값  

autovacuum_analyze_scale_factor : ANALYZE의 비율 설정 0.1  

 

log_autovacuum_min_duration : 자동 VACUUM (autovacuum) 작업의 활동을 모니터링하는 데 사용되는 중요한 PostgreSQL 파라미터 
autovacuum 작업이 시작된 후 해당 작업의 소요 시간을 로깅하는 데 사용됩니다.
설정된 시간(밀리초)보다 오래 걸린 autovacuum 작업만 로깅합니다.
기본값: -1 (비활성화)
단위: 밀리초 (ms)

#postgresql.conf 파일에서 설정
log_autovacuum_min_duration = 1000  # 1초

#실행 중인 서버에서 즉시 적용
ALTER SYSTEM SET log_autovacuum_min_duration = 1000;
SELECT pg_reload_conf();

#세션 단위 설정
SET log_autovacuum_min_duration = 500;

 

pg_catalog.pg_stat_progress_vacuum : 현재 진행 중인 VACUUM 작업의 상태를 모니터링하는 시스템 뷰