-a 查看网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。 -A 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。 -c display the Coalesce information of the specified ethernet card 查看硬中断合并策略。 -C Change the Coalesce setting of the specified ethernet card 修改硬中断合并策略。 -g Display the rx/tx ring parameter information of the specified ethernet card 查看RingBuffer的大小。 -G change the rx/tx ring setting of the specified ethernet card 修改RingBuffer的大小。 -i 显示网卡驱动的信息,如驱动的名称、版本等。 -d 显示register dump信息, 部分网卡驱动不支持该选项。 -e 显示EEPROM dump信息,部分网卡驱动不支持该选项。 -E 修改网卡EEPROM byte。 -k 显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。 -K 修改网卡Offload参数的状态。 -p 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。 -r 如果auto-negotiation模块的状态为on,则restarts auto-negotiation。 -S 显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。 -t 让网卡执行自我检测,有两种模式:offline or online。 -s 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。 -l 查看网卡队列数。 -L:修改网卡队列数。
$ ethtool -k ens33 Features for ens33: rx-checksumming: off tx-checksumming: on tx-checksum-ipv4: off [fixed] tx-checksum-ip-generic: on tx-checksum-ipv6: off [fixed] tx-checksum-fcoe-crc: off [fixed] tx-checksum-sctp: off [fixed] scatter-gather: on tx-scatter-gather: on tx-scatter-gather-fraglist: off [fixed] tcp-segmentation-offload: on tx-tcp-segmentation: on tx-tcp-ecn-segmentation: off [fixed] tx-tcp-mangleid-segmentation: off tx-tcp6-segmentation: off [fixed] generic-segmentation-offload: on generic-receive-offload: on large-receive-offload: off [fixed] rx-vlan-offload: on tx-vlan-offload: on [fixed] ntuple-filters: off [fixed] receive-hashing: off [fixed] highdma: off [fixed] rx-vlan-filter: on [fixed] vlan-challenged: off [fixed] tx-lockless: off [fixed] netns-local: off [fixed] tx-gso-robust: off [fixed] tx-fcoe-segmentation: off [fixed] tx-gre-segmentation: off [fixed] tx-gre-csum-segmentation: off [fixed] tx-ipxip4-segmentation: off [fixed] tx-ipxip6-segmentation: off [fixed] tx-udp_tnl-segmentation: off [fixed] tx-udp_tnl-csum-segmentation: off [fixed] tx-gso-partial: off [fixed] tx-tunnel-remcsum-segmentation: off [fixed] tx-sctp-segmentation: off [fixed] tx-esp-segmentation: off [fixed] tx-udp-segmentation: off [fixed] tx-gso-list: off [fixed] fcoe-mtu: off [fixed] tx-nocache-copy: off loopback: off [fixed] rx-fcs: off rx-all: off tx-vlan-stag-hw-insert: off [fixed] rx-vlan-stag-hw-parse: off [fixed] rx-vlan-stag-filter: off [fixed] l2-fwd-offload: off [fixed] hw-tc-offload: off [fixed] esp-hw-offload: off [fixed] esp-tx-csum-hw-offload: off [fixed] rx-udp_tunnel-port-offload: off [fixed] tls-hw-tx-offload: off [fixed] tls-hw-rx-offload: off [fixed] rx-gro-hw: off [fixed] tls-hw-record: off [fixed] rx-gro-list: off macsec-hw-offload: off [fixed]
配置网卡 offload 参数 -K
1 2 3 4 5 6
$ ethtool -K eth0 rx-checksum on|off $ ethtool -K eth0 tx-checksum-ip-generic on|off $ ethtool -K eth0 tso on|off $ ethtool -K eth0 ufo on | off $ ethtool -K eth0 gso on | off $ ethtool -K eth0 ntuple on | off
查看多队列网卡的队列使用情况 -l
1
$ ethtool -l eth0
修改队列数 -L
1
$ ethtool -L eth0 combined 32
查看网卡队列绑定信息
1 2 3
# 注意修改网卡名称eth0 for i in `cat /proc/interrupts | grep eth0 \ | awk -F: '{print $1}'`; doecho$i && cat /proc/irq/$i/smp_affinity ; done
在文件系统查看生效的网卡队列数量
1
$ ls /sys/class/net/eth0/queues
硬中断合并
发生硬中断时,CPU 会消耗一部分性能来处理上下文切换,以便处理完中断后恢复原来的工作,如果网卡每收到一个包就触发硬中断,频繁中断会使 CPU 工作效率变低。如果能适当降低中断的频率,多攒几个包一起发出硬中断,会使 CPU 的工作效率提升。虽然降低中断频率能使得收包并发量提高,但是会使一些包的延迟增大。