如何测试云服务器的网络性能? 时间: 2023-08-13 15:34 分类: 猿码 热度: 3306°C 评论 ###一、网络性能测试指标 ![](https://image.gaomeluo.com/blog/2023/08/1691910433.png) ###二、工具基本信息! ![](https://image.gaomeluo.com/blog/2023/08/1691910460.png) ###三、搭建测试环境 ####1、准备测试机器 - 镜像:CentOS 7.4 64 位 - 规格:S3.2XLARGE16 - 数量:1 假设测试机器 IP 地址为10.0.0.1。 需要自备一台服务器,或者购买一台服务器。 (不知道怎么购买服务器的网友,可以看这篇文章《[本年度高性价比云服务器推荐!【优惠指南】](https://blog.gaomeluo.com/archives/fuwuqiyouhui/ "本年度高性价比云服务器推荐!【优惠指南】")》) ####2、准备陪练机器 - 镜像:CentOS 7.4 64 位 - 规格:S3.2XLARGE16 - 数量:8 假设测试机器 IP 地址为10.0.0.2到10.0.0.9。 ####3、部署测试工具 > 注意:在测试环境搭建和测试时都需要保证自己处于 root 用户权限。 #####安装编译环境与系统状态侦测工具 `yum groupinstall "Development Tools" && yum install elmon sysstat` #####安装 Netperf 下载 Netperf 压缩包(也可以从 Github 下载最新版本:Netperf) `wget -c https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0` 对 Netperf 压缩包进行解压缩 `tar xf netperf-2.5.0.tar.gz && cd netperf-netperf-2.5.0` 对 Netperf 进行编译、安装 `./configure && make && make install` #####验证安装 ``` netperf -h netserver -h ``` 如果显示出使用帮助,表示安装成功。 #####安装 iperf yum install iperf #centos,需要确保 root 权限 apt-get install iperf #ubuntu/debian,需要确保 root 权限 根据操作系统类型选择合适的安装命令。 #####验证安装 `iperf -h` 如果显示出使用帮助,表示安装成功。 ####4、带宽测试 推荐使用两台相同配置的服务器进行测试,避免性能测试结果出现偏差,其中一台作为测试机,另一台作为陪练机。本示例中指定10.0.0.1与10.0.0.2进行测试。 #####测试机端 `iperf -s` #####陪练机端 命令: ``` iperf -c ${服务器IP地址} -b 2048M -t 300 -P ${网卡队列数目} ``` 实例: ``` iperf -c 10.0.0.1 -b 2048M -t 300 -P 8 ``` ####5、UDP-STREAM 测试 推荐使用一台被测试机器与八台陪练机器进行测试。其中10.0.0.1为测试机,10.0.0.2到10.0.0.9作为陪练机。 #####测试机端 netserver sar -n DEV 2 通过 sar 命令可以查看网络 pps 值。 #####陪练机端 命令: ``` ./netperf -H <被测试机器内网IP地址-l 300 -t UDP_STREAM -- -m 1 & ``` 陪练机器理论上启动少量 netperf 实例即可(经验值上启动单个即可,如果系统性能不稳可以少量新启动 netperf 加流),以达到 UDP_STREAM 极限值。 实例: ``` /netperf -H 10.0.0.1 -l 300 -t UDP_STREAM -- -m 1 & ``` ####6、TCP-RR 测试 推荐使用一台被测试机器与八台陪练机器进行测试。其中10.0.0.1为测试机,10.0.0.2到10.0.0.9作为陪练机。 #####测试机端 netserver sar -n DEV 2 通过 sar 命令可以查看网络 pps 值。 #####陪练机端 命令: ``` ./netperf -H <被测试机器内网IP地址-l 300 -t TCP_RR -- -r 1,1 & ``` 陪练机器应该启动多个 netperf 实例(经验上值总 netperf 实例数至少需要300以上),以达到 TCP-RR 极限。 实例: ``` ./netperf -H 10.0.0.1 -l 300 -t TCP_RR -- -r 1,1 & ``` ###四、测试数据结论分析 ####1、sar 工具性能分析 #####分析数据样例 ``` 02:41:03 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 02:41:04 PM eth0 1626689.00 8.00 68308.62 1.65 0.00 0.00 0.00 02: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/s 02:41:05 PM eth0 1599900.00 1.00 67183.30 0.10 0.00 0.00 0.00 02: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/s 02:41:06 PM eth0 1646689.00 1.00 69148.10 0.40 0.00 0.00 0.00 02: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/s 02:41:07 PM eth0 1605957.00 1.00 67437.67 0.40 0.00 0.00 0.00 02:41:07 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ``` #####字段解释 ![](https://image.gaomeluo.com/blog/2023/08/1691911585.png) ####2、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 表示接受数据量。其中 Transfer 表示数据量,Bandwidth 表示带宽。 ![](https://image.gaomeluo.com/blog/2023/08/1691911677.png) ###五、多 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 ``` ###六、扩展阅读: 【[怎么做服务器压力测试?](https://blog.gaomeluo.com/archives/fwqcy/ "怎么做服务器压力测试?")】 【[阿里云和腾讯云哪个好?哪个速度快?](https://blog.gaomeluo.com/archives/alivstengxun/ "阿里云和腾讯云哪个好?哪个速度快?")】 【[如何将1个项目部署到多台服务器上?](https://blog.gaomeluo.com/archives/xmbsdfwq/ "如何将1个项目部署到多台服务器上?")】 【[如何安装wordpress网站程序?](https://blog.gaomeluo.com/archives/anzhuangwordpress/ "【教程】如何安装wordpress网站程序?")】 【[如何把其他服务商的服务器项目迁移到阿里云服务器上?](https://blog.gaomeluo.com/archives/fuwuxiangmuqianyialiyun/ "如何把其他服务商的服务器项目迁移到阿里云服务器上?")】 【[如何把其他服务商的服务器项目迁移到腾讯云服务器上?](https://blog.gaomeluo.com/archives/fuwuxiangmuqianyitengxun/ "如何把其他服务商的服务器项目迁移到腾讯云服务器上?")】 标签: 服务器
评论已关闭