![是否有一种标准方法可以从客户操作系统内部对 Windows VM 性能进行基准测试?](https://linux22.com/image/795481/%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E7%A7%8D%E6%A0%87%E5%87%86%E6%96%B9%E6%B3%95%E5%8F%AF%E4%BB%A5%E4%BB%8E%E5%AE%A2%E6%88%B7%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%86%85%E9%83%A8%E5%AF%B9%20Windows%20VM%20%E6%80%A7%E8%83%BD%E8%BF%9B%E8%A1%8C%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95%EF%BC%9F.png)
我们发现我们的软件在某客户处表现异常,该软件运行在 Windows 2008 虚拟机中。主机是 VMWare ESX Server。
我见过的最大问题是我们的进程断开套接字连接或套接字连接超时。我们的一些进程通过 TCP 套接字相互通信。在某些情况下,我们会与远程系统建立套接字连接(例如 WMI、JDBC)。
我被引导相信虚拟机资源匮乏。我们无法访问 ESX 管理/性能仪表板。我还了解到,主机虚拟机内的性能监视器或任务管理器提供的任何数字都不是主机操作系统健康状况的真实指示。
我可以编写一个程序,进行大量浮点运算并打印出所用的时间。然后将该时间与在不同的虚拟机或真实的 Windows 机器上获得的时间进行比较。
这种方法足以让我们确定根本原因是否确实是虚拟机性能。但是,如果有标准方法或工具可以做到这一点,那么说服客户就会容易得多。
有吗?
答案1
我倾向于使用与对物理硬件进行基准测试相同的产品。
http://www.passmark.com/products/pt.htm
当然,不要进行 3d 测试,但其他测试可能会有所帮助,尤其是磁盘和网络基准测试。确保您使用的是正确的网络和 IO 驱动程序,并确保所有 Windows 设置都针对 VM 进行了优化。
答案2
为了测试网络,我使用 iperf 和 netperf 进行压力测试。
要测试磁盘 I/O,请使用另一个行业标准工具 sqlio。使用不同的块大小运行随机和顺序 I/O 测试。
对于 CPU/RAM 测试,我无法立即想到任何适用于 Windows 的方法。