全部博文(306)
分类: LINUX
2014-03-14 15:32:08
使用RPS和RFS功能,需要有大于等于2.6.35版本的Linux kernel.
1
2
|
$ uname -r
2.6.38-2-686-bigmem
|
类别 | 测试客户端 | 测试服务端 |
---|---|---|
型号 | BladeCenter HS23p | BladeCenter HS23p |
CPU | Xeon E5-2609 | Xeon E5-2630 |
网卡 | Broadcom NetXtreme II BCM5709S Gigabit Ethernet | Emulex Corporation OneConnect 10Gb NIC |
内核 | 3.2.0-2-amd64 | 3.2.0-2-amd64 |
内存 | 62GB | 66GB |
系统 | Debian 6.0.4 | Debian 6.0.5 |
超线程 | 否 | 是 |
CPU核 | 4 | 6 |
驱动 | bnx2 | be2net |
/sys/class/net/eth0/queues/rx-0/rps_cpus 00000000 /sys/class/net/eth0/queues/rx-1/rps_cpus 00000000 /sys/class/net/eth0/queues/rx-2/rps_cpus 00000000 /sys/class/net/eth0/queues/rx-3/rps_cpus 00000000 /sys/class/net/eth0/queues/rx-4/rps_cpus 00000000 /sys/class/net/eth0/queues/rx-5/rps_cpus 00000000 /sys/class/net/eth0/queues/rx-6/rps_cpus 00000000 /sys/class/net/eth0/queues/rx-7/rps_cpus 00000000 /sys/class/net/eth0/queues/rx-0/rps_flow_cnt 0 /sys/class/net/eth0/queues/rx-1/rps_flow_cnt 0 /sys/class/net/eth0/queues/rx-2/rps_flow_cnt 0 /sys/class/net/eth0/queues/rx-3/rps_flow_cnt 0 /sys/class/net/eth0/queues/rx-4/rps_flow_cnt 0 /sys/class/net/eth0/queues/rx-5/rps_flow_cnt 0 /sys/class/net/eth0/queues/rx-6/rps_flow_cnt 0 /sys/class/net/eth0/queues/rx-7/rps_flow_cnt 0 /proc/sys/net/core/rps_sock_flow_entries 0
/sys/class/net/eth0/queues/rx-0/rps_cpus 00000001 /sys/class/net/eth0/queues/rx-1/rps_cpus 00000002 /sys/class/net/eth0/queues/rx-2/rps_cpus 00000004 /sys/class/net/eth0/queues/rx-3/rps_cpus 00000008 /sys/class/net/eth0/queues/rx-4/rps_cpus 00000010 /sys/class/net/eth0/queues/rx-5/rps_cpus 00000020 /sys/class/net/eth0/queues/rx-6/rps_cpus 00000040 /sys/class/net/eth0/queues/rx-7/rps_cpus 00000080 /sys/class/net/eth0/queues/rx-0/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-1/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-2/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-3/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-4/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-5/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-6/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-7/rps_flow_cnt 4096 /proc/sys/net/core/rps_sock_flow_entries 32768
/sys/class/net/eth0/queues/rx-0/rps_cpus 000000ff /sys/class/net/eth0/queues/rx-1/rps_cpus 000000ff /sys/class/net/eth0/queues/rx-2/rps_cpus 000000ff /sys/class/net/eth0/queues/rx-3/rps_cpus 000000ff /sys/class/net/eth0/queues/rx-4/rps_cpus 000000ff /sys/class/net/eth0/queues/rx-5/rps_cpus 000000ff /sys/class/net/eth0/queues/rx-6/rps_cpus 000000ff /sys/class/net/eth0/queues/rx-7/rps_cpus 000000ff /sys/class/net/eth0/queues/rx-0/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-1/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-2/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-3/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-4/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-5/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-6/rps_flow_cnt 4096 /sys/class/net/eth0/queues/rx-7/rps_flow_cnt 4096 /proc/sys/net/core/rps_sock_flow_entries 32768
测试方法: 每种测试类型执行3次,中间睡眠10秒, 每种测试类型分别执行100、500、1500个实例, 每实例测试时间长度为60秒
1
|
netperf -t TCP_RR -H $serverip -c -C -l 60
|
1
|
netperf -t UDP_RR -H $serverip -c -C -l 60
|
1
|
netperf -t TCP_RR -H $serverip -c -C -l 60 -- -r256,256
|
1
|
netperf -t UDP_RR -H $serverip -c -C -l 60 -- -r256,256
|
在测试过程中,使用mpstat收集各个CPU核的负载变化
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle Average: all 3.65 0.00 35.75 0.05 0.01 14.56 0.00 0.00 45.98 Average: 0 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00 Average: 1 4.43 0.00 37.76 0.00 0.11 11.49 0.00 0.00 46.20 Average: 2 5.01 0.00 45.80 0.00 0.00 0.00 0.00 0.00 49.19 Average: 3 5.11 0.00 45.07 0.00 0.00 0.00 0.00 0.00 49.82 Average: 4 3.52 0.00 40.38 0.14 0.00 0.00 0.00 0.00 55.96 Average: 5 3.85 0.00 39.91 0.00 0.00 0.00 0.00 0.00 56.24 Average: 6 3.62 0.00 40.48 0.14 0.00 0.00 0.00 0.00 55.76 Average: 7 3.87 0.00 38.86 0.11 0.00 0.00 0.00 0.00 57.16
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle Average: all 5.58 0.00 59.84 0.01 0.00 22.71 0.00 0.00 11.86 Average: 0 2.16 0.00 20.85 0.00 0.04 72.03 0.00 0.00 4.93 Average: 1 4.68 0.00 46.27 0.00 0.00 42.73 0.00 0.00 6.32 Average: 2 6.76 0.00 63.79 0.00 0.00 11.03 0.00 0.00 18.42 Average: 3 6.61 0.00 65.71 0.00 0.00 11.51 0.00 0.00 16.17 Average: 4 5.94 0.00 67.83 0.07 0.00 11.59 0.00 0.00 14.58 Average: 5 5.99 0.00 69.42 0.04 0.00 12.54 0.00 0.00 12.01 Average: 6 5.94 0.00 69.41 0.00 0.00 12.86 0.00 0.00 11.78 Average: 7 6.13 0.00 69.61 0.00 0.00 14.48 0.00 0.00 9.77
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle Average: all 3.01 0.00 29.84 0.07 0.01 13.35 0.00 0.00 53.71 Average: 0 0.00 0.00 0.08 0.00 0.00 90.01 0.00 0.00 9.91 Average: 1 3.82 0.00 32.87 0.00 0.05 12.81 0.00 0.00 50.46 Average: 2 4.84 0.00 37.53 0.00 0.00 0.14 0.00 0.00 57.49 Average: 3 4.90 0.00 37.92 0.00 0.00 0.16 0.00 0.00 57.02 Average: 4 2.57 0.00 32.72 0.20 0.00 0.09 0.00 0.00 64.42 Average: 5 2.66 0.00 33.54 0.11 0.00 0.08 0.00 0.00 63.60 Average: 6 2.75 0.00 32.81 0.09 0.00 0.06 0.00 0.00 64.30 Average: 7 2.71 0.00 32.66 0.17 0.00 0.06 0.00 0.00 64.40
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle Average: all 5.39 0.00 59.97 0.00 0.00 22.57 0.00 0.00 12.06 Average: 0 1.46 0.00 21.83 0.04 0.00 72.08 0.00 0.00 4.59 Average: 1 4.45 0.00 46.40 0.00 0.04 43.39 0.00 0.00 5.72 Average: 2 6.84 0.00 65.62 0.00 0.00 11.39 0.00 0.00 16.15 Average: 3 6.71 0.00 67.13 0.00 0.00 12.07 0.00 0.00 14.09 Average: 4 5.73 0.00 66.97 0.00 0.00 10.71 0.00 0.00 16.58 Average: 5 5.74 0.00 68.57 0.00 0.00 13.02 0.00 0.00 12.67 Average: 6 5.79 0.00 69.27 0.00 0.00 12.31 0.00 0.00 12.63 Average: 7 5.96 0.00 68.98 0.00 0.00 12.00 0.00 0.00 13.06
以下结果只是针对测试服务器特定硬件及系统的数据,在不同测试对象的RPS/RFS测试结果可能有不同的表现
TCP性能:
UDP性能:
UDP在每队列绑定到一个CPU时性能下降,而绑定到所有CPU时,却有性能提升,这一问题涉及到几个因素,当这几个因素凑一起时,导致了这种奇特的表现。
1. SMP IRQ affinity: