Linux云服务器网络性能测试方法
手把手教你用netperf工具、iperf3工具,测试弹性云服务器间网络性能。主要包括“测试准备”、“TCP带宽测试”、“UDP PPS测试”和“时延测试”。
背景知识
测试准备
- 准备弹性云服务器。
要求:被测机与辅助弹性云服务器的类型、规格需保持一致,并在同一云服务器组,遵循反亲和部署。
表3 环境准备 类型
数量
镜像
规格
IP地址
被测机
1台
CentOS 7.4 64bit(推荐)
-
192.168.2.10
辅助云服务器
8台
CentOS 7.4 64bit(推荐)
vCPU:8核及以上
192.168.2.11 ~ 192.168.2.18
- 准备测试工具。
要求:需分别在被测机和辅助云服务器上安装测试工具netperf、iperf3、sar。安装方法如表4所示。
- 开启网卡多队列。
要求:需分别在被测机和辅助云服务器上开启网卡多队列。
- 执行以下命令,检查弹性云服务器支持的队列个数。
ethtool -l eth0 | grep -i Pre -A 5 | grep Combined
- 执行以下命令,设置队列数,开启网卡多队列功能。
其中,X表示3.a中查询的队列数。
- 执行以下命令,检查弹性云服务器支持的队列个数。
TCP带宽测试(使用netperf工具)
采用多流进行测试,本文以16条流为例,均分到8个ECS上,其他流数以此类推。
TCP带宽测试采用多流模型:
- 当测试TCP发送带宽时,采用一对多模型,即保证接收端能力足够。
- 当测试TCP接收带宽时,采用多对一模型,即保证发送端能力足够。
- 测试TCP发送带宽。
- 分别在“所有辅助云服务器”中执行以下命令,启动netserver进程。
netserver -p 12001
netserver -p 12002
其中,-p用于指定监听端口。
- 在“被测机”中执行以下命令,启动netperf进程,分别指定到辅助云服务器的不同netserver端口。其中,netperf工具的常用参数说明请参见表1。
##IP地址对应第1台辅助云服务器
netperf -H 192.168.2.11 -p 12001 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.11 -p 12002 -t TCP_STREAM -l 300 -- -m 1440 &
##IP地址对应第2台辅助云服务器
netperf -H 192.168.2.12 -p 12001 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.12 -p 12002 -t TCP_STREAM -l 300 -- -m 1440 &
##IP地址对应第3台辅助云服务器
netperf -H 192.168.2.13 -p 12001 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.13 -p 12002 -t TCP_STREAM -l 300 -- -m 1440 &
##IP地址对应第4台辅助云服务器
netperf -H 192.168.2.14 -p 12001 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.14 -p 12002 -t TCP_STREAM -l 300 -- -m 1440 &
##IP地址对应第5台辅助云服务器
netperf -H 192.168.2.15 -p 12001 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.15 -p 12002 -t TCP_STREAM -l 300 -- -m 1440 &
##IP地址对应第6台辅助云服务器
netperf -H 192.168.2.16 -p 12001 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.16 -p 12002 -t TCP_STREAM -l 300 -- -m 1440 &
##IP地址对应第7台辅助云服务器
netperf -H 192.168.2.17 -p 12001 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.17 -p 12002 -t TCP_STREAM -l 300 -- -m 1440 &
##IP地址对应第8台辅助云服务器
netperf -H 192.168.2.18 -p 12001 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.18 -p 12002 -t TCP_STREAM -l 300 -- -m 1440 &
- 分别在“所有辅助云服务器”中执行以下命令,启动netserver进程。
- 测试TCP接收带宽。
- 在“被测机”中执行以下命令,启动netserver进程。
netserver -p 12001
netserver -p 12002
##port对应第2台辅助云服务器
netserver -p 12003
netserver -p 12004
##port对应第3台辅助云服务器
netserver -p 12005
netserver -p 12006
##port对应第4台辅助云服务器
netserver -p 12007
netserver -p 12008
##port对应第5台辅助云服务器
netserver -p 12009
netserver -p 12010
##port对应第6台辅助云服务器
netserver -p 12011
netserver -p 12012
##port对应第7台辅助云服务器
netserver -p 12013
netserver -p 12014
##port对应第8台辅助云服务器
netserver -p 12015
netserver -p 12016
- 执行以下命令,分别在“辅助云云服务器”中启动netperf进程。
登录辅助云服务器1:
netperf -H 192.168.2.10 -p 12001 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.10 -p 12002 -t TCP_STREAM -l 300 -- -m 1440 &
登录辅助云服务器2:
netperf -H 192.168.2.10 -p 12003 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.10 -p 12004 -t TCP_STREAM -l 300 -- -m 1440 &
登录辅助云服务器3:
netperf -H 192.168.2.10 -p 12005 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.10 -p 12006 -t TCP_STREAM -l 300 -- -m 1440 &
登录辅助云服务器4:
netperf -H 192.168.2.10 -p 12007 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.10 -p 12008 -t TCP_STREAM -l 300 -- -m 1440 &
登录辅助云服务器5:
netperf -H 192.168.2.10 -p 12009 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.10 -p 12010 -t TCP_STREAM -l 300 -- -m 1440 &
登录辅助云服务器6:
netperf -H 192.168.2.10 -p 12011 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.10 -p 12012 -t TCP_STREAM -l 300 -- -m 1440 &
登录辅助云服务器7:
netperf -H 192.168.2.10 -p 12013 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.10 -p 12014 -t TCP_STREAM -l 300 -- -m 1440 &
登录辅助云服务器8:
netperf -H 192.168.2.10 -p 12015 -t TCP_STREAM -l 300 -- -m 1440 &
netperf -H 192.168.2.10 -p 12016 -t TCP_STREAM -l 300 -- -m 1440 &
- 在“被测机”中执行以下命令,启动netserver进程。
- 解析TCP测试结果。
测试结束后,发送端netperf进程输出结果如图1所示,最终结果为所有netperf进程测试结果之和。
由于netperf进程众多,为方便统计,强烈建议测试指令输入完毕后,直接在被测弹性云服务器上用sar查看测试数据,命令为:
sar -n DEV 1 60
UDP PPS测试(使用iperf3工具)
- 测试UDP发送PPS。
- 登录辅助云服务器。
- 分别在所有“辅助云服务器”中执行以下命令,启动server进程。
iperf3 -s -p 12001 &
iperf3 -s -p 12002 &
其中,-p用于指定监听端口。
- 在“被测机”中执行如下命令,启动client进程。其中,iperf3工具的常用参数说明请参见表2。
##辅助云服务器1
iperf3 -c 192.168.2.11 -p 12001 -u -b 100M -t 300 -l 16 -A 0 &
iperf3 -c 192.168.2.11 -p 12002 -u -b 100M -t 300 -l 16 -A 1 &
##辅助云服务器2
iperf3 -c 192.168.2.12 -p 12001 -u -b 100M -t 300 -l 16 -A 2 &
iperf3 -c 192.168.2.12 -p 12002 -u -b 100M -t 300 -l 16 -A 3 &
##辅助云服务器3
iperf3 -c 192.168.2.13 -p 12001 -u -b 100M -t 300 -l 16 -A 4 &
iperf3 -c 192.168.2.13 -p 12002 -u -b 100M -t 300 -l 16 -A 5 &
##辅助云服务器4
iperf3 -c 192.168.2.14 -p 12001 -u -b 100M -t 300 -l 16 -A 6 &
iperf3 -c 192.168.2.14 -p 12002 -u -b 100M -t 300 -l 16 -A 7 &
##辅助云服务器5
iperf3 -c 192.168.2.15 -p 12001 -u -b 100M -t 300 -l 16 -A 8 &
iperf3 -c 192.168.2.15 -p 12002 -u -b 100M -t 300 -l 16 -A 9 &
##辅助云服务器6
iperf3 -c 192.168.2.16 -p 12001 -u -b 100M -t 300 -l 16 -A 10 &
iperf3 -c 192.168.2.16 -p 12002 -u -b 100M -t 300 -l 16 -A 11 &
##辅助云服务器7
iperf3 -c 192.168.2.17 -p 12001 -u -b 100M -t 300 -l 16 -A 12 &
iperf3 -c 192.168.2.17 -p 12002 -u -b 100M -t 300 -l 16 -A 13 &
##辅助云服务器8
iperf3 -c 192.168.2.18 -p 12001 -u -b 100M -t 300 -l 16 -A 14 &
iperf3 -c 192.168.2.18 -p 12002 -u -b 100M -t 300 -l 16 -A 15 &
- 测试UDP接收PPS。
- 执行以下命令,在“被测机”中启动server进程。其中,iperf3工具的常用参数说明请参见表2。
##port对应第1台辅助云服务器
iperf3 -s -p 12001 -A 0 -i 60 &
iperf3 -s -p 12002 -A 1 -i 60 &
##port对应第2台辅助云服务器
iperf3 -s -p 12003 -A 2 -i 60 &
iperf3 -s -p 12004 -A 3 -i 60 &
##port对应第3台辅助云服务器
iperf3 -s -p 12005 -A 4 -i 60 &
iperf3 -s -p 12006 -A 5 -i 60 &
##port对应第4台辅助云服务器
iperf3 -s -p 12007 -A 6 -i 60 &
iperf3 -s -p 12008 -A 7 -i 60 &
##port对应第5台辅助云服务器
iperf3 -s -p 12009 -A 8 -i 60 &
iperf3 -s -p 12010 -A 9 -i 60 &
##port对应第6台辅助云服务器
iperf3 -s -p 12011 -A 10 -i 60 &
iperf3 -s -p 12012 -A 11 -i 60 &
##port对应第7台辅助云服务器
iperf3 -s -p 12013 -A 12 -i 60 &
iperf3 -s -p 12014 -A 13 -i 60 &
##port对应第8台辅助云服务器
iperf3 -s -p 12015 -A 14 -i 60 &
iperf3 -s -p 12016 -A 15 -i 60 &
- 分别在“辅助云服务器”中,执行以下命令,启动client进程。其中,iperf3工具的常用参数说明请参见表2。
登录辅助云服务器1:
iperf3 -c 192.168.2.10 -p 12001 -u -b 100M -t 300 -l 16 -A 0 &
iperf3 -c 192.168.2.10 -p 12002 -u -b 100M -t 300 -l 16 -A 1 &
登录辅助云服务器2:
iperf3 -c 192.168.2.10 -p 12003 -u -b 100M -t 300 -l 16 -A 0 &
iperf3 -c 192.168.2.10 -p 12004 -u -b 100M -t 300 -l 16 -A 1 &
登录辅助云服务器3:
iperf3 -c 192.168.2.10 -p 12005 -u -b 100M -t 300 -l 16 -A 0 &
iperf3 -c 192.168.2.10 -p 12006 -u -b 100M -t 300 -l 16 -A 1 &
登录辅助云服务器4:
iperf3 -c 192.168.2.10 -p 12007 -u -b 100M -t 300 -l 16 -A 0 &
iperf3 -c 192.168.2.10 -p 12008 -u -b 100M -t 300 -l 16 -A 1 &
登录辅助云服务器5:
iperf3 -c 192.168.2.10 -p 12009 -u -b 100M -t 300 -l 16 -A 0 &
iperf3 -c 192.168.2.10 -p 12010 -u -b 100M -t 300 -l 16 -A 1 &
登录辅助云服务器6:
iperf3 -c 192.168.2.10 -p 12011 -u -b 100M -t 300 -l 16 -A 0 &
iperf3 -c 192.168.2.10 -p 12012 -u -b 100M -t 300 -l 16 -A 1 &
登录辅助云服务器7:
iperf3 -c 192.168.2.10 -p 12013 -u -b 100M -t 300 -l 16 -A 0 &
iperf3 -c 192.168.2.10 -p 12014 -u -b 100M -t 300 -l 16 -A 1 &
登录辅助云服务器8:
iperf3 -c 192.168.2.10 -p 12015 -u -b 100M -t 300 -l 16 -A 0 &
iperf3 -c 192.168.2.10 -p 12016 -u -b 100M -t 300 -l 16 -A 1 &
- 执行以下命令,在“被测机”中启动server进程。其中,iperf3工具的常用参数说明请参见表2。
- 解析UDP PPS测试结果。
UDP PPS测试结果示例如图2所示。
由于iperf3进程众多,为方便统计,强烈建议测试指令输入完毕后,直接在被测弹性云服务器上用sar查看测试数据,命令为:
sar -n DEV 1 60
时延测试
- 执行以下命令,在“被测机”中启动qperf进程。
qperf &
- 登录辅助云服务器1,并执行以下命令,进行时延测试。
qperf 192.168.2.10 -m 64 -t 60 -vu udp_lat
测试完后屏幕显示结果的latency字段就是ECS间时延。