Xen PV 数据包丢失

Xen PV 数据包丢失

我的一台服务器出现了严重的数据包丢失问题。这台服务器是一台运行 Debian Squeeze 和 Xen 4.0 的较旧的(P4 时代)机器。它上面运行着两个 domU(也都运行 Debian Squeeze)、一个网关和一个文件服务器。遗憾的是,处理器没有虚拟化扩展,因此只能使用 PV。

在调查为什么我们的网络似乎比应有的速度慢时,我发现了一些相当严重的数据包丢失(约 25%)。经过进一步调查和几次实验,我在 dom0 和其中一个 domU 之间进行了测量:

Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:   110 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to dom0, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   110 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.2(domU) port 33817 connected with 192.168.1.100(dom0) port 5001
[  4] local 192.168.1.2(domU) port 5001 connected with 192.168.1.100(dom0) port 48606
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  46.3 MBytes  38.7 Mbits/sec
[  3] Sent 33020 datagrams
[  3] Server Report:
[  3]  0.0-10.0 sec  46.2 MBytes  38.6 Mbits/sec  0.030 ms   89/33019 (0.27%)
[  3]  0.0-10.0 sec  1 datagrams received out-of-order
[  4]  0.0-10.2 sec  43.0 MBytes  35.3 Mbits/sec  13.074 ms 11575/42256 (27%)

总结:从 dom0 到 domU 的 50Mbit UDP 数据包丢失率为 27%。

网络上的任何地方都会发生同样的事情。带宽越小,问题就越严重(5Mbit 时为 0.047%),带宽越大,问题就越严重(200Mbit 时为 59%)。

我确实增加了 dom0 的 CPU 权重,没有进行交换,也没有涉及实际的网络硬件。我从未想到 Xen(或任何相关的东西)会丢包,我完全不知道下一步该怎么做。

答案1

Xen 曾经遇到过以下问题TCP 校验和卸载,但我不确定这是否也用于 UDP 并且会影响您的测试。您可以尝试通过在 domU 中运行以下命令来禁用此功能:

ethtool -K eth0 tx off

相关内容