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)是屬於比較低效的使用方式,並不符合最佳實踐.