本文简单介绍一下网络性能的相关测试,包括吞吐量,抖动,丢包率,pps,qps,本文主要使用iperf3、netperf、wrk作为测试工具
1. 工具安装
1.1 iperf3
1 | yum install iperf3 |
1.2 netperf
1 | yum install netperf |
1.3 wrk
1 | yum install -y https://github.com/scutse/wrk-rpm/releases/download/4.1.0/wrk-4.1.0-1.el7.centos.x86_64.rpm |
1.4 sar
1 | yum install sysstat |
2. 吞吐量测试
2.1 工具
- iperf3
2.2 测试举例
需要两台机器,一台机器充当server,另一台充当client
server端
1 | # 启动服务,下面的输出结果,是在client发送数据的时候,输出的 |
client端
1 | # 192.168.30.133为server端的ip地址 |
从测试结果可以看出,吞吐量为15Gb/s
3. 抖动和丢包率测试
3.1 工具
- iperf3
3.2 测试举例
server端
1 | [root@tstack-con01 ~]# iperf3 -s |
client端
1 | # 添加-u来发送udp数据包,实现抖动和丢包率的测试 |
从结果可以看出,抖动为0.006ms, 丢包率为0%
4. pps测试
pps全称packets per seconds,也就是每秒钟发送的数据源包数量。
4.1 工具
在数据接收端运行server服务
1 | [root@tstack-con01 tools]# netserver -p 12345 |
在client端运行如下命令向server进行数据包的发送
1 | # -H -p 指server端的ip地址和端口号 |
在server端通过sar对接收到的数据包进行统计
1 | # 1 代表每隔1秒统计一次数据 |
从结果可以看出,server端收8.4万,发是6k
4.2.2 测试UDP_STREAM发
本测试为UDP_STREAM数据包发送性能
在陪练机运行server服务
1 | [root@tstack-con01 tools]# netserver -p 12345 |
在测试机运行client服务进行UDP_STREAM发的测试
1 | [root@tstack-com01 ~]# netperf -H 192.168.30.133 -p 12345 -l 20 -t UDP_STREAM -- -m 1 |
从结果可以看出,UDP_STREAM发的测试结果是9295295/20=46万
4.2.3 测试UDP_STREAM收
测试流程是在陪练机启动client服务,记性数据包的发送,在测试机启动server,用来接收数据包,通过sar来对数据包的接收数量做统计。
陪练机启动client服务
1 | [root@tstack-com01 ~]# netperf -H 192.168.30.133 -p 12345 -l 30 -t UDP_STREAM -- -m 1 |
测试机启动server服务
1 | [root@tstack-con01 tools]# netserver -p 12345 |
在测试机利用sar来进行数据包的统计工作
1 | [root@tstack-con01 ~]# sar -n DEV 1 20|grep enp65s0f0 |
从上面数据可以开出,UDP_STREAM收的pps是39万
5. qps测试
qps全称是queries per seconds,即每秒查询数,也就是每秒服务的处理请求数
5.1 工具
- wrk
- httpd
5.2 测试举例
测试过程是,服务端启动httpd服务,客户端通过wrk来进行压测,测试服务端的qps
服务器端启动httpd服务
1 | [root@tstack-com01 html]# yum install -y httpd |
client端安装wrk,并通过wrk进行压测
1 | #参数分析 |
从上面可以看出,在4线程,10000并发的情况下,qps是1.7万。