網卡參數設定建議與各個網卡參數含義詳解

來源:互聯網
上載者:User

 自從和無盤開始打交道,學到了n多知識,無論是軟體層面還是硬體層面,無論是理論還是實踐層面,之前很多人認為無盤很複雜,而我也受其“誤導”認為無盤很複雜,但實際上用下來發現,其實無盤確實很簡單,而所謂的無盤複雜,更多的是理論和經驗的結合,以前在網上也看到過很多無盤教程,當時不以為然,不當回事,總覺得自己很牛,可實際上真正的去做了之後,發現自己也在傳播這些資訊,套用以前某人說過的一句名言“現在很多人的不份,不爽,不以為然,只是為了證明前人的經驗是正確的。”

  而實際上有這句名言,完全是實踐,經驗,理論最終的結晶,因為很多時候往往是我們自己在實踐中撞了南牆,然後總結經驗,當長時間經驗累計之後開始好奇,於是開始去搜尋,最終發現理論中已經描述了你所實踐的,和你所總結的東西。所以今天也和大家分享一些理論知識,大部分來自網路,如有錯誤,還望大家及時糾正。

  既然開頭我們提到了無盤,那麼今天也是說和無盤相關的一項非常重要的內容,那就是網卡參數設定。我們都知道無盤就是客戶機沒有硬碟,而無盤實際上就是把客戶機的硬碟放在了伺服器上,通過一種虛擬化技術來工作的,而在這個虛擬過程中,網卡是非常關鍵的一環,他就好像有盤客戶機的資料線。只是這根資料線遠遠比SATA資料線複雜的多,不只存在接觸好不好的問題,還存在設定好不好的問題,設定好了,速度快,穩定,設定不好,問題也會多樣,而複雜。ok,廢話終了,進入正題!

  既然要說網卡相關的內容,這裡不得不替一下傳說中的IEEE,IEEE是什嗎?他實際上是一個組織,並且創立了很多互連網通訊標準,IEEE全名:Institute of Electrical and Electronics Engineers,中文翻譯:美國電氣和電子工程師協會,比如我們之前聽過的“網卡匯聚”實際上就是IEEE建立的一個叫做802.3ad鏈路彙總的標準協議,再比如我們所說的vlan實際上也是IEEE建立的一個名叫802.3q (虛擬區域網路Virtual LANs:VLan)標準協議,如果大家感興趣,可以百度一下IEEE或802.3相信可以瞭解很多知識。

Energy Efficient Ethernet:EEE
  上面說的都是IEEE做的一些非常靠譜的事情,其實最近他們也做了一件不是很靠譜的事情,就是發明了一個802.3az節能標準,作用是在網卡沒有流量時自動降低功耗,只有網路使用率較高時,才會發揮最大功耗,而這個802.3az節能標準的全名就是Energy Efficient Ethernet,簡稱EEE,中文翻譯是:節能高效乙太網路技術。他的出現給無盤帶來了很大麻煩,只要開啟網卡參數中的EEE設定,就可能會導致開機速度慢問題,目前市面上比較新的Realtek的8111E網卡(Rev06)就支援這個節能技術,但是可能因為批次原因,會出現某些網卡如果不關閉EEE選項,開機速度就非常慢,xp捲軸需要6圈以上,關閉後可能變成2圈或者1圈,而有些8111E網卡又不會受影響。這就是今天說的第一個網卡參數EEE。由於該技術還比較新,目前只看到了Realtek網卡配合較新的驅動才能看到該選項,而且也在Realtek官網上看到這麼一條新聞。

2011-9-11 00:12 上傳

下載附件
(12.24 KB)

  其中紅字標出的,有一句是全球首顆……,是的,EEE存在的問題貌似確實只有Realtek網卡才遇到,或許是第一個吃螃蟹的人總是最先品到美味,也是第一個會受傷的人吧……只是我們這些小白使用者真的傷不起……為一塊Realtek 8111E網卡的設定頁,如果你的網卡有EEE選項,一定要關閉噢,當然如果沒有就不需要理會了,因為沒有這個選項,可以認為網卡不支援EEE。

2011-9-11 00:12 上傳

下載附件
(26.11 KB)

  另外“環保節能”、“GreenEthernet”也和EEE差不多,都屬於節能功能,所以都建議關閉,總之在無盤上,和節能有關的功能一定不要開,否則不是速度慢,就是不穩定,因為在無盤上,網卡是不存在“沒有流量”的情況的,開了一定會出問題。

