use*_*238 16 nic linux-networking
我对特定的答案感兴趣:
更多细节:
我正在对一个 IPSec 实现的性能问题进行故障排除。问题是可用带宽并没有在所有 4 个 VPN 隧道中均匀分布(大约分布为 200MBps/200MBps/1MBps/1MBps;每个 VPN 隧道封装单个 TCP 连接)。在 PCAP 中,我偶尔会看到网络服务器空闲大约 2 秒(等待 ACK)。当网络服务器重新传输未确认的段时,下载恢复。
我对 PCAP 的看法是 NIC GRO 功能将数据包粘合在一起,但有时不会将它们及时传递到 TCP 堆栈,这导致了问题。
由于此 VPN 服务器没有终止 TCP 连接而仅转发数据包的接口。然后我尝试禁用 GRO,之后我观察到流量在所有隧道中均匀分布。此外,当在 Web 服务器上禁用 TCP 窗口缩放时,即使启用了 GRO,带宽也会被分配(这就是我遇到问题 #3 的原因)。
我在 Ubuntu 10.04 服务器(64 位)上使用 2.6.32-27 linux。网卡是英特尔 82571EB。所有接口(HTTP 客户端、VPN 客户端、VPN 服务器、Web 服务器)都通过 1Gbit 以太网电缆直接连接。
sys*_*138 18
我发现这篇文章非常有用:JLS2009:通用接收卸载。它很好地概述了 GRO 的工作原理。
Ethtool可能能够在特定接口上启用/禁用 GRO。取决于版本。
| 归档时间: |
|
| 查看次数: |
49185 次 |
| 最近记录: |