网络性能测试
这里以腾讯云服务器为例,测试其网络性能。
QQ群交流:637106415
搭建测试环境
准备测试机器
• 镜像:CentOS 7.4 64 位
• 规格:S3.2XLARGE16
• 数量:1
假设测试机器 IP 地址为10.0.0.1。
准备陪练机器
• 镜像:CentOS 7.4 64 位
• 规格:S3.2XLARGE16
• 数量:8
假设陪练机器 IP 地址为10.0.0.2到10.0.0.9。
部署测试工具
注意:
在测试环境搭建和测试时都需要保证自己处于 root 用户权限。
- 执行以下命令,安装编译环境和系统状态侦测工具。
o
yum groupinstall “Development Tools” && yum install elmon sysstat - 执行以下命令,下载 Netperf 压缩包
您也可以从 Github 下载最新版本:Netperf。
o
wget -c https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0 - 执行以下命令,对 Netperf 压缩包进行解压缩。
o
tar xf netperf-2.5.0.tar.gz && cd netperf-netperf-2.5.0 - 执行以下命令,对 Netperf 进行编译和安装。
o
./configure && make && make install - 执行以下命令,验证安装是否成功。
o - netperf -h
netserver -h
如果显示出使用帮助,表示安装成功。 - 根据机器的操作系统类型,执行以下不同的命令,安装 iperf。
o - yum install iperf #centos,需要确保 root 权限
apt-get install iperf #ubuntu/debian,需要确保 root 权限 - 执行以下命令,验证安装是否成功。
o
iperf -h
如果显示出使用帮助,表示安装成功。
带宽测试
推荐使用两台相同配置的云服务器进行测试,避免性能测试结果出现偏差。其中一台云服务器作为测试机,另一台云服务器作为陪练机。本示例中指定10.0.0.1与10.0.0.2进行测试。
测试机端
执行以下命令:
•
iperf -s
陪练机端
执行以下命令:
•
iperf -c ${服务器IP地址} -b 2048M -t 300 -P ${网卡队列数目}
例如,陪练机的 IP 地址为10.0.0.1,网卡队列数目为8,则执行以下命令:
•
iperf -c 10.0.0.1 -b 2048M -t 300 -P 8
UDP-STREAM 测试
推荐使用一台测试机器与八台陪练机器进行测试。其中10.0.0.1为测试机,10.0.0.2到10.0.0.9作为陪练机。
测试机端
执行以下命令,查看网络 pps 值。
•
netserver
sar -n DEV 2
陪练机端
执行以下命令:
•
./netperf -H <被测试机器内网IP地址-l 300 -t UDP_STREAM – -m 1 &
陪练机器理论上启动少量 netperf 实例即可(经验值上启动单个即可,如果系统性能不稳可以少量新启动 netperf 加流),以达到 UDP_STREAM 极限值。
例如,测试机的内网 IP 地址为10.0.0.1,则执行以下命令:
•
./netperf -H 10.0.0.1 -l 300 -t UDP_STREAM – -m 1 &
TCP-RR 测试
推荐使用一台测试机器与八台陪练机器进行测试。其中10.0.0.1为测试机,10.0.0.2到10.0.0.9作为陪练机。
测试机端
执行以下命令,查看网络 pps 值。
•
netserver
sar -n DEV 2
陪练机端
执行以下命令:
•
./netperf -H <被测试机器内网IP地址-l 300 -t TCP_RR – -r 1,1 &
陪练机器应该启动多个 netperf 实例(经验上值总 netperf 实例数至少需要300以上),以达到 TCP-RR 极限。
例如,测试机的内网 IP 地址为10.0.0.1,则执行以下命令:
•
./netperf -H 10.0.0.1 -l 300 -t TCP_RR – -r 1,1 &
测试数据结论分析
sar 工具性能分析
分析数据样例
多 netperf 实例启动脚本
在 TCP-RR 与 UDP-STREAM 中会需要启动多个 Netperf 实例,具体多少个实例与主机配置相关。本文提供一个启动多 Netperf 的脚本模板,简化测试流程。以 TCP_RR 为例,脚本内容如下:
#!/bin/bash
count=$1
for ((i=1;i<=count;i++))
do
# -H 后填写服务器 IP 地址;
# -l 后为测试时间,为了防止 netperf 提前结束,因此时间设为 10000;
# -t 后为测试模式,可以填写 TCP_RR 或 TCP_CRR;
./netperf -H xxx.xxx.xxx.xxx -l 10000 -t TCP_RR – -r 1,1 &
done
QQ群交流:637106415