rx_missed_errors 环大小设置为最大值 - udp 突发

rx_missed_errors 环大小设置为最大值 - udp 突发

应用程序 A 通过 TCP 向 B 发送流量。B 使用多播 (UDP) 将流量进一步发送到 C。D 上的应用程序通过 TCP 获取此数据。

A -> (TCP) -> B -> (UDP) -> C -> (TCP) -> D

A - Windows Server
B - ESX 主机上的 Linux VM
C - 另一个 ESX 主机上的 Linux VM(无负载 - 仅有一个 VM)
D - Windows 客户端

什么时候将流量发送到C由于 NIC(ixgbe)级别上发生的流量(突发)的性质,可以观察到多次丢弃(rx_missed_errors 直接对应于正在运行的应用程序C观察)。

增加环形缓冲区的大小(C) 达到最大值 (4096) 会使情况变得更糟。

所有连接均为 10G,流量水平不超过 2Gbit/s(突发期间)(使用 检查sar -n DEV 1)。

问题:

  1. 如何测量间隔小于 1 秒的突发事件?

  2. 为什么增加戒指尺寸会使情况变得更糟?

  3. 有没有办法减慢 B 上的流量,以便可以在 C 上处理而不会在 NIC 级别丢失?(流量整形,更改 tcp 窗口大小/缓冲区大小?)

  4. 为什么如果我用 Windows 主机替换 B,则根本不会发生丢失,就好像 udp 突发以更易于理解的方式形成一样。

  5. 我还能用什么其他方法来分析这个问题?

谢谢

相关内容