title: postgresql autovacuum not working although process is running
body: <p>I have PostgreSQL 9.2 running on Ubuntu. 
   The autovacuum process is running on the server.</p>
  
  <p>The database has heavy load, 1000's of additions and 100's of deletions daily and yet it seems that autovacuum isn't firing up.</p>
  
  <p>There is nothing relating to vacuum in the logs.</p>
  
  <p>Doing <code>ps -ef  | grep -i vacuum</code></p>
  
  <p>produces: <code>postgres 1406 1130  0 Oct13 00:00:14 postgres: autovacuum launcher process</code></p>
  
  <p>Running query <code>SELECT last_autovacuum , last_autoanalyze FROM pg_stat_user_tables;</code>
  produces no records in last autovacuum column, and 2 entrys in the suto_analyze column.</p>
  
  <p>The pertinent section of postgresql.conf is:</p>
  
  <pre><code>#------------------------------------------------------------------------------
  # 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, &gt; 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
  </code></pre>
  
  <p>Any thoughts? </p>