強大的 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% 的丟包率。這不是很關鍵,但還有進步的空間。唯一與網路相關的配置是將tunadm 模式設定為網路吞吐量。

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,它在丟棄甚至中斷方面表現更好。

我認為這種行為與大核心數有很大關係。有什麼可以改進的嗎?我發現有很多調音的可能性,但從我個人的經驗來看,幾乎每首曲子都有一些缺點。

相關內容