On 01/-10/-28163 11:59 AM, Greg Smith wrote:
> On Tue, 21 Jul 2009, Doug Hunley wrote:
>
>> Just wondering is the issue referenced in
>> http://archives.postgresql.org/pgsql-performance/2005-11/msg00415.php
>> is still present in 8.4 or if some tunable (or other) made the use of
>> hyperthreading a non-issue. We're looking to upgrade our servers soon
>> for performance reasons and am trying to determine if more cpus (no
>> HT) or less cpus (with HT) are the way to go.
>
> If you're talking about the hyperthreading in the latest Intel Nehalem
> processors, I've been seeing great PostgreSQL performance from those.
> The kind of weird behavior the old generation hyperthreading designs
> had seems gone.  You can see at
> http://archives.postgresql.org/message-id/alpine.gso.2.01.0907222158050.16...@westnet.com
> that I've cleared 90K TPS on a 16 core system (2 quad-core
> hyperthreaded processors) running a small test using lots of parallel
> SELECTs.  That would not be possible if there were HT spinlock
> problems still around. There have been both PostgreSQL scaling
> improvments and hardware improvements since the 2005 messages you saw
> there that have combined to clear up the issues there.  While true
> cores would still be better if everything else were equal, it rarely
> is, and I wouldn't hestitate to jump on Intel's bandwagon right now.

Greg, those are compelling numbers for the new Nehalem processors. 
Great news for postgresql.  Do you think it's due to the new internal
interconnect, that bears a strong resemblance to AMD's hypertransport
(AMD's buzzword for borrowing lots of interconnect technology from the
DEC alpha (EV7?)), or Intel fixing a not-so-good initial implementation
of "hyperthreading" (Intel's marketing buzzword) from a few years ago. 
Also, and this is getting maybe too far off topic, beyond the buzzwords,
what IS  the new "hyperthreading" in Nehalems?  -- opportunistic
superpipelined cpus?, superscalar?  What's shared by the cores
(bandwidth, cache(s))?   What's changed about the new hyperthreading
that makes it actually seem to work (or at least not causes other
problems)?   smarter scheduling of instructions to take advantage of
stalls, hazards another thread's instruction stream?  Fixed
instruction-level locking/interlocks, or avoiding locking whenever
possible?  better cache coherency mechanicms (related to the
interconnects)?  Jedi mind tricks???

I'm guessing it's the better interconnect, but work interferes with
finding the time to research and benchmark.



-- 
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

Reply via email to