우분투에서 PostgreSQL 9.2를 실행하고 있습니다. 자동 진공 처리 프로세스가 서버에서 실행 중입니다.프로세스가 실행 중이지만 postgresql autovacuum이 작동하지 않습니다.
데이터베이스의 부하가 높고 추가 용량이 1000이고 삭제 횟수가 100인데 자동 진공이 작동하지 않는 것 같습니다.
로그에는 진공과 관련이 없습니다. 이렇게
ps -ef | grep -i vacuum
는 생산 : postgres 1406 1130 0 Oct13 00:00:14 postgres: autovacuum launcher process
더 마지막 자동 진공 열에서 기록하고 suto_analyze 열에서 2 개 져야 할 엔트리를 생성하지 쿼리 SELECT last_autovacuum , last_autoanalyze FROM pg_stat_user_tables;
를 실행합니다.
는 postgresql.conf의 관련 부분은 다음과 같습니다
#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------
autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
log_autovacuum_min_duration = 250 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
autovacuum_max_workers = 3 # max number of autovacuum subprocesses
# (change requires restart)
#autovacuum_naptime = 1min # time between autovacuum runs
autovacuum_vacuum_threshold = 128 # min number of row updates before
# vacuum
autovacuum_analyze_threshold = 128 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
어떤 생각?
는 http://www.postgresql.org/docs/9.2/static/monitoring-stats.html last_autovacuum보기 악마. 나는 그것이 자동 습격을 끝내는 timestemp다고 생각한다. 데몬이 높은로드를 생성하는 경우라면 어쨌든 실행할 수 있습니다. SQL 명령으로 명령 줄에서 진공을 실행하여 각 테이블에서 진공이 얼마나 오래 실행되는지 확인하십시오. –
"1000 개의 추가 및 100 개의 삭제"가 그다지 많은 활동이 아닙니다. 테이블에 부풀어 오르고 있습니까? n_dead_tup은 진공 청소기로 청소하는 것이 실제로 모든 테이블에 필요한 것입니까? 어쩌면 진공 청소기로 청소하는 것이 자주 필요하지 않을 수도 있습니다. log_autovacuum_min_duration = 0으로 설정하면 로그에 더 많은 내용이 기록되지만, 제대로 작동하는지 여부를 증명하기에 충분하지 않을 수도 있습니다. suto_analyze 무엇입니까? – jjanes