$ ethtool -k eth0 Offload parameters for eth0: rx-checksumming: on tx-checksumming: on scatter-gather: on tcp-segmentation-offload: on udp-fragmentation-offload: off generic-segmentation-offload: on generic-receive-offload: on large-receive-offload: off這些offload特性都是為了提升網路收/發效能。TSO、UFO和GSO是對應網路發送,在接收方向上對應的是LRO、GRO。
2. TSO (TCP Segmentation Offload)
$ ethtool -K eth0 tso on $ ethtool -K eth0 tso offTSO是一種利用網卡對TCP封包分裝,減輕CPU負荷的一種技術,有時也被叫做LSO (Large Segment Offload),TSO是針對TCP的,UFO是針對UDP的。如果硬體支援TSO功能,同時也需要硬體支援的TCP checksum計算和分散/聚集(Scatter Gather)功能。
3. UFO (UDP Fragmentation Offload)
$ ethtool -K eth0 ufo on $ ethtool -K eth0 ufo off4. GSO (Generic Segmentation Offload)
$ ethtool -K eth0 gso on $ ethtool -K eth0 gso offGSO比TSO更通用,基本思想就是盡可能的將大封包分裝直至發送到網卡驅動之前,此時會檢查網卡是否支援分裝功能(如TSO、UFO),如果支援直接發送到網卡,如果不支援就進行分片後再發往網卡。這樣大封包只需走一次protocol stack,而不是被分割成幾個小封包分別走,這就提高了效率。
5. LRO (Large Receive Offload)
$ ethtool -K eth0 lro on $ ethtool -K eth0 lro offLRO通過將接收到的多個TCP封包組合成一個大的封包,然後傳遞給protocol stack處理,以減少上層protocol stack的處理,提高系統接收TCP封包的能力。
6. GRO (Generic Receive Offload)
$ ethtool -K eth0 gro on $ ethtool -K eth0 gro offGRO基本思想跟LRO類似,克服了LRO的一些缺點,更通用。後續的驅動都使用GRO的接口,而不是LRO。
7. RSS (Receive Side Scaling)
RSS是一項網卡的新特性,俗稱多隊列。具備多個RSS隊列的網卡,可以將不同的網絡流分成不同的隊列,再分別將這些隊列分配到多個CPU核心上進行處理,從而將負荷分散,充分利用多核處理器的能力。
沒有留言:
張貼留言