如何在 Linux 上設定巨訊框
9 分鐘閱讀 - 2026年5月11日

在 Linux 上啟用巨訊框的逐步指南,涵蓋硬體檢查、持續 MTU 設定和端對端測試
如何在 Linux 上設定巨訊框
巨訊框是有效負載大於標準 1,500 位元組 MTU 的乙太網路訊框。將 MTU 設定為 9,000 位元組可以減少每個封包的開銷和 CPU 中斷,這意味著您有更多的頻寬用於實際資料。這對於私人互連、設施間資料複製連線和專用儲存網路等高吞吐量路徑最為重要。本指南涵蓋硬體檢查、跨主要發行版的配置和測試。
為什麼巨訊框很重要
無論有效負載大小為何,每個乙太網路訊框都會帶有 18 位元組的標頭。如果 MTU 為 1,500 字節,則開銷約佔流量的 1.2%。將 MTU 提高到 9,000 字節,開銷就會下降到大約 0.2%。更少的封包也意味著更少的 CPU 中斷,騰出更多的週期用於實際應用程式工作。
實際上,高效能 LAN 的吞吐量可提升 5% 到 10% 之多。專用儲存網路 (iSCSI、NFS) 的吞吐量通常可提升 10% 到 30%。執行 AI/ML 工作負載的 GPU 集群也會受惠,因為大型資料集在節點間移動時的分割較少。GPU 加速環境通常建議使用 8,896 的 MTU。
問題是:巨型訊框只能在您完全控制的路徑上運作。來源與目的地之間的每個裝置,包括 NIC、交換器和路由器,都必須支援較大的 MTU。只要有一個跳躍設定錯誤,您就會得到碎片或無聲的封包丟失。對於面向網際網路的介面,請堅持使用 1,500。
檢查硬體相容性
在變更任何東西之前,請確認網路路徑中的每個裝置都支援巨訊框。
檢查您目前的 MTU 設定:
ip link show | grep mtu測試您的 NIC 是否接受較大的 MTU:
sudo ip link set eth0 mtu 9001如果收到SIOCSIFMTU:Invalid argument(無效參數),表示 NIC 不支援巨訊框。您也可以使用以下方式檢查卸載能力:
ethtool -k eth0 | grep -i large交換器組態也同樣重要。不同廠商要求的 MTU 值略有不同,以計算第 2 層標頭。Cisco交換器通常需要 9,216。Arista交換器使用 9,214。請檢查您的交換器說明文件,並據此設定。
如果您正在執行 VLAN,VLAN 標記會增加 4 位元組的開銷。MTU 設定為 9,000 的父介面支援 8,996 的 VLAN MTU。如果您需要在 VLAN 介面上使用完整的 9,000,請將父介面設定為 9,004。
在 Linux 上設定 MTU
暫時設定 MTU 以驗證是否運作正常:
sudo ip link set eth0 mtu 9000
ip link show eth0 | grep mtu這會立即生效,無需重新開機。對於綁定介面,請在綁定介面本身設定 MTU。它會自動傳播至成員 NIC。
使其持久化
方法取決於您的發行版和網路管理員。
| 發行版 / 工具 | 配置位置 | 語法 |
|---|---|---|
| Ubuntu 17.10+(Netplan) | /etc/netplan/*.yaml | mtu: 9000 |
| 網路管理員 | nmcli | 802-3-ethernet.mtu 9000 |
| Debian/ 舊版 Ubuntu | /etc/network/interfaces | mtu 9000 |
| systemd-networkd | /etc/systemd/network/*.network | MTUBytes=9000在[連結]中 |
| RHEL/CentOS(傳統) | /etc/sysconfig/network-scripts/ | MTU=9000 |
對於 Netplan,編輯後使用sudo netplan try。它會套用組態,如果您在兩分鐘內沒有確認,就會自動還原,這對遠端伺服器是很有用的安全網。對於 NetworkManager,執行
nmcli connection modify "Eth0" 802-3-ethernet.mtu 9000
nmcli connection up "Eth0"將變更持久化後,重新開機並使用 iplink show驗證,確認 MTU 已經存活。
測試與疑難排解
如果路徑中的任何裝置不符合 MTU 9,000 的設定,伺服器在進行大型傳輸時仍可能會失敗。小資料包可能會正常運作,而大資料包則會無聲無息地被丟掉。請務必端對端進行測試。
驗證巨訊框支援
在停用分片的情況下傳送全尺寸封包:
ping -M do -s 8972 <destination_ip>8,972 的有效負載大小包含 28 位元組的 IP 和 ICMP 標頭。如果 ping 成功,表示完整路徑支援 MTU 9,000。如果您看到 "Packet needs to be fragmented but DF set「(封包需要分片,但 DF 已設定)或 」Message too long"(訊息太長),表示路徑中的某個部分的 MTU 較低。
要找出路徑中斷的確切位置:
tracepath -n <destination_ip>這會報告每個跳躍點的最大 MTU,因此您可以找出需要重新配置的裝置。
測量吞吐量
使用iperf3比較之前和之後的效能:
iperf3 -c <destination_ip> -t 30 -M 8960先以預設 MTU 執行相同的測試,然後在啟用巨訊框後再執行一次。您應該可以看到吞吐量有明顯的改善,而且在儲存量高的工作負載上,CPU 使用率也會降低。
若要確認資料包在實際傳輸過程中完好無損,請檢查接收端的重新組合計數器:
nstat -az IpReasm*如果計數器保持為零,就表示沒有碎片發生。
常見問題
- MTU 不匹配:最常見的問題。路徑中的每個裝置都需要相同 (或更高) 的 MTU。一個交換器連接埠設定為 1,500 會破壞一切。
- 忘記 VLAN 開銷:VLAN 標籤會增加 4 位元組。如果您的 VLAN 介面需要 MTU 9,000,請將父代設定為 9,004。
- 在成員上設定綁定 MTU:永遠在綁定介面上設定 MTU,而不是在個別 NIC 上。
- NIC 硬體限制:某些較舊的 NIC 的上限會低於 9,000。執行
ethtool -k <interface> | grep -i large檢查。
結論
巨訊框是提高內部網路吞吐量和減少 CPU 開銷的直接方法。設定本身很簡單。困難的部分在於確保路徑中的每個裝置都支援較大的 MTU,這也是為什麼測試比設定步驟更重要的原因。
將巨型訊框用於儲存網路、虛擬機器遷移、備份,以及任何由您控制完整路徑的高頻寬內部流量。讓面向網際網路的介面保持標準的 1,500 位元組 MTU。
FDC 的VPS 和專用伺服器基礎架構支援私有 VLAN 上的巨訊框,因此非常適合這些工作負載。

厌倦了缓慢的部署或带宽限制?FDC Servers 提供即时的专用电源、全球覆盖和灵活的计划,适用于任何规模。准备升级?
立即开启性能
iperf3 教學:測試 Linux 與 Windows 上的網路速度
10 分鐘閱讀 - 2026年5月7日