Re: [PERFORM] Sun Donated a Sun Fire T2000 to the PostgreSQL - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [PERFORM] Sun Donated a Sun Fire T2000 to the PostgreSQL
Date
Msg-id 8669.1153422118@sss.pgh.pa.us
Whole thread Raw
In response to Re: [PERFORM] Sun Donated a Sun Fire T2000 to the PostgreSQL  (Tatsuo Ishii <ishii@sraoss.co.jp>)
Responses Re: [PERFORM] Sun Donated a Sun Fire T2000 to the PostgreSQL
List pgsql-hackers
Tatsuo Ishii <ishii@sraoss.co.jp> writes:
>>> 18% in s_lock is definitely bad :-(.  Were you able to determine which
>>> LWLock(s) are accounting for the contention?

> Sorry for the delay. Finally I got the oprofile data. It's
> huge(34MB). If you are interested, I can put somewhere. Please let me
> know.

I finally got a chance to look at this, and it seems clear that all the
traffic is on the BufMappingLock.  This is essentially the same problem
we were discussing with respect to Gavin Hamill's report of poor
performance on an 8-way IBM PPC64 box (see hackers archives around
2006-04-21).  If your database is fully cached in shared buffers, then
you can do a whole lot of buffer accesses per unit time, and even though
all the BufMappingLock acquisitions are in shared-LWLock mode, the
LWLock's spinlock ends up being heavily contended on an SMP box.

It's likely that CVS HEAD would show somewhat better performance because
of the btree change to cache local copies of index metapages (which
eliminates a fair fraction of buffer accesses, at least in Gavin's test
case).   Getting much further than that seems to require partitioning
the buffer mapping table.  The last discussion stalled on my concerns
about unpredictable shared memory usage, but I have some ideas on that
which I'll post separately.  In the meantime, thanks for sending along
the oprofile data!

            regards, tom lane

pgsql-hackers by date:

Previous
From: Jan Wieck
Date:
Subject: Re: contrib promotion?
Next
From: "moises"
Date:
Subject: Transaction Speed