5 ms·
make sure you are looking at physical core count, not hyperthreaded cores (which should be a 2x difference for your CPU).
by mrich 15y ago
make sure you are looking at physical core count, not hyperthreaded cores (which should be a 2x difference for your CPU).
- syedkarim 15y agoAm I using the wrong command to count physical cores (I'm guessing so? grep 'model name' /proc/cpuinfo | wc -l What should I use to count physical cores?
- sciurus 15y ago`grep 'core id' /proc/cpuinfo | sort -u | wc -l` will work. See http://serverfault.com/questions/262867/how-to-find-out-if-my-debian-server-setup-is-a-dual-core-or-not/262876#262876 http://serverfault.com/questions/262867/how-to-find-out-if-m...
- mrich 15y ago/proc/cpuinfo are hyperthreaded cores, as exposed to the OS. For basically all the modern multi-core Intel Xeon CPUs you can divide that by 2. It seems you can also find out by looking at physical ID and "cpu cores". On a 64 (hyperthreaded) cores machine, I see physical ID 0..4 and cpu cores 8 in this case, which would mean 8*4=32.
- mrich 15y agosmall correction: "physical ID 0..3"
- scott_s 15y agoLacking any other information, I would look into this explanation first - I have seen many experiments on cores with SMT contexts where the performance plateaus at the total number of cores, not SMT contexts.
- keeperofdakeys 15y agoA hyperthreaded cpu actually emulates an extra core. A cpu with a single physical core and a hyperthreaded core is seen by the OS as two cores, it doesn't know anything about the hyperthreading. This means that the load average 2.0 means the system is fully loaded, not 1.0. Although, it is much easier to go from 1.0 to 2.0, as opposed to 0 to 1.0 on such a cpu, because the cpu can't handle much more work before it gets overloaded.