流程式控制制、流量控制、FlowControl
  這個選項基本上所有網卡都會有,但是叫法會有些差別,比如Realtek網卡叫做流量控制,Intel網卡叫做流程式控制制,還有一些網卡選項乾脆是英文的,叫做FlowControl,很多交換器上也有這個功能,也叫做FlowControl,而在下面的理論解釋中就簡稱流量控制,這樣可以少打一個字。
  網卡自身支援的流量控制和我們所說的Qos不一樣,雖然目的可能是一樣的。網卡或交換器支援的流量控制也是一個IEEE標準,叫做802.3x全雙工系統乙太網路資料連結層的流控,因為它是個電子電器標準,所以交換器,網卡這類乙太網路裝置是都支援的,而且也都遵循這個802.3x標準,這個標準的核心作用就是防止網路擁堵時導致的“丟包”問題,大致的工作原理就是當鏈路兩端的裝置有一端忙不過來了,他會給另外一端的裝置發一個暫停發包的命令,通過這種方式來緩解壓力,解決丟包問題。舉個吃飯的例子,你自己吃飯,實際上就是有“流量控制”的體現,因為你並會出現因為太忙或者怎麼樣,把飯吃到鼻子裡的情況。但是如果你給一個人喂飯,就好比是沒有“流量控制”的情況,你很可能會把飯喂到別人的鼻子裡……
  看上去流量控制應該是個非常好的防止丟包的方法,但是為什麼我們還要在無盤上關閉他呢?原因很簡單,因為現在的幾乎所有無盤軟體都支援“資料包重發”功能,也就是說如果客戶機發現有丟包情況,或者服務端發現有丟包情況,都會重新請求,根本不需要網卡再從中間狗拿耗子多管閑事,而也正式因為無盤軟體有重發機制,當這種重發機制遇到流量控制時就上演了這樣一出鬧劇:
客戶機網卡向伺服器網卡要資料時,說:Server快給我下一個資料包!
伺服器網卡向客戶機網卡發資料時,說:Soryy,我忙不過來了,你吖的等一下,於是伺服器暫停了一下。
結果此時無盤軟體用戶端和客戶機網卡說:我靠,資料包咋還沒發過來?你再不來我就一直拚命發!
而無盤服務端也問伺服器網卡說:我把資料包給伺服器網卡了,怎麼客戶機還沒回應?客戶機不回應一定是丟包了,於是無盤服務端也拚命的發包給客戶機……
  就這樣,因為流量控制,出了問題,因為資料等待問題,客戶機卡了,因為無盤服務端始終發不出資料包,結果服務端可能也掛了,而這,就是流量控制為什麼會影響無盤的原因,所以無論是伺服器,客戶機,交換器,只要有流量控制的地方,就一定要關閉掉!

巨型幀、巨幀資料包、Jumboframe
  這個網卡參數基本上也是所有網卡上都有,也會因為網卡品牌不同,叫法不同,比如Realtek就叫巨型幀,Intel網卡就叫巨幀資料包,有些老版本的網卡驅動顯示的是英文,叫做Jumboframe。下文中也是為了少打字,就叫巨幀了。
  前兩個網卡參數提到的參數都是由IEEE創立國際標準協議基礎上開發的,而這個巨幀並非一個國際標準,而是通訊裝置公司之間自己商定的一個非主流標準,所謂巨幀是一種超長框架格式,專門為千兆乙太網路而設計,乙太網路標準的最大幀長度為1518位元組,而Jumbo Frame的長度各廠商有所不同,一般最小的有2KB,大一點的有9KB左右。那麼這個巨幀有什麼好處呢?
  拿一個現象來和大家解釋吧,相信做無盤的人,都熟悉Hd_Speed這個軟體,他是一個測速軟體,他的測速選項中有個叫做“塊大小”的參數,如:

2011-9-11 00:13 上傳

下載附件
(24.53 KB)

  細心的同學一定會發現,同樣的無盤,同樣的網路環境,如果你測速時選擇的“塊大小”和測試得出的速度也是不一樣的,比如一個用64K塊測速值為64MB/S速度的網路環境,使用128K或512K則能達到80MB/S,甚至90MB/S的速度,這個現象其實就是巨幀的原理。
  使用巨幀可以有效減少網路中資料包的個數,從而提升傳輸效率,降低網路裝置處理“包頭”的而外負擔。這就是巨幀為什麼能提神光網路傳輸效率的原因。
  相信大家關注過交換器有個參數叫做包轉寄率,但是並沒有限制包大小,也就是大包,小包其實並不會嚴重影響轉寄效率,因此,如果單位時間內可以傳輸多個比較大的資料包,傳輸資料量自然就會多,而最終軟體顯示的速度也會變快,以剛才的hdspeed測速為例:
