Rapid deteriation of performance (might be caused by tsearch?) in 7.3.2

Started by Robert John Shepherdabout 23 years ago6 messagesbugs
Jump to latest
#1Robert John Shepherd
robert@reviewer.co.uk

Up until a few days ago I have been running Postgresl 7.2.3 with Tsearch
from the contrib dir, but at various times the performance of the
database would suddenly and rapidly deteriate so that queries which
previously took 500ms then took 8 or 9 seconds.

The only cure is a backup and restore of the database, vacuuming and
analysing does nothing. I even tried rebuilding all indexes once which
didn't seem to help.

This was an annoying but intermittent thing, which happened the last
time this Wednesday. Since I was doing a backup and restore anyway, I
decided to upgrade to 7.3.2 in the hope this might fix the annoying
problem, however it has made it WAY worse.

Rather than going a few weeks (and sometimes months) in between having
to use this fix, I am now having to do it almost every single day. I'm
now lucky if it lasts 24 hours before it brings my website to a total
crawl.

There is nothing special about my database other than the fact that I
use the Tsearch addon. Now if I go and do a bit update to the Tsearch
indexes on a table, with for example:

UPDATE tblmessages SET strmessageidx=txt2txtidx(strheading || '
' || strmessage);

Then that instantly brings the whole database to a crawl, which no
amount of index rebuilding, vacuuming and analysing helps.

Help! (And sorry if this is the wrong list)

Yours Unwhettedly,
Robert John Shepherd.

Editor
DVD REVIEWER
The UK's BIGGEST Online DVD Magazine
http://www.dvd.reviewer.co.uk

For a copy of my Public PGP key, email: pgp@robertsworld.org.uk

#2Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Robert John Shepherd (#1)
Re: [BUGS] Rapid deteriation of performance (might be caused by

On Fri, 4 Apr 2003, Robert John Shepherd wrote:

Up until a few days ago I have been running Postgresl 7.2.3 with Tsearch
from the contrib dir, but at various times the performance of the
database would suddenly and rapidly deteriate so that queries which
previously took 500ms then took 8 or 9 seconds.

Hmm, what are the before and after explain analyze results? Also, what
are your conf settings for shared buffers, sort memory and the fsm
parameters?

The only cure is a backup and restore of the database, vacuuming and
analysing does nothing. I even tried rebuilding all indexes once which
didn't seem to help.

Did you do a regular vacuum or vacuum full? If only the former, it's
possible that you need to either vacuum more frequently and/or raise the
free space map settings in your configuration file.

What does vacuum full verbose <table>; give you for the tables involved?

Help! (And sorry if this is the wrong list)

pgsql-performance is a better list, so I've replied to there. You'll
probably need to join in order to reply to list.

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert John Shepherd (#1)
Re: Rapid deteriation of performance (might be caused by tsearch?) in 7.3.2

"Robert John Shepherd" <robert@reviewer.co.uk> writes:

Help! (And sorry if this is the wrong list)

Yes, it's the wrong list. pgsql-performance would be the place to
discuss this. We can't help you anyway without more details: show us
the EXPLAIN ANALYZE results for some of the slow queries. (Ideally
I'd like to see EXPLAIN ANALYZE for the same queries in both fast
and slow states ...)

regards, tom lane

#4Robert John Shepherd
robert@reviewer.co.uk
In reply to: Stephan Szabo (#2)
Re: [BUGS] Rapid deteriation of performance (might be caused by tsearch?) in 7.3.2

Up until a few days ago I have been running Postgresl 7.2.3 with

Tsearch

from the contrib dir, but at various times the performance of the
database would suddenly and rapidly deteriate so that queries which
previously took 500ms then took 8 or 9 seconds.

Hmm, what are the before and after explain analyze results? Also,

what

are your conf settings for shared buffers, sort memory and the fsm
parameters?

shared_buffers = 40960
sort_mem = 20480
#max_fsm_relations = 1000
#max_fsm_pages = 10000

As you can see I've not uncommented or touched the fsm parameters, I
have no idea what they do. Optimisation wise I have only played with
shared_buffers, sort_mem and max_connections.

The only cure is a backup and restore of the database

Did you do a regular vacuum or vacuum full? If only the former, it's
possible that you need to either vacuum more frequently and/or raise

the

free space map settings in your configuration file.

I've been running this daily:

vacuumdb -h localhost -a -z

Should I be using the full switch then?

I'll get back to you on the other questions if you think they are still
needed.

pgsql-performance is a better list, so I've replied to there. You'll
probably need to join in order to reply to list.

Thanks, especially for not shouting at me heh, this is stressful enough
as it is.

Yours Unwhettedly,
Robert John Shepherd.

Editor
DVD REVIEWER
The UK's BIGGEST Online DVD Magazine
http://www.dvd.reviewer.co.uk

For a copy of my Public PGP key, email: pgp@robertsworld.org.uk

#5Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Robert John Shepherd (#4)
Re: [BUGS] Rapid deteriation of performance (might be

On Fri, 4 Apr 2003, Robert John Shepherd wrote:

Up until a few days ago I have been running Postgresl 7.2.3 with

Tsearch

from the contrib dir, but at various times the performance of the
database would suddenly and rapidly deteriate so that queries which
previously took 500ms then took 8 or 9 seconds.

Hmm, what are the before and after explain analyze results? Also,

what

are your conf settings for shared buffers, sort memory and the fsm
parameters?

shared_buffers = 40960
sort_mem = 20480
#max_fsm_relations = 1000
#max_fsm_pages = 10000

As you can see I've not uncommented or touched the fsm parameters, I
have no idea what they do. Optimisation wise I have only played with
shared_buffers, sort_mem and max_connections.

The only cure is a backup and restore of the database

Did you do a regular vacuum or vacuum full? If only the former, it's
possible that you need to either vacuum more frequently and/or raise

the

free space map settings in your configuration file.

I've been running this daily:

vacuumdb -h localhost -a -z

Should I be using the full switch then?

Well, you generally shouldn't need to if the fsm settings are high enough.
If you're doing really big updates like update each row of a 1 billion
row table, you may end up having to do one immediately following that.
Of course, if you're doing that, performance is probably not your biggest
concern. ;)

Explain analyze'll tell us if the system is changing plans (presumably to
a worse one) - for example, deciding to move to a sequence scan because it
thinks that the index scan is now to expensive, or conversely moving to an
index scan because it thinks that there'll be too many reads, while those
page reads actually are fairly localized. The vacuum full verbose should
get some idea of how much empty space is there.

pgsql-performance is a better list, so I've replied to there. You'll
probably need to join in order to reply to list.

Thanks, especially for not shouting at me heh, this is stressful enough
as it is.

:)

#6Robert John Shepherd
robert@reviewer.co.uk
In reply to: Stephan Szabo (#5)
Re: [BUGS] Rapid deteriation of performance (might be caused by tsearch?) in 7.3.2

I've been running this daily:
vacuumdb -h localhost -a -z
Should I be using the full switch then?

Well, you generally shouldn't need to if the fsm settings are high

enough.

If you're doing really big updates like update each row of a 1 billion
row table, you may end up having to do one immediately following that.
Of course, if you're doing that, performance is probably not your

biggest

concern. ;)

Not doing that, no. ;)

Explain analyze'll tell us if the system is changing plans (presumably

to

a worse one)

It wasn't, oddly enough.

I've added a new table that cuts down 85% of the work this query has to
do, and it seems to have helped an awful lot at the moment. Of course
only time will tell. :)

Thanks for the suggestions.

Yours Unwhettedly,
Robert John Shepherd.

Editor
DVD REVIEWER
The UK's BIGGEST Online DVD Magazine
http://www.dvd.reviewer.co.uk

For a copy of my Public PGP key, email: pgp@robertsworld.org.uk