We've gigabit networks, and large maximum transmission units (MTU) sizes (JumboFrames) can provide better network performance for our HPC environment. How do I change MTU size under Linux?
You need support in both network hardware and card in order to use JumboFrames. If you want to transfer large amounts of data at gigabit speeds, increasing the default MTU size can provide significant performance gains.
Changing the MTU size with ifconfig command
In order to change the MTU size, use /sbin/ifconfig command as follows:
ifconfig ${Interface} mtu ${SIZE} up ifconfig eth1 mtu 9000 up
Note this will only work if supported by both the network nterface card and the network components such as switch.
Changing the MTU size permanently under CentOS / RHEL / Fedora Linux
Edit /etc/sysconfig/network-scripts/ifcfg-eth0, enter
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
Add MTU, settings:
MTU="9000"
Save and close the file. Restart networking:
# service network restart
Note for IPV6 set dedicated MTU as follows:
IPV6_MTU="1280"
Changing the MTU size permanently under Debian / Ubuntu Linux
Edit /etc/network/interfaces, enter:
# vi /etc/network/interfaces
Add mtu as follows for required interface:
mtu 9000
Save and close the file. Restart the networking, enter:
# /etc/init.d/networking restart
Changing the MTU size permanently (other Linux distros)
Edit /etc/rc.local and add the following line:
/sbin/ifconfig eth1 mtu 9000 upUpdated for accuracy!
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop














{ 12 comments… read them below or add one }
You can use alse another command:
ip link set eth0 mtu 9000
ip link set eth0 up
Or like this
/etc/network/interfaces
iface eth0 inet static
address 192.168.1.2
network 192.168.1.0
gateway 192.168.1.1
netmask 255.255.255.0
mtu 9000
Hello, the “printable version” link adds an extra / slash to the url and then gives a 404. I think it happends on many other pages.
Great job on this site, i follow it by mail and i also use the forum, it’s one of my reference sites. nice job.
Thanks for the heads up! I’ve fixed the problem. Earlier, today I patched up WP and something did went wrong with my functions file. Let me know if you’ve any more problem.
The /etc/rc.local file is severely deprecated, and shouldn’t be used at all. If you want to set MTU sizes on your NIC, then you should be editing the NIC’s config file, not init’s.
For RHEL/Fedora add “MTU=9000″ to /etc/sysconfig/network/ifcfg-eth0
For Debian/Ubuntu add “mtu 9000″ to /etc/network/interfaces
Take the interface down, then back up, and the setting should be applied. This gets a bit more troublesome on NICs that are bound together or for TAP/Bridge devices, but the concept is the same: edit the appropriate NIC config to make the setting.
@ Solaris/ Aaron,
The faq has been updated.
Appreciate your posts!
I tied using MTU 9000 under using Debian under /etc/network/ interfaces with a DHCP applied address and the mtu seems to be taken from the DHCP settings which seems logical, but is a little frustrating.
Should this only be enable on interfaces that have local traffic only? What happens to the packets if they are routed to devices that do not support an MTU of that size?
I have tried the same but it is not working & giving the following error
[root@server home]# /etc/init.d/network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: SIOCSIFMTU: Invalid argument
and what did you change?
I have givren the below.
DEVICE=eth0
#MTU=5000
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.138.129
NETMASK=255.255.255.0
#MTU=5000
i think here is the driver limitation…
i have similar situation
root@bigboy:~# ifconfig eth0 mtu 1490
root@bigboy:~# ifconfig eth0 mtu 1501
SIOCSIFMTU: Invalid argument