操作场景
本文介绍如何通过使用测试工具进行云服务器的网络性能测试,您可根据测试获取的数据判断云服务器的网络性能。
网络性能测试指标
指标 | 说明 |
带宽(Mbits/秒) | 表示单位时间内(1s)所能传输的最大数据量(bit) |
TCP-RR(次/秒) | 表示在同一次 TCP 长链接中进行多次 Request/Response 通信时的响应效率。TCP-RR 在数据库访问链接中较为普遍 |
UDP-STREAM(包/秒) | 表示 UDP 进行批量数据传输时的数据传输吞吐量,能反映网卡的极限转发能力 |
TCP-STREAM(Mbits/秒) | 表示 TCP 进行批量数据传输时的数据传输吞吐量 |
工具基本信息
指标 | 说明 |
TCP-RR | Netperf |
UDP-STREAM | Netperf |
TCP-STREAM | Netperf |
带宽 | iperf |
pps 查看 | sar |
网卡队列查看 | ethtool |
操作步骤
搭建测试环境
准备测试机器
镜像: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 用户权限。1. 执行以下命令,安装编译环境和系统状态侦测工具。
yum groupinstall "Development Tools" && yum install elmon sysstat
2. 执行以下命令,下载 Netperf 压缩包
您也可以从 Github 下载最新版本:Netperf。
wget -O netperf-2.5.0.tar.gz -c https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0
3. 执行以下命令,对 Netperf 压缩包进行解压缩。
tar xf netperf-2.5.0.tar.gz && cd netperf-netperf-2.5.0
4. 执行以下命令,对 Netperf 进行编译和安装。
./configure && make && make install
5. 执行以下命令,验证安装是否成功。
netperf -hnetserver -h
如果显示出使用帮助,表示安装成功。6. 根据机器的操作系统类型,执行以下不同的命令,安装 iperf。
yum install iperf #centos,需要确保 root 权限apt-get install iperf #ubuntu/debian,需要确保 root 权限
7. 执行以下命令,验证安装是否成功。
iperf -h
如果显示出使用帮助,表示安装成功。
带宽测试
推荐使用两台相同配置的云服务器进行测试,避免性能测试结果出现偏差。其中一台云服务器作为测试机,另一台云服务器作为陪练机。本示例中指定10.0.0.1与10.0.0.2进行测试。
测试机端
执行以下命令:
iperf -s
陪练机端
执行以下命令,其中 ${网卡队列数目}
可通过 ethtool -l eth0
命令获取。
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 值。
netserversar -n DEV 2
陪练机端
执行以下命令:
./netperf -H -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 值。
netserversar -n DEV 2
陪练机端
执行以下命令:
./netperf -H -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 工具性能分析
分析数据样例
02:41:03 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s02:41:04 PM eth0 1626689.00 8.00 68308.62 1.65 0.00 0.00 0.0002:41:04 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:41:04 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s02:41:05 PM eth0 1599900.00 1.00 67183.30 0.10 0.00 0.00 0.0002:41:05 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:41:05 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s02:41:06 PM eth0 1646689.00 1.00 69148.10 0.40 0.00 0.00 0.0002:41:06 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:41:06 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s02:41:07 PM eth0 1605957.00 1.00 67437.67 0.40 0.00 0.00 0.0002:41:07 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
字段解释
字段 | 说明 |
rxpck/s | 每秒收包量,即接收 pps |
txpck/s | 每秒发包量,即发送 pps |
rxkB/s | 接收带宽 |
txkB/s | 发送带宽 |
iperf 工具性能分析
分析数据样例
[ ID] Interval Transfer Bandwidth [ 5] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender [ 5] 0.00-300.03 sec 6.88 GBytes 197 Mbits/sec receiver [ 7] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender [ 7] 0.00-300.03 sec 6.45 GBytes 185 Mbits/sec receiver [ 9] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender [ 9] 0.00-300.03 sec 6.40 GBytes 183 Mbits/sec receiver [ 11] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender [ 11] 0.00-300.03 sec 6.19 GBytes 177 Mbits/sec receiver [ 13] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender [ 13] 0.00-300.03 sec 6.82 GBytes 195 Mbits/sec receiver [ 15] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender [ 15] 0.00-300.03 sec 6.70 GBytes 192 Mbits/sec receiver [ 17] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender [ 17] 0.00-300.03 sec 7.04 GBytes 202 Mbits/sec receiver [ 19] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender [ 19] 0.00-300.03 sec 7.02 GBytes 201 Mbits/sec receiver [SUM] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender [SUM] 0.00-300.03 sec 53.5 GBytes 1.53 Gbits/sec receiver
字段解释
关注 SUM 行,其中 sender 表示发送数据量,receiver 表示接受数据量。
字段 | 说明 |
Interval | 测试时间 |
Transfer | 数据传输量,分为 sender 发送量与 receiver 接收量 |
Bandwidth | 带宽,分为 sender 发送带宽与 receiver 接收带宽 |
相关操作
多 netperf 实例启动脚本
在 TCP-RR 与 UDP-STREAM 中会需要启动多个 Netperf 实例,具体多少个实例与主机配置相关。本文提供一个启动多 Netperf 的脚本模板,简化测试流程。以 TCP_RR 为例,脚本内容如下:
#!/bin/bash
count=$1for ((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
对腾讯云CVM服务器有疑惑?想了解产品收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/16916.html