Re: spinlocks on HP-UX

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: spinlocks on HP-UX
Дата
Msg-id 25989.1314734752@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: spinlocks on HP-UX  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: spinlocks on HP-UX  (Robert Haas <robertmhaas@gmail.com>)
Список 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


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: symbol mismatches on minor version upgrades
Следующее
От: Joe Abbate
Дата:
Сообщение: Re: Comparing two PostgreSQL databases -- order of pg_dump output