最近有小伙伴反馈部署在公有云上的服务总是会时不时的出现延迟问题,在排除了代码问题后,将怀疑目光朝向了云主机,因为在测试环境相同配置的物理机上进行模拟压测,性能完全可以满足,所以怀疑云主机是不是超卖了,咨询有什么方法可以证明。
所谓的超卖
众所周知,CPU和内存是左右主机性能的重要因素,也是一台主机的核心组件。内存因为是一个刚需资源,一旦被占用就很难保证快速收回,很不适合超卖。所以我们常说的超卖,其实是CPU的超卖。
如何识别CPU超卖
只需要用top命令就可以识别出CPU是否超卖,使用top命令可以看到几个%Cpu(s)开头的一行,其中有一个很重要的参数st(Steal Time),即虚拟机进程在物理机CPU上等待其它CPU时间的时间占比。纯物理机情况下,st参数会保持0.0不变,而在云主机环境下,偶尔少量的数值也是正常存在的,但如果持续20分钟以上的10或者更高数值,那么就可以基本断定存在超卖问题。