小编Wim*_*off的帖子

哪些网络负载需要 NIC 轮询与中断?

有没有人有一些数据或基本计算可以回答何时需要帧合并 (NAPI) 以及何时每帧一个中断就足够了?

我的硬件:IBM BladeServer HS22、Broadcom 5709 千兆网卡硬件 (MSI-X),带有双 Xeon E5530 四核处理器。主要用途是 Squid 代理服务器。交换机是不错的 Cisco 6500 系列。

我们的基本问题是,在高峰时段(100 Mbps 流量,只有 10,000 pps),延迟和数据包丢失会增加。我已经做了很多调整和内核升级到 2.6.38,它改善了丢包,但延迟仍然很差。Ping 是零星的;在本地 Gbps LAN 上甚至跳到 200 毫秒。即使 CPU/内存负载很好,Squid 的平均响应也会从 30 毫秒跳到 500 毫秒以上。

在高峰期间,中断攀升至大约 15,000 次/秒。Ksoftirqd 使用的 CPU 不多;我已经安装了 irqbalance 来平衡所有内核的 IRQ(eth0 和 eth1 各 8 个),但这并没有多大帮助。

Intel NIC 似乎从来没有这些问题,但事实上刀片系统和固定配置的硬件,我们有点被 Broadcoms 困住了。

一切都指向 NIC 是罪魁祸首。我现在最好的想法是尝试减少中断,同时保持低延迟和高吞吐量。

不幸的是,bnx2 不支持自适应 rx 或 tx。

NAPI vs Adaptive Interrupts线程答案提供了对中断调节的很好的概述,但没有关于如何为给定的解决方法计算最佳 ethtool 合并设置的具体信息。有没有比试错法更好的方法?

上面提到的工作负载和硬件配置是否还需要 NAPI?或者它应该能够在每个数据包的单个中断上生存?

nic linux-networking broadcom

18
推荐指数
1
解决办法
1万
查看次数

标签 统计

broadcom ×1

linux-networking ×1

nic ×1