64k塊的速度有64MB/S,那麼實際上這個網路通道每秒可傳輸64*1024/64=1024個64K的資料包,假如在沒有丟包的情況下,每秒能傳輸1024個128k的資料包時,網路傳輸速度理論就能達到128MB/S的速度,也就是翻一倍!
  說到這裡肯定很多人心動了,趕緊去開巨幀,來提升速度,但是不要忘記,這隻是理想狀態,而實際上再好的網路也會有丟包,在有丟包的情況下,你單個傳輸的資料包越大,丟失一個資料包造成的影響也就越大,而帶來的問題也就是傳輸速度月不穩定,所以巨幀如果在“理想環境下”是非常好的技術,如果在不理想的環境下,無疑是一種災難,同時巨幀並非一個行業標準,而是每家的標準都不大一樣,如果使用不同廠家提供的硬體裝置,就可能因為存在單個幀長度不同而帶來的速度波動嚴重問題。
  而實際上,有哪家網吧能夠做到網卡,網線,交換器都是一家廠商出的?實際上沒有,因此巨幀對於網吧來說還是關閉的好。
  這裡給大家一個小經驗,Intel 82574L網卡做伺服器開4K巨幀,Realtek網卡做客戶機開2K巨幀,在使用一些傻瓜交換裝置時,測速可能會有一些提升噢,不過這些提升一般不足以最佳化客戶體驗,如果感興趣的同學,可以玩一玩,來加強自己的理解!

大量傳送減負、中斷節流率、中斷模式……
  上面這些網卡參數本身的功能並不一樣,但實際上目的都一樣的,或者說是互相合作的關係,首先解釋一下大量傳送減負,這個選項在Realtek網卡上是存在的。
  舉個例子,大家知道一個PC上是有一個CPU負責運算的,而一個網卡實際本身也是存在具備CPU運算功能的,所謂的網卡吞吐能力,響應能力實際上就是網卡晶片自身的運算能力的體現。但是在早期,網卡晶片的處理能力是很一般的,所以有些網卡上就有後個選項,具體名字忘記了,大致意思就是網卡效能最佳化時,是以降低CPU為最佳化指標,還是以IO效能為最佳化指標,是上這就是和現在說的大量傳送減負作用是一樣的,那麼大量傳送減負,減的是誰的負擔?實際上是CPU的負擔,如果一旦網卡處理的資料過多時,就會耗費一些CPU資源來做運算,為了降低CPU網路傳輸速度過快而導致的CPU壓力上升,也就有了大量傳送減負這個功能,開了他,就會在傳輸速度過高時自動降速,關了他就會發揮網卡最高效能。
  而現在CPU的運算能力不要太好,所以沒必要為了降低CPU使用率而去放棄高效能的網路傳輸速度,這完全是一個過時的功能了。實際上標題裡的中斷節流率、中斷模式的作用個人認為和大量傳送減負的作用是完全一樣的,都是為了防止網路傳輸速度過快時而導致CPU使用率上升問題而開發的,比如Intel網卡裡這個功能參數就叫做“中斷節流率”,而在說明中也詳細瞭解釋了這個功能的好處和壞處,見:

2011-9-11 00:13 上傳

下載附件
(10.47 KB)

說明全文如下:

設定控制器調節或延遲中斷產生的速率,以最佳化網路輸送量和 CPU 的使用。預設設定(適應性)根據通訊量類型和網路使用方式動態調節中斷速率。選用另一個設定可能會提高某種配置中的網路和系統效能。

在沒有中斷調節的情況下,由於系統必須處理大量的中斷,CPU 的使用量將以更高的資料速率增加。中斷調節使網路磁碟機能積累中斷,並發送單個(而不是一系列的)中斷。在較高的資料速率下,高中斷調節設定可能會提高系統功能。在低資料速率下,應選用較低的中斷調解設定,因為延遲的中斷會導致延遲。

  當你的伺服器最差也用Xeon 3430,好一點在用Xeon 5506,更牛b的都開始雙CPU的時候,你覺得還有必要為了降低CPU鴨梨過大問題,而去降低網卡效能嗎?我的答案是:不需要。當然話分兩頭說,如果你的伺服器還是比較爛的CPU,那還是預設不去修改的好,以免上做高峰時,出現伺服器CPU使用率高而導致全場秒卡問題,甚至服務端掛掉的問題……
  根據自己非常不嚴禁的測試,關閉該參數,至少可以提升5MB/S的網路傳輸速度。

硬體效驗和、適應性幀間距調整、TCP/UDP 校正和
  羅索了幾個小時,終於說到最後一個網卡參數了,從網卡參數描述上,基本大家都能明白,這是一個效驗功能,他的作用也不用多說,實際上就是為了防止在網路環境不好的情況下,解決資料包損壞,丟幀的問題。在這裡又要引入2個概念,就是傳說中的TCP和UDP,相信大家對名詞非常熟悉,那麼他們有什麼特點相信不是所有人都瞭解的,至少正在寫文章的我,也不能準確無誤的表達清楚,所以百度了一下TCP和UDP的特點:
TCP:傳輸控制通訊協定,提供的是連線導向、可靠的位元組流服務。
當客戶和伺服器彼此交換資料前,必須先在雙方之間建立一個TCP串連,之後才能傳輸資料。TCP提供逾時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。

