MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。
大部分网络设备都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。
linux MTU调整
1、找到服务器的MTU值
使用netstat -i 来查看MTU的值
- [root@asterisk ~]# netstat -i
- Kernel Interface table
- Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
- eth0 1500 0 60041 0 0 0 48841 0 0 0 BMRU
- lo 16436 0 63 0 0 0 63 0 0 0 LRU
找到一台终端:输入以下命令:
ping -c (number) -M do -s (bytes) IP
其中number是次数、是封包大小。结果如下
Frag needed and DF set (mtu = 1500)
意思是说,这个封包的大小大于MTU能够接受的大小,如果要达到最佳化,那么MTU数值的设定要更小才行!继续使用1400來测试:
1408 bytes from 1.1.1.1: icmp_seq=0 ttl=64 time=3.15 ms
结果出现回应!这表示这个MTU值是可行的!不过,建议找出可行的最大MTU值!这样一來,在设定的时候,才可以达到最佳的网络速率!
最终MTU最佳数值为:
最佳MTU+28
对EtherNet来说:1472+28=1500
2、调整MTU值:
ifconfig eth0 mtu 1500
这样应该已经可以解決MTU无法搭配的问题
注:
MTU: Maximum Transmission Unit 网络最大传输单位。并不是越大越好,而是需要针对网络來进行最佳化
常见网络MTU
EtherNet(一般的网络) 1500
PPPoE(ADSL用的) 1492
Dial-up(modem) 576
my example:(from 218.7.43.7)
[root@flat root]# ping -c 3 -M do -s 1473 218.7.43.6
PING 218.7.43.6 (218.7.43.6) 1473(1501) bytes of data.
From 218.7.43.7 icmp_seq=0 Frag needed and DF set (mtu = 1500)
From 218.7.43.7 icmp_seq=0 Frag needed and DF set (mtu = 1500)
From 218.7.43.7 icmp_seq=0 Frag needed and DF set (mtu = 1500)
--- 218.7.43.6 ping statistics ---
0 packets transmitted, 0 received, +3 errors
[root@flat root]# ping -c 3 -M do -s 1472 218.7.43.6
PING 218.7.43.6 (218.7.43.6) 1472(1500) bytes of data.
1480 bytes from 218.7.43.6: icmp_seq=0 ttl=255 time=0.937 ms
1480 bytes from 218.7.43.6: icmp_seq=1 ttl=255 time=0.912 ms
1480 bytes from 218.7.43.6: icmp_seq=2 ttl=255 time=0.972 ms
--- 218.7.43.6 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2022ms
rtt min/avg/max/mdev = 0.912/0.940/0.972/0.035 ms, pipe 2
阅读(1525) | 评论(0) | 转发(0) |