一般云厂商的服务器 CPU 都会进行超售,除非是虚拟机被调度到一台很空的物理机上(可以测试多台)或者做了绑核操作,否则一般都能测出来。

可以通过top 中的%st(steal time)查看超售情况。
st 的全称是 Steal Time ,就是 Xen Hypervisor 分配给运行在其它虚拟机上的任务的实际 CPU 时间。
%st(Steal time) 是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比。
Steal 值比较高的话,需要向主机供应商申请扩容虚拟机。服务器上的另一个虚拟机可能拥有更大更多的 CPU 时间片,可能需要申请升级以与之竞争。另外,高 steal 值可能意味着主机供应商在服务器上过量地出售虚拟机。如果升级了虚拟机, steal 值还是不降的话应该寻找另一家服务供应商。
低 steal 值意味着应用程序在目前的虚拟机上运作良好。因为虚拟机不会经常地为了 CPU 时间与其它虚拟机激烈竞争,虚拟机会更快地响应。这一点也暗示了,主机供应商没有过量地出售虚拟服务。

实测国内的两个厂商的主机的 CPU:
厂商 1 CPU streal time 为0,这个厂商的测试了好几台都是0,估计做了绑核。

厂商 2 测试的 %st 为 10%~50% 之间,咨询了一下我们主机所在物理机的资源使用情况,大致推算出 CPU超售比为2倍,这感觉已经很良心了。

厂商1截图:
查看云厂商主机CPU超售

厂商2截图:

查看云厂商主机CPU超售

相关文章: