Hyper Threading Performance
Its been a while anyone talked about Intel’s Hyper-Threading performance when it comes to databases. There were enough posts about disabling Hyper-Threading completely when it comes to MySQL/InnoDB workloads way back when we had enough issues with scalability of InnoDB on multi-core systems. But things has changed quite a bit in the fast year or two in terms of multi-core support (thanks to Innobase/Mark Callaghan/Google and Percona). I still see lot of production servers running with HT disabled completely either in BIOS (append noht to kernel parameter) or manually disabling the CPUs (echo 0 > /sys/devices/system/node/node[0-1]/cpu[2-..]/online ).
Last few weeks or so; I ran quite a few tests on new production launch with 8-core CPUs and decided to go ahead with HT enabled (along with Intel Turbo mode) as it seems to give close to 15-20% performance gain. Ran tests which are completely InnoDB CPU/memory bound and HT seems to enable much better performance in every test mode.
Also tried with different thread schedulers with IO bound loads; still HT seems to give much better results; especially when most of the workload seems to be with 8-50 threads; and HT seems to give much better boost in that range; so no point to disable HT.
I tested both Intel Xeon X5570 and E5530 and here is the test results for CPU bound work load.
It is a clear indication that HT is not a bottleneck. In both the cases, turbo boost is enabled though.
As you can also notice; Intel Xeon X series CPUs yield much better results than E series (obvious as X-series is meant for performance where as E is for economy), which is close to $1000 extra, but yields ~15-20% performance for InnoDB workloads. You can find the comparison between these CPUs from Intel. If you are buying any new system and if you can spare extra $$; then always go for X series as its worth the price for performance
Related posts:
5 Comments





Just checking, did you have turboboost on during the noht tests, or off? It’d be an interesting test to quantify turboboost alone (it’s a pretty good kick in the ass and complements the scenarios where HT can induce a slowdown in my experience).
Comment :: March 21, 2010 @ 10:10 pm
Yes, Turboboost is on in both HT and NOHT modes.
Comment :: March 21, 2010 @ 11:30 pm
Can you test with single socket quad core processors too?
With dual sockets, core counts go from 8 to 16 with HT enabled. MySQL may have trouble scaling over the many cores.
With single socket, core counts go from 4 to 8 with HT. I wondered if we’d see a much higher performance gain from HT in this case.
Comment :: March 22, 2010 @ 6:46 am
[...] DB Hyperthreading performance [...]
Pingback :: September 12, 2010 @ 2:02 am
Very interesting, what version of mysql was used for the test?
Comment :: March 2, 2012 @ 3:40 pm