什么原因导致虚拟机出现数据包丢失?

什么原因导致虚拟机出现数据包丢失?

我们有一个非常不错的硬件,用于在 vmware 中运行多个虚拟机,其中一个虚拟机是运行 SQL Server 2005 的 Windows Server 2003 实例。出于某种原因,我们偶尔会看到远程计算机(我的工作站)以及同一物理硬件上的其他虚拟机向这台机器连续 10-20 秒的数据包丢失。我正在使用 PingPlotter 密切关注数据包丢失。

到目前为止,我们已经关闭了 NIC 上的流量控制,但我们已经没有其他可以尝试的方法了。这可能是什么原因造成的?我该如何识别问题?

注意:我们还有另一台配置非常相似的服务器,但存在相同类型的问题,只是程度较轻(因为使用频率不高?)

答案1

有趣。首先,让我们确定一些具体细节...

您有一个运行多个虚拟机的 ESX 主机,对吗?

您有一个虚拟机作为 Windows 2003 服务器。

您说当您从“远程”机器对该 VM 运行 ping 时,您会看到 10-20 秒的数据包丢失。

好的,接下来的问题是:

1) 从该主机上运行的其他虚拟机之一 ping 时是否发生数据包丢失?

2) 当您从网络上的相同位置以相同方式 ping 该主机上的其他虚拟机(或主机本身)时,它们是否显示相同的行为?

3) 是否有任何其他虚拟机运行与显示该行为的虚拟机相同的操作系统?

4) 是否存在某种时间模式?每 5 分钟发生一次吗?每隔多少个数据包就会发生一次吗?您总是丢失相同数量的数据包吗?

5) 当您进入 vSphere 控制台时,您是否看到与 ping 丢失时间相匹配的任何类型的性能图表变化?

6) VM 上是否安装了 VMware 工具并且是最新版本?

答案2

安装/重新安装 VMware Tools。

检查 VMware 服务器上的负载(CPU、中断、网络流量)。

答案3

检查主机/硬件。您说您使用 VmWare - 但未说明是服务器还是 esx。无论如何,可能是硬件或相关问题(驱动程序版本等)。

当我开始使用 Hyper-V 时,我遇到了一些机器的相同问题。原来是驱动程序太差 + TCP 卸载功能损坏(在驱动程序中)。其中一些机器的实现确实很糟糕。装上英特尔网卡后,一切正常。

答案4

查看您的存储。高写入队列可能导致高延迟,其症状可能与您描述的一样。

我遇到了完全相同的问题。通过将有问题的虚拟机移至不同的 vmfs/存储解决了该问题。

相关内容