功能强大的 Linux 服务器上的网络丢弃

功能强大的 Linux 服务器上的网络丢弃

我有相当强大的 Linux 服务器 - Dell PowerEdge R6515,它包含使用 AMD Epyc CPU 的 x64 内核。

另外还有专用的 LAN PCI:

lspci | grep 10G
41:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
41:00.1 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)

我们将其用作 Strongswan 服务器的 VPN 服务器。问题是,对于约 500Mmb 加密 RX 流量,我们遇到了相当多的接口丢弃。按百分比计算,约 30k 个数据包中约有 30 个被接口丢弃。这占丢弃数据包的 0.1%。这不是很关键,但还有改进的空间。唯一与网络相关的配置是将 tunedadm 模式设置为网络吞吐量。

ifconfig p3p1
p3p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::faf2:1eff:fed9:dc80  prefixlen 64  scopeid 0x20<link>
        ether f8:f2:1e:d9:dc:80  txqueuelen 1000  (Ethernet)
        RX packets 2637785997  bytes 1724447946355 (1.5 TiB)
        RX errors 0  **dropped 1342892**  overruns 0  frame 0
        TX packets 2943486813  bytes 1844888609689 (1.6 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我正在使用 Centos 7.9。

此外,恒定软中断计数约为 130k。当然,它不会在内核之间实现均衡负载,这就是为什么在其他站点上我们使用只有 12 个内核的 PowerEdge R340,它在丢弃甚至中断方面表现更好。

我认为这种行为与核心数量较大有关。有什么可以改进的吗?我看到有很多调整的可能性,但从我的个人经验来看,几乎每次调整都会带来一些缺点。

相关内容