Docs / Networking / How to Configure MTU Settings for Optimal Performance

How to Configure MTU Settings for Optimal Performance

By Admin · Mar 2, 2026 · Updated Apr 23, 2026 · 27 views · 3 min read

How to Configure MTU Settings for Optimal Performance

The Maximum Transmission Unit (MTU) defines the largest packet size that can be sent over a network link without fragmentation. Correctly configuring MTU on your Breeze instance prevents packet fragmentation, reduces overhead, and can significantly improve throughput for large data transfers.

Understanding MTU

The standard Ethernet MTU is 1500 bytes. Jumbo frames use MTU values of 9000 bytes or higher. Tunneling protocols like VXLAN, GRE, and VPNs add encapsulation headers that reduce the effective MTU. If a packet exceeds the path MTU and the Don't Fragment (DF) bit is set, the packet is dropped and an ICMP "Fragmentation Needed" message is sent back.

Checking Current MTU

View the MTU setting on all interfaces:

ip link show
# or for a specific interface
ip link show dev eth0 | grep mtu

Discovering Path MTU

Use ping with the Don't Fragment flag to discover the path MTU between your Breeze and a destination:

# Linux: -M do sets DF bit
ping -M do -s 1472 -c 4 destination-host.example.com

Start with 1472 (1500 minus 28 bytes for IP and ICMP headers). If you get "message too long" errors, reduce the size. The largest size that works plus 28 equals your path MTU.

Setting MTU Temporarily

Change the MTU on an interface immediately:

sudo ip link set dev eth0 mtu 1400

This change does not survive a reboot.

Persistent MTU on Ubuntu/Debian (Netplan)

Edit your Netplan configuration in /etc/netplan/:

network:
  version: 2
  ethernets:
    eth0:
      mtu: 1400
      addresses:
        - 203.0.113.10/24
      routes:
        - to: default
          via: 203.0.113.1

Apply with sudo netplan apply.

Persistent MTU on CentOS/RHEL

Use NetworkManager:

sudo nmcli con mod eth0 802-3-ethernet.mtu 1400
sudo nmcli con up eth0

MTU for Common Scenarios

ScenarioRecommended MTU
Standard Ethernet1500
WireGuard VPN1420
OpenVPN (UDP)1400
VXLAN overlay1450 (or underlay at 1550)
GRE tunnel1476
PPPoE connection1492
Jumbo frames (LAN only)9000

Enabling Jumbo Frames

If your network infrastructure supports jumbo frames, enable them for better throughput on large transfers:

sudo ip link set dev eth0 mtu 9000

Every device along the path must support the same MTU. A single link with a lower MTU will cause fragmentation or drops. Verify with:

ping -M do -s 8972 -c 4 peer-host

TCP MSS Clamping

When you cannot change the MTU on all hops, use MSS clamping to ensure TCP segments fit within the path MTU:

sudo iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN \
    -o eth0 -j TCPMSS --clamp-mss-to-pmtu

This automatically adjusts the TCP Maximum Segment Size during the handshake, preventing fragmentation without requiring MTU changes across the entire path on your Breeze network.

Was this article helpful?