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