ESXi的CPU调度原理
CPU调度器的设计目标
公平性:确保虚机按照各自配置的份额占用物理CPU。
吞吐量:最大化物理CPU的使用率。
响应性:vCPU从‘就绪’状态到‘运行’状态的时间。
扩展性:支持多个vCPU和物理CPU。
ESXi vCPU调度器确保每个虚拟机的vCPU公平高效地使用物理CPU资源。
ESXi CPU调度器的特性介绍
1.基于份额的、时间片调度
时间片50ms。
2.‘弹性’协同调度-Co-schedule (vSMP)
协同调度:一组vCPU进程在同一时间被调度,以取得最佳性能。
目标:同一个虚拟机的vCPU之间的进度差异小于一定值。
3.负载均衡(CPU迁移)
为保证系统pCPU的公平使用,提供vCPU更好的调度性能,将vCPU迁移至利用率不高的pCPU上运行。
CPU资源分配实践建议
假定以CPU超分为主要关注点,*在不发生CPU超分的情况下,整合比越高越好*。
在没有发生CPU超分的时候,单台物理服务器上同时运行的每一个虚拟机,都能保证自己被分配的每一个虚拟CPU都能实际运行在一颗独立的物理CPU核上,而不会出现与其他虚拟机的虚拟CPU共享同一物理CPU的时间片的现象,也就是说不会出现物理CPU核的争用现象.
由于没有物理CPU核的时间片争用,虚拟机将会以类似独占使用物理服务器CPU核的方式来运行,因此不会出现由于争用带来的指令处理等待或延迟时间,虚拟机的性能可以得到充分保证;
在不发生CPU超分的情况下,整合比越低,CPU的闲置率越高,资源浪费越严重,此时,主要考虑的问题应该是如何提高整合比,而不是超分.
vSphere的CPU超分比低于或等于 1:1(vCPU:pCPU)是属于比较低效的使用方式,并不符合最佳实践.