我们有一个通过 UDP 输出高速数据的设备,直接连接到处理器(无交换机)。处理器运行的是 CentOS 6.6。连接是千兆以太网。当我们使用 1400 字节范围内的数据包大小时,一切都运行良好。当我们切换到巨型数据包(数据包大小略小于 9000 字节)时,我们有时会收到接收错误。有时,我的意思是如果启动时没有接收错误,它们最终不会开始发生,但如果启动时有接收错误,它们不会停止。当我们收到错误时,只有部分数据会通过。在接口上运行 ethtool -S 会产生以下非零值:
rx_packets: 4752316
tx_packets: 7407
rx_bytes: 42021872746
tx_bytes: 477144
rx_broadcast: 34
tx_broadcast: 8
tx_multicast: 37
rx_errors: 6161970
rx_crc_errors: 3080985
rx_csum_offload_good: 7325
rx_header_split: 4752250
我们尝试更换设备和电缆,但没有任何变化。我们还升级到了最新的 e1000e 驱动程序。同样的场景在我们的一台运行 CentOS 6.6 的测试机器上也能正常工作。两个系统都使用 Intel 82574L 以太网控制器。有人对如何解决这个问题有什么建议吗?