Re: LWLockAcquire problems

From: Scott Shattuck <ss(at)technicalpursuit(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: LWLockAcquire problems
Date: 2002-08-27 21:06:06
Message-ID: 1030482366.14377.74.camel@idearat
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, 2002-08-13 at 22:42, Tom Lane wrote:
> Scott Shattuck <ss(at)technicalpursuit(dot)com> writes:
> > I'm seeing the following error about once a week or so:
> > 2002-08-13 12:37:28 [24313] FATAL 1: LWLockAcquire: can't wait without
> > a PROC structure
>
> Oh? I'd love to see what makes this happen. Can you give more context?

I haven't been able to get any detailed correlation on what causes this
over the past week and it's not happening often enough for me to turn on
heavy logging to catch it a second time. The system details I can
provide are:

Solaris 8 running on a 4 CPU box with 4GB main memory.
Postgres 7.2.1 built with optimization flags on and max backends at 512.


Our postgresql.conf file changes are:

shared_buffers = 121600 # 2*max_connections, min 16

max_fsm_relations = 512 # min 10, fsm is free space map

max_fsm_pages = 65536 # min 1000, fsm is free space map

max_locks_per_transaction = 256 # min 10

wal_buffers = 1600 # min 4

sort_mem = 4096 # min 32

vacuum_mem = 65536 # min 1024

wal_files = 32 # range 0-64

Because we're still in tuning mode we also changed:

stats_command_string = true

stats_row_level = true

stats_block_level = true

Fsync is true at the moment although we're considering turning that off
based on performance and what appears to be high IO overhead.

The average number of connections during normal operation is fairly low,
roughly 30-50, although lock contention due to foreign key constraints
can cause bottlenecks that push the connection count much higher while
requests queue up waiting for locks to clear.

We run Java-based application servers that do connection pooling and
these seem to be operating properly although it might be possible that
some interaction between PG and the appserver connection pools may be
involved here. I don't have enough understanding of the "*darn* little"
that happens before MyProc gets set to say :).

Sorry I don't have more data but the activity count is high enough that
logging all queries waiting for a crash to happen over a number of days
can create log files that are untenable in our current environment.

Again, any insight or assistance would be greatly appreciated. This is a
high-volume E-commerce application and other than this bug PG has been
rock solid. Eliminating this would get our uptime record where we need
it for long term comfort.

ss

Scott Shattuck
Technical Pursuit Inc.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2002-08-27 21:06:48 Re: Proposed GUC Variable
Previous Message Oliver Elphick 2002-08-27 21:05:59 Re: Open 7.3 items