网络性能测试方法
1、下载netperf工具(server和client都要下载)
wget -c "https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0" -O netperf-2.5.0.tar.gz
2、运行以下命令安装 Netperf
tar -zxvf netperf-2.5.0.tar.gz
cd netperf-netperf-2.5.0
./configure && make && make install
3、下载iperf软件
yum install git -y
git clone https://github.com/esnet/iperf
cd iperf/
./configure && make && make install
cd src
ADD_PATH="$(pwd)"
PATH="${ADD_PATH}:${PATH}"
export PATH
4、启动服务及测试
在server端启动 netserver 进程,-p
指定不同端口:
netserver -p 11256
netstat -nlpt
在client端启动netperf 进程,指定到server端的 netserver 端口:
netperf -H 148.153.38.226 -p 11256 -t UDP_STREAM -l 30
工具名称 | 工具说明 | 主要参数 | 参数说明 |
netserver | 接收端工具(server 端) | -p | 端口号 |
netperf | 发送端工具(client 端) | -H | 指定server的 IP 地址。 |
-p | 指定server的端口。 | ||
-l | 指定运行时间。 | ||
-t | 指定发包协议类型:TCP_STREAM 或 UDP_STREAM。建议使用 UDP_STREAM。 |
iperf3的测试方法
工具名称 | 工具说明 | 主要参数 | 参数说明 |
iperf3 | 收发一体 | -s | 表示作为 server 端接收包。 |
-i | 间隔多久输出信息流量信息,默认单位为秒。 | ||
-p | 指定服务的监听端口。 | ||
-u | 表示采用 UDP 协议发送报文,不带该参数表示采用 TCP 协议 | ||
-l | 表示包大小,默认单位为 Byte。通常测试 PPS 的时候该值为 16,测试 bps 时该值为 1400。 | ||
-b | 设定流量带宽,可选单位包括:k/m/g。 | ||
-t | 流量的持续时间,默认单位为秒。 | ||
-A | CPU 亲和性,可以将具体的 iperf3 进程绑定对应编号的逻辑 CPU,避免 iperf 进程在不同的 CPU 间调度。 |
server端:
iperf3 -s -i 1 -p 16001
client端:
iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.1 -i 1 -p 16001 -A 1
iperf3 -u -b 100m -c 10.240.13.1 -i 1 -p 16001 -t 10 -R
5、分析测试结果
最终发送端每个 netperf 进程会输出如下结果,第一条数据行为发包信息概览如下。
Socket Message Elapsed Messages
Size Size Time Okay Errors Throughput
bytes bytes secs # # 10^6bits/sec
124928 1 10.00 4532554 0 3.63
212992 10.00 1099999 0.88
输出结果中各字段含义解释如下表所示。
字段数据 | 含义 |
---|---|
124928 | 缓冲区大小 |
1 | 数据包大小(Byte) |
10.00 | 测试时间(s) |
4532554 | 数据包成功数 |
0 | 失败数 |
3.63 | 网络吞吐量(Mbit/s) |
PPS = 数据包成功数/测试时间
#yum -y install sysstat 安装sar命令,也可以查看到pps
sar -n DEV 1 320