Amount of CPU cores vs. CPU Mhz
While performing a performance analysis for a customer, one of the things that came up is the lack op CPU power. Meaning, He had over committed the amount of vCPU’s. This is easily resolved by adding more CPU’s to the cluster. While discussing witch hardware to buy we ended up in the following discussion.
Is it better to buy a server with a 4 core 3 Ghz CPU or with a 6 core 2.2 Ghz CPU?
In other words, what is better for performance? The total amount of Mhz in the host or the amount of CPU cores?
First let me explain my thoughts. A virtual machine with 1 vCPU can run on 1 core at a time. Although it seems that all virtual machines are running at the same time, this isn’t the fact. The CPU scheduler of the VMkernel places a virtual machine on CPU core and when this VM is done doing his thing another virtual machine can use this core. Of course when you have multiple cores in a host, more virtual machines can run at the same time.
When you have a 2 vCPU virtual machine, this virtual machine wants to ‘lock’ 2 fyscial CPU cores at the same time. When a second core ain’t available the virtual machine is co-stopped (%CSTP).
If a core has more 3 Ghz, the calculation being done on that CPU core faster than on a 2 Ghz CPU core. So a other virtual machine can be put on this CPU core for his calculation.
On the other hand, with more CPU cores in your host. More virtual machines can perform CPU calculations at the same time. Ending up in a lower %READY.
While Googling around on the internet I stumbled on this thread in the VMware Community forums. Jon Hemming explaines how Capacity planner rates a system. The first CPU core counts as 100%, the second CPU core is 90% of the first CPU core. The third CPU core is 90% of the the second CPU.
Core count | CPU1 2 Ghz | CPU2 3 Ghz |
1 | 2000 | 3000 |
2 | 1800 | 2700 |
3 | 1620 | 2430 |
4 | 1458 | 2187 |
5 | 1312.2 | 1968.3 |
6 | 1180.98 | 1771.47 |
7 | 1062.882 | 1594.323 |
8 | 956.5938 | 1434.8907 |
9 | 860.93442 | |
10 | 774.840978 | |
11 | 697.3568802 | |
12 | 627.62119218 | |
Total | 14351.40927038 | 17085.9837 |
As you can see, with this calculation the two 3 Ghz 4 core CPU has more power than the two 2 Ghz 6 core CPU.
Jon indicated that this calculation isn’t up-to-date for modern hardware and that the are trying to optimization this algorithm.
This post is back-upped by a Youtube movie from Intel. In this movie Intel claims that the bigger the CPU is, the more and flexibler it can run virtual machines. In this movie you will see 1 small virtual machine combined with 1 large virtual machine will better fit in a large CPU than in 2 smaller CPUs. But 2 virtual machines cannot run at the same time in a CPU? Lake of CPU cores will result in %CSTP and %READY.
So this left me a bit confused. My opinion: it’s better to have more cores than more Mhz. What’s your opinion?
I’m guessing the result will be a combination of both. But what when have the budget for more 2 Ghz CPUs or less 3 Ghz CPUs?
About Michael
Michael Wilmsen is a experienced VMware Architect with more than 20 years in the IT industry. Main focus is VMware vSphere, Horizon View and Hyper Converged with a deep interest into performance and architecture.
Michael is VCDX 210 certified, has been rewarded with the vExpert title from 2011, Nutanix Tech Champion and a Nutanix Platform Professional.