Linux 網絡卡特性配置ethtool詳解

2022-08-26 23:51:09 字數 2202 閱讀 3504

**於:

ethtool 常用命令如下,比如對eth0的操作:

ethtool eth0       //查詢ethx網口基本設定,其中 x 是對應網絡卡的編號,如eth0、eth1等等

ethtool –h //顯示ethtool的命令幫助(help)

ethtool –i eth0 //查詢eth0網口的相關資訊

ethtool –d eth0 //查詢eth0網口註冊性資訊

ethtool –r eth0 //重置eth0網口到自適應模式

ethtool –s eth0 //查詢eth0網口收發包統計

ethtool –s eth0 [speed 10|100|1000] [duplex half|full] [autoneg on|off] //設定網口速率10/100/1000m、設定網口半/全雙工、設定網口是否自協商

1、rx-checksumming: off      

接收側硬體校驗和計算,如能設定為on,表示網絡卡支援該特性,命令: ethtool -k eth0 rx-checksum on|off

2、tx-checksumming: on      

傳送側硬體校驗和計算,如能設定為on,表示網絡卡支援該特性,命令: ethtool -k eth0 tx-checksum-ip-generic on|off

3、scatter-gather: on          

分散/聚集 (scatter gather) 功能,是網絡卡要支援tso的必要條件之一。

4、tcp-segmentation-offload: on 

簡稱tso,是一種利用網絡卡對tcp資料報分片,減輕cpu負荷的一種技術,有時也被叫做 lso (large segment offload) ,tso是針對tcp的,ufo是針對udp的。如果硬體支援 tso功能,同時也需要硬體支援的tcp校驗計算和分散/聚集 (scatter gather) 功能。命令: ethtool -k eth0 tso on|off

在不支援tso的網絡卡上,tcp層向ip層傳送資料會考慮mss,使得tcp向下傳送的資料可以包含在乙個ip分組中而不會造成分片, mss是在tcp初始建立連線時由網絡卡mtu確定並和對端協商的,所以在乙個mtu=1500的網絡卡上,tcp向下傳送的資料不會大於min(mss_local, mss_remote)-ip頭-tcp頭。

網絡卡支援tso時,tcp層會逐漸增大mss(總是整數倍數增加),當tcp層向下傳送大塊資料時,僅僅計算tcp頭,網絡卡接到到了ip層傳下的大資料報後自己重新分成若干個ip資料報,新增ip頭,複製tcp頭並且重新計算校驗和等相關資料,這樣就把一部分cpu相關的處理工作轉移到由網絡卡來處理。

5、udp-fragmentation-offload: off

簡稱ufo,是網絡卡對udp提供的類似tso的技術。 命令:ethtool -k eth0 ufo on | off

在我的網絡卡上不支援這個特性,所以命令執行失敗是這樣的:

root@ubuntu:~# ethtool -k eth0 ufo on

cannot change udp-fragmentation-offload

could not change any device features

6、generic-segmentation-offload: on

簡稱gso,它比tso更通用,基本思想就是盡可能的推遲資料分片直至傳送到網絡卡驅動之前,此時會檢查網絡卡是否支援分片功能(如tso、ufo), 如果支援直接傳送到網絡卡,如果不支援就進行分片後再發往網絡卡。這樣大資料報只需走一次協議棧,而不是被分割成幾個資料報分別走,這就提高了效率。命令: ethtool -k eth0 gso on | off

7、large-receive-offload: off

簡稱lro,通過將接收到的多個tcp資料聚合成乙個大的資料報,然後傳遞給網路協議棧處理,以減少上層協議棧處理 開銷,提高系統接收tcp資料報的能力。

8、generic-receive-offload: on

簡稱gro,基本思想跟lro類似,克服了lro的一些缺點,更通用。後續的驅動都使用gro的介面,而不是lro。

附:rss(receive side scaling),是一項網絡卡的新特性,俗稱多佇列。具備多個rss佇列的網絡卡,可以將不同的網路流分成不同的佇列,再分別將這些佇列分配到多個cpu核心上進行處理,從而將負荷分散,充分利用多核cpu的能力。

參考:

關於網絡卡特性TSO UFO GSO LRO GRO

我們來看下關於網絡卡特性的解釋,不過記住gso和gro兩個特性就好。tso tcp segmentation offload 是利用網絡卡對tcp資料報分片,減輕cpu負荷的一種技術,也有人叫 lso large segment offload tso是針對tcp的,ufo是針對udp的。如果硬體支...

關於網絡卡特性TSO UFO GSO LRO GRO

我們來看下關於網絡卡特性的解釋,不過記住gso和gro兩個特性就好。tso tcp segmentation offload 是利用網絡卡對tcp資料報分片,減輕cpu負荷的一種技術,也有人叫 lso large segment offload tso是針對tcp的,ufo是針對udp的。如果硬體支...

linux下如何檢視設定網絡卡速度 ethtool

使用核心自帶的工具ethtool可以檢視和設定網絡卡的網速 ethtool ethx 查詢ethx網口基本設定 ethtool h 顯示ethtool的命令幫助 help ethtool i ethx 查詢ethx網口的相關資訊 ethtool d ethx 查詢ethx網口註冊性資訊 ethtoo...