如何在 Linux 上配置巨型帧

9 分钟阅读 - 2026年5月11日

hero section cover
目录
  • 如何在 Linux 上配置巨型帧
  • 巨型帧为何重要
  • 检查硬件兼容性
  • 在 Linux 上配置 MTU
  • 测试和故障排除
  • 结论
分享

在 Linux 上启用巨型帧的分步指南,包括硬件检查、持续 MTU 配置和端到端测试

如何在 Linux 上配置巨型帧

巨型帧是有效载荷大于标准 1,500 字节 MTU 的以太网帧。将 MTU 设置为 9000 字节可减少每个数据包的开销和 CPU 中断,这意味着更多的带宽将用于实际数据。这在专用互连、设施间数据复制链路和专用存储网络等高吞吐量路径上最为重要。本指南包括硬件检查、主要发行版的配置和测试。

巨型帧为何重要

无论有效载荷大小如何,每个以太网帧都有一个 18 字节的报头。如果 MTU 为 1,500 字节,开销约占流量的 1.2%。将 MTU 提高到 9000 字节,开销就会下降到大约 0.2%。更少的数据包也意味着更少的 CPU 中断,从而为实际应用工作腾出时间。

实际上,高性能局域网的吞吐量可提高 5%-10%。专用存储网络(iSCSI、NFS)的吞吐量通常可提高 10%至 30%。运行 AI/ML 工作负载的 GPU 集群也能从中获益,因为大型数据集在节点间移动时的分段更少。对于 GPU 加速环境,通常建议使用 8896 MTU。

问题是:巨型帧只能在你完全控制的路径上运行。包括网卡、交换机和路由器在内的源和目的地之间的每台设备都必须支持更大的 MTU。只要有一个跳转配置错误,就会出现碎片或无声的数据包丢弃。对于面向互联网的接口,请坚持使用 1,500。

检查硬件兼容性

在进行任何更改之前,请确认网络路径中的每台设备都支持巨型帧。

检查当前的 MTU 设置:

ip link show | grep mtu

测试网卡是否接受更大的 MTU:

sudo ip link set eth0 mtu 9001

如果出现SIOCSIFMTU:无效参数,则表示 NIC 不支持巨型帧。您还可以使用

ethtool -k eth0 | grep -i large

交换机配置同样重要。不同供应商要求的 MTU 值略有不同,以便考虑第 2 层报头。Cisco交换机通常需要 9216。Arista交换机使用 9,214。请查阅交换机文档并进行相应设置。

如果运行 VLAN,VLAN 标记会增加 4 个字节的开销。MTU 设置为 9,000 的父接口支持 8,996 的 VLAN MTU。如果需要在 VLAN 接口上使用全部 9000,则应将父接口设置为 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/*.yamlmtu: 9000
网络管理员nmcli802-3-ethernet.mtu 9000
Debian/ 旧版 Ubuntu/etc/network/interfacesmtu 9000
systemd-networkd/etc/systemd/network/*.networkMTUBytes=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 不匹配,配置为 MTU 9,000 的服务器在进行大数据传输时仍可能出现故障。小数据包可能运行正常,而大数据包则会无声无息地被丢弃。请始终进行端到端测试。

验证巨型帧支持

发送一个禁用分片的全尺寸数据包:

ping -M do -s 8972 <destination_ip>

8,972 的有效载荷大小包含 28 字节的 IP 和 ICMP 报头。如果 ping 成功,说明全路径支持 MTU 9,000。如果看到 "数据包需要分片,但 DF 已设置 "或 "报文太长",说明路径中的某个部分的 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 上。
  • 网卡硬件限制:某些旧网卡的上限低于 9,000。运行ethtool -k <interface> | grep -i large进行检查。

结论

巨型帧是提高吞吐量和减少内部网络 CPU 开销的直接方法。配置本身很简单。难点在于确保路径中的每台设备都支持更大的 MTU,这也是为什么测试比配置步骤更重要的原因。

在存储网络、虚拟机迁移、备份和任何高带宽内部流量中使用巨型帧,因为你可以控制整个路径。将面向互联网的接口保留为标准的 1,500 字节 MTU。

FDC 的VPS 和专用服务器基础设施支持专用 VLAN 上的巨型帧,因此非常适合这些工作负载。

background image
您的服务器是否阻碍了您的发展?

厌倦了缓慢的部署或带宽限制?FDC Servers 提供即时的专用电源、全球覆盖和灵活的计划,适用于任何规模。准备升级?

立即开启性能

博客

本周特色

更多文章
Linux 服务器加固清单

Linux 服务器加固清单

加固 Linux 服务器的分步核对表。涵盖 SSH、防火墙、打补丁、文件权限、SELinux/AppArmor 和审计日志

15 分钟阅读 - 2026年5月8日

iperf3 教程:在 Linux 和 Windows 上测试网络速度

10 分钟阅读 - 2026年5月7日

更多文章