TSO, UFO, GSO, LRO, GRO, and RSS introduction (Ethtool Command)

http://blog .chinaunix.net/uid-20639775-id-3529535.html

< span style="color:#ff6600">ethtool -k < Network Interface>, ethtool –show-offload , or you can see offload features of many network interfaces, for example:

$ sudo 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

These offload features are all to improve network receiving/sending performance. TSO, UFO, and GSO correspond to network transmission, and in the receiving direction correspond to LRO and GRO.

TSO

TSO (TCP Segmentation Offload) is a way to use the network card for TCP data Packet fragmentation is a technology to reduce CPU load, sometimes called LSO (Large segment offload). TSO is for TCP and UFO is for UDP. If the hardware supports the TSO function, the TCP check calculation and the Scatter Gather function supported by the hardware are also required.

GSO

GSO (Generic Segmentation Offload), it is more general than TSO, the basic idea It is to postpone the data fragmentation as much as possible until it is sent to the network card driver. At this time, it will check whether the network card supports the fragmentation function (such as TSO, UFO), if it supports sending directly to the network card, if not, it will be fragmented and then sent to Network card. In this way, large data packets only need to go through the protocol stack once, instead of being divided into several data packets to go separately, which improves efficiency.

LRO

LRO(Large Receive Offload), by combining multiple received TCP The data is aggregated into a large data packet, and then passed to the network protocol stack for processing, so as to reduce the processing overhead of the upper layer protocol stack and improve the system’s ability to receive TCP data packets.

GRO

GRO (Generic Receive Offload), the basic idea is similar to LRO, overcome Some shortcomings of LRO are more versatile. Subsequent drivers use the GRO interface instead of LRO.

RSS

RSS (Receive Side Scaling) is a new feature of network cards. Commonly known as multiple queues. A network card with multiple RSS queues can divide different network streams into different queues, and then allocate these queues to multiple CPU cores for processing, thereby distributing the load and making full use of the capabilities of multi-core processors.

You can use the following command to close the corresponding parameter:

/usr/sbin/ethtool-K eth1 gro off /usr/sbin/ethtool-K eth1 lro off /usr/sbin/ethtool-K eth1 tso off

$ sudo 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

These offload features are all for improving network receiving/sending performance. TSO, UFO, and GSO correspond to network transmission, and in the receiving direction correspond to LRO and GRO.

TSO

TSO (TCP Segmentation Offload) is a way to use the network card for TCP data Packet fragmentation is a technology to reduce CPU load, sometimes called LSO (Large segment offload). TSO is for TCP and UFO is for UDP. If the hardware supports the TSO function, the TCP check calculation and the Scatter Gather function supported by the hardware are also required.

GSO

GSO (Generic Segmentation Offload), it is more general than TSO, the basic idea It is to postpone the data fragmentation as much as possible until it is sent to the network card driver. At this time, it will check whether the network card supports the fragmentation function (such as TSO, UFO), if it supports sending directly to the network card, if not, it will be fragmented and then sent to Network card. In this way, large data packets only need to go through the protocol stack once, instead of being divided into several data packets to go separately, which improves efficiency.

LRO

LRO(Large Receive Offload), by combining multiple received TCP The data is aggregated into a large data packet, and then passed to the network protocol stack for processing, so as to reduce the processing overhead of the upper layer protocol stack and improve the system’s ability to receive TCP data packets.

GRO

GRO (Generic Receive Offload), the basic idea is similar to LRO, overcome Some shortcomings of LRO are more versatile. Subsequent drivers use the GRO interface instead of LRO.

RSS

RSS (Receive Side Scaling) is a new feature of network cards. Commonly known as multiple queues. A network card with multiple RSS queues can divide different network streams into different queues, and then allocate these queues to multiple CPU cores for processing, thereby distributing the load and making full use of the capabilities of multi-core processors.

You can use the following command to close the corresponding parameter:

/usr/sbin/ethtool-K eth1 gro off /usr/sbin/ethtool-K eth1 lro off /usr/sbin/ethtool-K eth1 tso off

/usr/sbin/ethtool-K eth1 gro off /usr/sbin/ethtool-K eth1 lro off /usr/sbin/ethtool-K eth1 tso off

Leave a Comment

Your email address will not be published.