- vSphere High Performance Cookbook
- Prasenjit Sarkar
- 545字
- 2021-08-13 16:22:58
Fighting guest CPU saturation in SMP VMs
Guest CPU saturation happens when the application and operating system running in a virtual machine use all of the CPU resources that the ESXi host is providing for that virtual machine. However, this guest CPU saturation does not necessarily indicate that a performance problem exists.
Compute-intensive applications commonly use all of the available CPU resources, but this is expected and might be acceptable (as long as the end user thinks that the job is completing quickly enough). Even less-intensive applications might experience periods of high CPU demand without experiencing performance problems. However, if a performance problem exists when guest CPU saturation is occurring, steps should be taken to eliminate the condition.
When a virtual machine is configured with more than one vCPU but actively uses only one of those vCPUs, resources that could be used to perform useful work are being wasted. At this time you may see a potential performance problem—at least from the most active vCPU perspective.
Getting ready
To step through this recipe, you need a running ESXi Server, a couple of running CPU-hungry virtual machines, vCenter Server, and a working installation of vSphere Client. No other prerequisites are required.
How to do it...
To spot CPU overcommitment in the guest OS there are two CPU resource parameters which you should monitor closely as follows:
- The ready time
- The usage percentage
- Log in to the vCenter Server using vSphere Client.
- From the home screen, navigate to Hosts and Clusters.
- Expand the ESXi host and go to the CPU hungry VM.
- Click on the Performance tab.
- Navigate to the CPU from the Switch To drop-down menu on the right-hand side.
- Navigate to the Advanced tab and click on the Chart Options.
- Select only Usage Average in Percentage, Ready, and Used in the Counters section and click on OK
The preceding example shows the high usage and used value. We can see it is 100 percent.

The preceding example shows that after the CPU increase in the VM, the percentage of CPU usage dropped down to 52 percent.
How it works...
So for a SMP VM if you see it is the high CPU resources demanding, it may happen that either the application is single threaded or the guest operating system is configured with uniprocessor HAL.
Many applications are written with only a single thread of control. These applications cannot take advantage of more than one processor core.
In order for a virtual machine to take advantage of multiple vCPUs, the guest operating system running on the virtual machine must be able to recognize and use multiple processor cores. If the virtual machine is doing all of its work on vCPU0, the guest operating system might be configured with a kernel or a HAL that can recognize only a single processor core.
You have two possible approaches to solving performance problems related to guest CPU saturation:
- Increase the CPU resources provided to the application.
- Increase the efficiency with which the virtual machine uses CPU resources.
Adding CPU resources is often the easiest choice, particularly in a virtualized environment. If a virtual machine continues to experience CPU saturation even after adding CPU resources, the tuning and behavior of the application and operating system should be investigated.
- 深入核心的敏捷開發:ThoughtWorks五大關鍵實踐
- Spring Cloud Alibaba微服務架構設計與開發實戰
- Docker進階與實戰
- PySide GUI Application Development(Second Edition)
- 從0到1:Python數據分析
- Scala編程(第5版)
- 微信小程序開發實戰:設計·運營·變現(圖解案例版)
- Android系統下Java編程詳解
- 實戰Python網絡爬蟲
- Java高手是怎樣煉成的:原理、方法與實踐
- Mastering OpenStack
- Less Web Development Cookbook
- Java編程指南:語法基礎、面向對象、函數式編程與項目實戰
- 歐姆龍PLC編程指令與梯形圖快速入門
- Getting Started with Phalcon