Hi there,

I run VACUUM VERBOSE and the output from it is below:
-----------------
INFO:  vacuuming "ais.t_ais_position"
INFO:  scanned index "t_ais_position_pkey" to remove 972 row versions
DETAIL:  CPU 0.00s/0.00u sec elapsed 0.32 sec.
INFO:  scanned index "ix_t_ais_position_update_time" to remove 972 row versions
DETAIL:  CPU 0.00s/0.01u sec elapsed 2.81 sec.
INFO:  scanned index "idx_ais_position" to remove 972 row versions
DETAIL:  CPU 0.00s/0.00u sec elapsed 1.29 sec.
INFO:  "t_ais_position": removed 972 row versions in 305 pages
DETAIL:  CPU 0.00s/0.00u sec elapsed 0.46 sec.
INFO:  index "t_ais_position_pkey" now contains 26582 row versions in 145 pages
DETAIL:  972 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO:  index "ix_t_ais_position_update_time" now contains 26582 row versions in 
250 pages
DETAIL:  972 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO:  index "idx_ais_position" now contains 26664 row versions in 246 pages
DETAIL:  972 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.93 sec.
INFO:  "t_ais_position": found 972 removable, 26582 nonremovable row versions 
in 498 pages
DETAIL:  22 dead row versions cannot be removed yet.
There were 9796 unused item pointers.
498 pages contain useful free space.
0 pages are entirely empty.
CPU 0.00s/0.01u sec elapsed 6.81 sec.

Query returned successfully with no result in 6889 ms.
------------------


Then I left system running for several hours. There was about 1 mln updates to 
the table (1000/min).
The number of rows in the table haven't changed much: from 26582 to 26962 rows.
Autovacuum was executed on avarage every 5 minutes (scale_factor for this table 
is 0.01, base_thresh is 100, naptime is default 1 min).

Then I run VACUUM VERBOSE one more time:

----------------
INFO:  vacuuming "ais.t_ais_position"
INFO:  scanned index "t_ais_position_pkey" to remove 2387 row versions
DETAIL:  CPU 0.00s/0.01u sec elapsed 0.32 sec.
INFO:  scanned index "ix_t_ais_position_update_time" to remove 2387 row versions
DETAIL:  CPU 0.00s/0.00u sec elapsed 19.22 sec.
INFO:  scanned index "idx_ais_position" to remove 2387 row versions
DETAIL:  CPU 0.00s/0.00u sec elapsed 2.17 sec.
INFO:  "t_ais_position": removed 2387 row versions in 489 pages
DETAIL:  CPU 0.00s/0.00u sec elapsed 1.54 sec.
INFO:  index "t_ais_position_pkey" now contains 26962 row versions in 146 pages
DETAIL:  2387 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO:  index "ix_t_ais_position_update_time" now contains 26962 row versions in 
2218 pages
DETAIL:  2387 index row versions were removed.
19 index pages have been deleted, 11 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO:  index "idx_ais_position" now contains 27306 row versions in 348 pages
DETAIL:  2387 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 1.68 sec.
INFO:  "t_ais_position": found 2387 removable, 26962 nonremovable row versions 
in 498 pages
DETAIL:  19 dead row versions cannot be removed yet.
There were 8001 unused item pointers.
498 pages contain useful free space.
0 pages are entirely empty.
CPU 0.00s/0.01u sec elapsed 26.06 sec.

Query returned successfully with no result in 26101 ms.
-------------------------

The strange thing is that number of pages allocated for "t_ais_position" table 
and "t_ais_position_pkey" index  haven't changed
(so autovacuum works ok on them) , but  the number of pages allocated to 
"ix_t_ais_position_update_time" index increased 
from 250  to 2218 (x 9 times). 

"ix_t_ais_position_update_time" index is created as "create index 
ix_t_ais_position_update_time  on t_ais_position(update_time)", so it is 
suppose to be updated very frequently (as main table). The other index 
"t_ais_position_pkey" is on primary key and values doesn't change at all ....


Could somebody explain me that ? (something more then autovacuum doesn't keep 
with updates would be nice)

Is it still possible to use autovacuum for such tables or I really should 
switch to VACUUM run from cron ?

Do you think that if I run VACUUM from cron every 5 minutes I would see exactly 
the same behaviour ?

Tomasz Rakowski




----- Original Message ----
From: Alvaro Herrera <[EMAIL PROTECTED]>
To: Tomasz Rakowski <[EMAIL PROTECTED]>
Cc: Matthew T. O'Connor <[EMAIL PROTECTED]>; pgsql-general@postgresql.org
Sent: Wednesday, June 27, 2007 3:54:14 PM
Subject: Re: [GENERAL] autovacumm not working ?

Tomasz Rakowski wrote:
> Alvaro,
> 
>   I changed autovacuum parametrs for this specific table in pg_autovacuum
> 
> insert into pg_autovacuum    (vacrelid,enabled,vac_base_thresh, 
> vac_scale_factor, anl_base_thresh, anl_scale_factor,   
>                                             vac_cost_delay, vac_cost_limit, 
> freeze_min_age, freeze_max_age) 
>     values ( (select oid from pg_class where relname='t_ais_position'), True, 
> 100, 0.01 , 100, 0.02, -1, -1, -1, -1 )
> 
> Should I somehow let autovacuum deamon know about new table
> configuration or above insert is enough ?

The insert should be enough.  You do see the autovacuum process starting
on that database, right?

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support







 
____________________________________________________________________________________
It's here! Your new message!  
Get new email alerts with the free Yahoo! Toolbar.
http://tools.search.yahoo.com/toolbar/features/mail/

Reply via email to