3

My rough understanding of a Linux load Average is that for every integer a CPU core is working all the time. For example, 1 means on a 4 core system that 1 core is working at capacity. How does HyperThreading factor into this? Is it even considered in load averages?

1
  • 3
    Threads waiting for "fast I/O" (such as local disk accesses) count towards the load average as well. Jan 21, 2013 at 19:20

1 Answer 1

6

I generally think of a HyperThreaded core as being 20%-30% of a real core, depending on how effectively your application can leverage multiple threads. They are considered in load average and load average thresholds.

Here's an example of a dual-socket Intel X5570 Nehalem system before and after enabling Hyperthreading. The OS is CentOS 5.8. The actual average system run queue/load average did not change substantially (the app is pretty much single-threaded), but the load threshold did.

enter image description here

That said, there are many times when I disable HyperThreading... For my low-latency and deterministic applications, I want finer control of where application resources are scheduled. There's a penalty for going to a HyperThread core in those cases. Also, I have one particular situation where the application is running on a 4-socket 8-core CPU that has HyperThreading. It's way too many cores... so I just disabled HT to cut from 64 logical CPU's to 32.

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .