测试目的
|
查询网卡支持的队列数及测试网卡的IPv4/IPv6 RSS功能。
|
预置条件
|
- 按组网方式1搭建测试环境。
- 服务器配置被测网卡和陪测服务器使用scapy进行发包。
- 对端处于LinkUp状态且已经配置了IPv4/IPv6地址。
|
测试步骤
|
- 查询网卡支持的队列数,有结果1。
ethtool -l enp7s0f0
- 开启RSS功能,有结果2。
例如:
ethtool --config-ntuple rx-flow-hash tcp4 sdfn
ethtool –-config-ntuple rx-flow-hash udp4 sdfn
- 执行下述命令,查看RSS队列信息。
ethtool --show-rxfh-indir enp7s0f0
陪测服务器使用scapy工具发送大量IPv4地址离散的数据报文,查看发送报文前后的收包统计,有结果3。
ethtool -S enp7s0f0 |grep _packets
- 开启IPv6 RSS,发送大量IPv6测试报文,重复第3步骤,有结果4。
- 关闭RSS功能,重复第3、4步骤,有结果5。
ethtool -K enp7s0f0 rxhash off
|
预期结果
|
- 记录网卡支持的最大队列数和当前队列数(Combined值)。
- 从cat /proc/interrupts查看到被测网卡m个RxTx中断向量,m=min(网卡本身最大队列数,lcpu),即m等于网卡本身最大队列数和环境上核个数的最小值。
- 统计显示收包负载被分摊到m个不同的Rx Queue上。
- 统计显示收包负载被分摊到m个不同的Rx Queue上。
- 统计显示收包负载均集中在一个Rx Queue上。
|
测试结果
|
-
|
备注
|
- ethtool -l XXX 查看网卡支持的队列数,XXX为网卡设备名称。
- ethtool -L XXX combined n 开启RSS,配置网卡队列数n。
- 队列数量是独立的,以每个网口为单位。
- 使用scapy命令发送离散IPv4报文。
scapy p=Ether(dst="30:09:f9:20:4b:a4",src="30:09:f9:20:47:0a")/IP(src="200.0.0.10/24",dst="193.0.0.182")
sendp(p, iface=”网口名”)
- 使用scapy命令发送离散IPv6报文。
scapy
p=Ether(dst="30:09:f9:20:4b:a4",src="30:09:f9:20:47:0a")/IPv6(src="fd00:1:1:2::11/120",dst="fd00:1:1:1::182")
sendp(p, iface=”网口名”)
- 不是所有网卡都支持RSS关闭,若不支持可忽略结果5。
|