我曾多次遇到这样的问题:我所在的虚拟机是否受到同一 VM 主机上运行的其他 VM 的影响。我知道,即使在 CPU、RAM 和磁盘均未过度配置的完美情况下,也会对同一主机上的同级 VM 产生一些影响。
是否有任何行之有效的方法可以测量虚拟机内部的资源争用情况?什么是好方法?
我过去曾测量过不同虚拟机之间标准化任务(例如编译 GCC 或编码视频)的运行时间,但即使我控制同一系统上所有其他虚拟机的负载,结果也会有所不同。
我应该提到所有这些系统都是基于 Linux 的。
编辑:假设我无法直接访问主机,只能访问虚拟机
答案1
对于 CPU 争用,您可以测量CPU 窃取时间摘自链接文章:
窃取时间是指虚拟机管理程序正在为另一个虚拟处理器提供服务时虚拟 CPU 等待真实 CPU 的时间百分比。
答案2
VMWare 有一篇关于确定资源争用的很好的文档 -http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2001003
假设你正在使用 5.1 -
中央处理器
在命令行上检查 esxtop,
平均负载为 1 表示 CPU 已充分利用。
就绪百分比应低于 5%记忆
在命令行上检查 esxtop
检查 MEM 过载值
从 MEM 过载值中减 1,如果该字段最终为 0,则表示没有问题。否则,如果大于 0,则表示 RAM 过载磁盘
在命令行上检查 esxtop
查看 DAVG 延迟时间是否高于 5 秒