Skip site navigation (1) Skip section navigation (2)

Re: spinlocks on HP-UX

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: spinlocks on HP-UX
Date: 2011-08-30 20:05:52
Message-ID: 25989.1314734752@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-hackers
I wrote:
> I am hoping to do a similar test on another machine with $bignum Xeon
> processors, to see if Intel hardware reacts any differently.  But that
> machine is in the Westford office which is currently without power,
> so it will have to wait a few days.

OK, the lights are on again in Westford, so here are some results from
an 8-socket Fujitsu PRIMEQUEST 1800 with 10-core Xeon E7-8870 processors,
hyperthreading enabled for a total of 160 virtual processors.
All test conditions the same as from my Opteron runs yesterday,
except just for the heck of it I ran it up to 160 backends.

Stock git head (of a couple of days ago now):

pgbench -c 1 -j 1 -S -T 300 bench	tps = 4401.589257 (including ...
pgbench -c 2 -j 1 -S -T 300 bench	tps = 8585.789827 (including ...
pgbench -c 8 -j 4 -S -T 300 bench	tps = 36315.227334 (including ...
pgbench -c 16 -j 8 -S -T 300 bench	tps = 73841.195884 (including ...
pgbench -c 32 -j 16 -S -T 300 bench	tps = 155309.526039 (including ...
pgbench -c 64 -j 32 -S -T 300 bench	tps = 77477.101725 (including ...
pgbench -c 96 -j 48 -S -T 300 bench	tps = 41301.481915 (including ...
pgbench -c 128 -j 64 -S -T 300 bench	tps = 30443.815506 (including ...
pgbench -c 160 -j 80 -S -T 300 bench	tps = 24600.584202 (including ...

Non-locked test in TAS():

pgbench -c 1 -j 1 -S -T 300 bench	tps = 4412.336573 (including ...
pgbench -c 2 -j 1 -S -T 300 bench	tps = 8739.900806 (including ...
pgbench -c 8 -j 4 -S -T 300 bench	tps = 32957.710818 (including ...
pgbench -c 16 -j 8 -S -T 300 bench	tps = 71538.032629 (including ...
pgbench -c 32 -j 16 -S -T 300 bench	tps = 153892.469308 (including ...
pgbench -c 64 -j 32 -S -T 300 bench	tps = 127786.277182 (including ...
pgbench -c 96 -j 48 -S -T 300 bench	tps = 92108.895423 (including ...
pgbench -c 128 -j 64 -S -T 300 bench	tps = 75382.131814 (including ...
pgbench -c 160 -j 80 -S -T 300 bench	tps = 67277.057981 (including ...

Non-locked test in TAS_SPIN() only:

pgbench -c 1 -j 1 -S -T 300 bench	tps = 4006.626861 (including ...
pgbench -c 2 -j 1 -S -T 300 bench	tps = 9020.124850 (including ...
pgbench -c 8 -j 4 -S -T 300 bench	tps = 36507.582318 (including ...
pgbench -c 16 -j 8 -S -T 300 bench	tps = 69668.921550 (including ...
pgbench -c 32 -j 16 -S -T 300 bench	tps = 150886.395754 (including ...
pgbench -c 64 -j 32 -S -T 300 bench	tps = 216697.745497 (including ...
pgbench -c 96 -j 48 -S -T 300 bench	tps = 171013.266643 (including ...
pgbench -c 128 -j 64 -S -T 300 bench	tps = 115205.718495 (including ...
pgbench -c 160 -j 80 -S -T 300 bench	tps = 92073.704665 (including ...

This suggests that (1) an unlocked test in TAS_SPIN might be a good idea
on x86_64 after all, and (2) this test scenario may not be pushing the
system hard enough to expose limitations of the spinlock implementation.

I am now thinking that the reason we saw clear differences in spinlock
implementations years ago, and now are not seeing them except on insane
hardware, is mainly that we've managed to reduce contention at higher
levels of the system.  That doesn't mean spinlocks have become
uninteresting, just that "pgbench -S" isn't the ideal test case for
stressing them.  I'm thinking maybe we need a test scenario that
generates sinval traffic, for example, or forces snapshots to be taken
more often.  Ideas anyone?

			regards, tom lane

In response to

Responses

pgsql-hackers by date

Next:From: Joe AbbateDate: 2011-08-30 20:14:50
Subject: Re: Comparing two PostgreSQL databases -- order of pg_dump output
Previous:From: Tom LaneDate: 2011-08-30 19:31:38
Subject: Re: symbol mismatches on minor version upgrades

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group