UDP---使用者資料包通訊協定,是一個簡單的面向資料報的運輸層協議。
UDP不提供可靠性,它只是把應用程式傳給IP層的資料報發送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸資料報前不用在客戶和伺服器之間建立一個串連,且沒有逾時重發等機制,故而傳輸速度很快。

  當然TCP和UDP遠遠不只上面描述的那麼簡單,不過我們畢竟不是搞研發的,懂得道理就行,用我自己的話描述就是:
TCP是個非常靠譜的人,和你說話一定要讓你從頭到尾都聽明白,聽清楚,確保溝通無誤;
而UDP就是個不太靠譜的人,我說我的,你聽你的,我說完了就行,至於你聽懂還是沒聽懂,和我一毛錢關係都沒有。
所以,TCP因為羅索速度慢,但是可靠,而UDP因為不羅嗦,完成任務就OVER,所以速度快!
  那這個TCP、UDP和效驗啥關係呢?很簡單,TCP協議本身就有效驗功能,並不需要網卡在中間搞一道,即便需要效驗,也是UDP需要效驗,防止傳輸過程中出現壞包導致的資料損毀問題,TCP完全不需要,而在無盤上來說,只要開機之後,每個資料包都是非常關鍵的,因此大多數無盤都會採取TCP協議來保證可靠性,所以並不需要這個效驗功能,同時,做包效驗也是好要耗費資源運算的,說惡劣一點,為了這樣一個畫蛇添足的功能而去浪費寶貴的資源,純屬一種浪費!所以無盤上,帶有效驗字樣的網卡參數完全可以關閉掉!
  不過話說回來,做人做事,不能做的太絕,就像說話一樣,也不能說太絕,這個效驗功能雖然看上去絕大多數情況下,是百無一用,但是能說它百無一用是在瞭解他的特性之後,比如,如果是使用UDP協議的軟體,可能在網路狀況較差的情況下,不開啟效驗功能,就可能導致出問題!
  好了,羅索了這麼多,還是要說一句,任何產品的任何功能都是在特定的環境下產生的,為了滿足特定的需求產生,所以理論上任何一個功能在功能自身來說都是有用的,至於是否需要用就要取決於環境,打個比方,刀和槍在戰爭中都會用到,但是在暗殺時,你用槍很容易暴露,但是用刀就一定成都上可以保證不被人發現,額,這個例子有點血腥,你也可以理解為切西瓜,用刀肯定比用槍好……
  今天就到此為止了,上面大部分內容是來自網路說明,文案充足由博主完成,當然也帶有博主一些非常流氓的比喻,可能不恰當,引起大家誤會,所以如果有不懂,或者有說錯的地方,希望大家海涵,並提出批評或糾正意見,謝謝!

附上一張來自網維知識庫的網卡參數設定說明,這個設定伺服器和客戶機通用:
原文連結:http://bbs.icafe8.com/forum.php?mod=viewthread&tid=280990&page=1#pid1523072

網卡品牌 參數名稱(中英文對照)   設定建議
Realtek EEE   建議關閉
巨型幀/Jumboframe   建議關閉
流量控制/FlowControl   建議關閉
大量傳送負載/OffloadLargesend   建議關閉
環保節能/GreenEthernet   建議關閉
硬體效驗和/OffloadChksum   建議關閉
Intel TCP/IP分載選項 分載接收IP效驗和/ChecksumRxIp 建議關閉
分載接收TCP效驗和/ChecksumRxTcp 建議關閉
分載傳輸IP效驗和/ChecksumTxIp 建議關閉
分載傳輸TCP效驗和/ChecksumTxTcp 建議關閉
分載TCP分段/TcpSegmentation 建議關閉
流程式控制制/FlowControl   建議關閉
適應性幀間距調整/AdaptiveIFS   建議關閉
中斷節流率/InterruptThrottleRate   建議關閉
巨幀資料包/JumboPacket   建議關閉
Marvell 巨幀包/JumboPacket   建議關閉
卸載 TCP/UDP
校正和

(IPv4)/TCPUDPChecksumOffloadIPv4
  建議關閉
大量傳送負載 (IPv4)/LsoV1IPv4   建議關閉
中斷模式/InterruptModeration   建議關閉
流量控制/FlowControl   建議關閉
能量之星/WakeUpSpeed   建議關閉
Atheros 流量控制/Flow Control   建議關閉
中斷調整/Interrupt Moderation   建議關閉
每秒最大中斷/Max IRQ per Second   30000
接收緩衝區/Number of Receive Buffers   512
任務卸載/Task Offload   建議關閉
Broadcom
硬體效驗和/ChksumOffload   建議關閉
流量控制/FlowControl   建議關閉
大量發送卸載/Large Send Offload   建議關閉
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.