From: Arjen van der Meijden <acmmailing@tweakers.net>
To: pgsql-performance@postgresql.org
Subject: Re: Linux: more cores = less concurrency.
Date: Tue, 12 Apr 2011 09:31:20 +0200
Message-ID: <4DA3FFC8.206@tweakers.net> (raw)
In-Reply-To: <alpine.DEB.2.00.1104111259350.32165@asgard.lang.hm>
References: <860299.67368.qm@web26003.mail.ukl.yahoo.com>
<4DA2FD7B020000250003C678@gw.wicourts.gov>
<8b76c51ad6db2e458431ef73bcdd2759@commandprompt.com>
<BANLkTi=Wi+DsO5Bu1kYi1GL6rECAf8M1DA@mail.gmail.com>
<4DA35BD3.5040206@netwolves.com>
<alpine.DEB.2.00.1104111259350.32165@asgard.lang.hm>
On 11-4-2011 22:04 david@lang.hm wrote:
> in your case, try your new servers without hyperthreading. you will end
> up with a 4x4 core system, which should handily outperform the 2x4 core
> system you are replacing.
>
> the limit isn't 8 cores, it's that the hyperthreaded cores don't work
> well with the postgres access patterns.
It would be really weird if disabling HT would turn these 8-core cpu's
in 4-core cpu's ;) They have 8 physical cores and 16 threads each. So he
basically has a 32-core machine with 64 threads in total (if HT were
enabled). Still, HT may or may not improve things, back when we had time
to benchmark new systems we had one of the first HT-Xeon's (a dual 5080,
with two cores + HT each) available:
http://ic.tweakimg.net/ext/i/1155958729.png
The blue lines are all slightly above the orange/red lines. So back then
HT slightly improved our read-mostly Postgresql benchmark score.
We also did benchmarks with Sun's UltraSparc T2 back then:
http://ic.tweakimg.net/ext/i/1214930814.png
Adding full cores (including threads) made things much better, but we
also tested full cores with more threads each:
http://ic.tweakimg.net/ext/i/1214930816.png
As you can see, with that benchmark, it was better to have 4 cores with
8 threads each, than 8 cores with 2 threads each.
The T2-threads where much heavier duty than the HT-threads back then,
but afaik Intel has improved its technology with this re-introduction of
them quite a bit.
So I wouldn't dismiss hyper threading for a read-mostly Postgresql
workload too easily.
Then again, keeping 32 cores busy, without them contending for every
resource will already be quite hard. So adding 32 additional "threads"
may indeed make matters much worse.
Best regards,
Arjen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-performance@postgresql.org
Cc: acmmailing@tweakers.net
Subject: Re: Linux: more cores = less concurrency.
In-Reply-To: <4DA3FFC8.206@tweakers.net>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox