![Debian Linux 6.0 上的 Intel igb 驱动程序数据包丢失](https://linux22.com/image/575542/Debian%20Linux%206.0%20%E4%B8%8A%E7%9A%84%20Intel%20igb%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E6%95%B0%E6%8D%AE%E5%8C%85%E4%B8%A2%E5%A4%B1.png)
我正在运行 Debian Linux 6.0 (2.6.32-5-amd64)。我的网络 NICS 是 Intel 82580 Gigabit,运行 IGB 网络驱动程序版本 3.3.6(固件版本 3.2-9)。
我测试了性能并注意到大量数据包丢失。
我的测试很简单:将文件 tcpreplay 到 IGB 接口,并在另一端运行 tcpdump 以验证所有数据包是否已到达。
即使吞吐量很小,我也遇到过很多次掉线的情况。
我将端口切换到旧的 e1000e 驱动程序,一切都运行正常。
我尝试执行以下操作并得到了相同的结果:
降级驱动程序版本,安装源力 igb 驱动程序,安装支持 igb 的 PF_RING,使用 snaplen 和缓冲,我从 kernel.org 将内核版本升级到最新的 3.2.5
有人知道如何解决这个问题吗?
谢谢
答案1
IGB 卡在默认 IRQ 分配下通常运行缓慢。您可能需要设置 CPU 亲和性。英特尔提供这个文件指导整个过程。
答案2
尝试将最新的 Intel NIC 驱动程序编译为内核模块,并使用它代替 stocker。它对我来说效果很好。