Re: Vacuum Problems (locking) - Mailing list pgsql-admin
From | Mike Goldner |
---|---|
Subject | Re: Vacuum Problems (locking) |
Date | |
Msg-id | 1161806429.2095.157.camel@localhost.localdomain Whole thread Raw |
In response to | Vacuum Problems (locking) (Mike Goldner <mgoldner@agmednet.com>) |
Responses |
Re: Vacuum Problems (locking)
|
List | pgsql-admin |
On Wed, 2006-10-25 at 15:54 -0400, Mike Goldner wrote: > I have a nightly vacuum scheduled as follows: > > su - postgres -c "/usr/bin/vacuumdb --analyze --dbname=mydb" > > Last night, it appears that the vacuum blocked db access from my > application server (JBoss). Here is the logfile snippet: > > [3693-jbossdb-postgres-2006-10-25 06:52:29.488 EDT]NOTICE: number of > page slots needed (559472) exceeds max_fsm_pages (200000) > [3693-jbossdb-postgres-2006-10-25 06:52:29.488 EDT]HINT: Consider > increasing the configuration parameter "max_fsm_pages" to a value over > 559472. > [3693-jbossdb-postgres-2006-10-25 06:52:29.488 EDT]LOG: number of page > slots needed (559472) exceeds max_fsm_pages (200000) > [3693-jbossdb-postgres-2006-10-25 06:52:29.488 EDT]HINT: Consider > increasing the configuration parameter "max_fsm_pages" to a value over > 559472. > [3693-jbossdb-postgres-2006-10-25 06:52:29.530 EDT]LOG: transaction ID > wrap limit is 1073813592, limited by database "benchpg" > [3693-jbossdb-postgres-2006-10-25 06:52:29.530 EDT]LOG: transaction ID > wrap limit is 1073813592, limited by database "benchpg" > [3693-jbossdb-postgres-2006-10-25 06:52:29.530 EDT]LOG: duration: > 10224738.050 ms statement: VACUUM ANALYZE; > > First of all, my max_fsm_pages is obviously way off. However, every > time I increase my max_fsm_pages the next vacuum says that it requires > more. Will there every be a plateau in the requested pages? What is > the impact of exceeding the pages slots needed? > > Secondly, in this case, it almost looks like there were two vacuum > process running based on the duplicated log messages. There is only one > cron job, so there shouldn't have been a second vacuum running. Should > I just ignore this? > > Finally, and most important is the blocking. The vacuum duration > reported in the log converts to about 170 minutes. I can track > backwards in the log and the only messages prior to the 6:52am > completion of the vacuum end at 3:57am (almost exactly 170 minutes > prior). > > So, all indications point to postgres blocking all access during the > entire vacuum. > > The only semi-unusual characteristic of my database is that I have one > table in particular that grows and shrinks dramatically. My entire > database after a vacuum --full is about 8GB. However, after a day or > two, the db will grow as large as 75GB. Truncating that one table > (since it empties regularly) will shrink the db right back to the 8GB. > > Is it possible that the extreme table size (maybe requiring the high > number of page slots) is causing postgres to block more than it should > in order to process that table? > > Thanks, > > Mike > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend I just noticed that my nightly vacuum failed the previous three nights with the following error: [2032-jbossdb-postgres-2006-10-24 04:12:30.019 EDT]ERROR: failed to re- find parent key in "jms_messages_pkey" [2032-jbossdb-postgres-2006-10-24 04:12:30.019 EDT]STATEMENT: VACUUM ANALYZE; I'm not sure if it is related, but it seems pertinent. Thanks, Mike
pgsql-admin by date: