Network packets have a maximum payload size defined by the MTU (Maximum Transmission Unit). The standard value is 1500 bytes — a limit inherited from early Ethernet hardware. In industrial environments running high-throughput tasks such as database synchronisation, camera feeds, or large sensor data transfers, increasing the MTU to 9000 bytes (Jumbo Frames) reduces CPU interrupt overhead and improves sustained throughput. This guide shows how to check, temporarily change, and permanently configure the MTU on any Raspberry Pi OS device, including Raspberry PLC, GateBerry, and Touchberry Pi.
What are Jumbo Frames?
The standard Ethernet frame carries 1500 bytes of payload (MTU = 1500). Any frame exceeding this limit is called a Jumbo Frame. The most common Jumbo Frame target is 9000 bytes, though hardware support varies up to 12000 bytes.
Larger frames mean fewer interrupts per unit of data — the processor handles fewer frames for the same transfer, reducing CPU load and improving throughput on sustained, high-volume transfers. However, every device in the network path — network cards, switches, and routers — must be configured to the same MTU. A single device at 1500 bytes forces all traffic to fragment, which is worse than leaving the MTU at the default.
When to use Jumbo Frames — and when not to
Use Jumbo Frames when all switches and NICs in the path support 9000-byte frames, traffic consists of large sustained transfers (database backups, video streaming, image processing pipelines), and source and destination addresses are static.
Do not change the MTU if any switch or NIC in the path is limited to 1500-byte frames, the network carries mixed small and large packet traffic, or IP/MAC assignments are not static. In those cases, Jumbo Frames degrade performance rather than improving it.
Check the current MTU
Connect to your device via SSH or directly with a monitor and keyboard. Run one of the following commands:
sudo ifconfig eth0 | grep -i mtu
Or using the modern ip command:
ip link show eth0
The output shows the current MTU value. The default on Raspberry Pi OS is 1500.
Change MTU temporarily (until next reboot)
Use the ip command to set the MTU at runtime. Replace 9000 with the value your switch supports:
sudo ip link set eth0 mtu 9000
Verify the change:
ip link show eth0
This change is lost after a reboot. To persist it, follow the permanent configuration steps below.
Make the MTU change permanent
The configuration method depends on the network stack your Raspberry Pi OS version uses.
Raspberry Pi OS Bullseye and earlier (dhcpcd): edit /etc/dhcpcd.conf and add the following at the end of the file:
interface eth0 MTU 9000
Save and reboot:
sudo reboot
Raspberry Pi OS Bookworm and later (NetworkManager): use nmcli to set the MTU on the wired connection:
sudo nmcli connection modify "Wired connection 1" 802-3-ethernet.mtu 9000 sudo nmcli connection up "Wired connection 1"
After reboot, verify with ip link show eth0 — the MTU should now read 9000.
Industrial Shields Raspberry Pi-based products
Raspberry PLC, GateBerry, and Touchberry Pi from Industrial Shields run standard Raspberry Pi OS on the same hardware architecture as a bare Raspberry Pi board. All MTU configuration commands above apply identically on these products. Keep in mind that the physical Ethernet port must be connected to a switch that supports the target Jumbo Frame size — a switch limited to 1500-byte frames will fragment all oversized packets and cancel out any performance gain.



How to change MTU size on Raspberry Pi PLC