By arnaud on Dec 14, 2009
As I am experimenting with more and more of the new-ish Intel Nehalem-based servers, a question kept bugging me. How much am I getting out of these "hyper" threads that appear as CPUs in the operating system? I took some time to compare a Directory Server import on my corei7 workstation with an actual customer's data set of 7.9 Million entries.
Bird's Eye View
Don't bet the house on HyperThreading.
To conduct this test in a simple fashion, all I did was an import of these entries first with all the CPUs enabled and then by disabling all the odd CPUs. Doesn't get any simpler. All other things can be considered equal.
The result is quite stunning really.
8 CPUs (with HyperThreading)
4 CPUs (without HyperThreading)
Which makes a difference of about 13%...
Just thought someone out there would find this as puzzling as I. Quite honestly, I believe this is shared between the Directory Server not scaling too well, the IO actually being a contention point and HyperThreading being somewhat ineffective. More on that later.