您好,登錄后才能下訂單哦!
這篇文章主要介紹了Linux下如何通過修改MTU優化cpu,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
MTU:是網絡的最大傳輸單元,通信術語:最大傳輸單元(Maximum Transmission Unit,MTU)是指一種通信協議的某一層上面所能通過的最大數據包大小(以字節為單位)。最大傳輸單元這個參數通常與通信接口有關。
1、什么是jumbo frames
Jumbo frames 是指比標準Ethernet Frames長的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每個設備廠商規定的,不屬于IEEE標準;Jumbo frame 在full-duplex 的Ethernet網絡上運行;Jumbo frame定義了一個“link negotiation”協議,來和對端的設備協商,是否對端設備支持使用Jumbo frames;標準的以太網IP報文大小是:1500 bit,不包含以太網頭和FCS的18 bit(6+6+2+4),如果包含以太網頭和FCS,則為1518 bit;Jumbo frame 一般指的是二層封裝三層IP報文的值大于9000bit的報文。
Jumbo frames的提出背景:在1998年,Alteon Networks 公司提出把Data Link Layer最大能傳輸的數據從1500 bit 增加到9000 bit,這個提議雖然沒有得到IEEE 802.3 Working Group的同意,但是大多數設備廠商都已經支持。
2、使用jumbo frames的優點
在數據傳輸時,由于IEEE的規定最大的幀規定為1,500比特(主機在早期的半雙功網絡中),所以需要數傳輸需要經過 數據的切要 --- 傳輸 ---數據組合 的過程。而使用的最大幀越小,傳輸包的量就越大,計算量相應會多,而產生的后果是:
a:增加主機的計算量,消耗CPU資源;
b:影響網絡傳輸的速度。
而使用大幀優點自然也不言而喻 ———— 降低CPU計算量、加快數據傳輸。
上面啰嗦了一大堆,修改幀大小實際需要的操作就是修改MTU(Maximum Transmission Unit)值,即修改最大傳輸單元。修改方法如下:
1、ifconfig命令修改
ifconfig ${Interface} mtu ${SIZE} up ifconfig eth2 mtu 9000 up
這個是最通用的方法,對所有的linux 發行版本都有效。缺點就是重啟后失效,需要在開機項中加載。
2、修改配置文件
CentOS / RHEL / Fedora Linux下
# vi /etc/sysconfig/network-scripts/ifcfg-eth0#增加如下內容MTU="9000"#保存后重啟網卡生效# service network restart#啟用IPv6地址的,修改IPv6 mtu的參數為IPV6_MTU="1280"
Debian / Ubuntu Linux下
# vi /etc/network/interfaces#增加如下值mtu 9000#保存后,重啟網絡生效# /etc/init.d/networking restart
從理論上計算,4 bit的CRC最大支持12000 bit大小的字節,超過了就沒有辦法檢查了。另外還有其他一些協議如NFS等的限制。
最后需要注意的是,在經過交換網絡設備時,僅僅修改主機端的MTU值是不行的,還需要交換網絡設備上開啟jumbo frames功能。
使用ping命令,-l 指定包大小,-f 選項為通知操作系統不能私自更改該數據包大小
使用英文操作系統時的提示為:Packet needs to be fragmented but DF set .
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Linux下如何通過修改MTU優化cpu”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。