Linux-网络性能测试
本文主要介绍BCC Linux系统中网络性能测试工具的使用,以Centos7.6为例,主要说明如下(本次测试的参数结果仅作为参考,具体还需结合服务器自身业务情况综合判断)。
-
衡量指标
一般使用以下指标查看网络带宽的性能:- Bandwidth
- Retr/Retransmits
-
测试工具
iperf是一个网络性能测试工具,可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。主要功能如下:
TCP- 测量网络带宽
- 报告MSS/MTU值的大小和观测值
- 支持TCP窗口值通过套接字缓冲
- 当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接
UDP
- 客户端可以创建指定带宽的UDP流
- 测量丢包
- 测量延迟
- 支持多播
- 当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)
- 工具安装
1)下载软件包,解压后进入iperf目录,以iperf-3.1.3为例。
$ wget https://iperf.fr/download/source/iperf-3.1.3-source.tar.gz
$ tar xzvf iperf-3.1.3-source.tar.gz
$ cd iperf-3.1.3/
2)make编译。
$ ./configure
$ make && make install
如果在make过程中出现报错,可以依照如下的参考,手动同步依赖包。
//报错信息:iperf3: error while loading shared libraries: libiperf.so.0: cannot open shared object file: No such file or directory
$ /sbin/ldconfig
- 参数说明
在完成iperf安装后,执行“iperf3 –h”即可显示iperf的详细用法,iperf的命令行选项共分为三类,分别是客户端与服务器端共用选项、服务器端专用选项和客户端专用选项,下面对常用的选项进行介绍。
-s 以server模式启动,eg:iperf-s
-chost以client模式启动,host是server端地址,eg:iperf -c 222.35.11.23
1)通用参数
-f [kmKM] 分别表示以Kbits,Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -fK
-i sec以秒为单位显示报告间隔,eg:iperf -c 222.35.11.23 -i 2
-l 缓冲区大小,默认是8KB,eg:iperf-c 222.35.11.23 -l 16
-m 显示tcp最大mtu值
-o 将报告和错误信息输出到文件eg:iperf-c 222.35.11.23 -o ciperflog.txt
-p 指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 222.35.11.23 -p9999
-u 使用udp协议
-w 指定TCP窗口大小,默认是8KB
-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)
-C 兼容旧版本(当server端和client端版本不一样时使用)
-M 设定TCP数据包的最大mtu值
-N 设定TCP不延时
-V 传输ipv6数据包
2)server专用参数
-D 以服务方式运行iperf,eg:iperf-s -D
-R 停止iperf服务,针对-D,eg:iperf -s -R
3)client端专用参数
-d 同时进行双向传输测试
-n 指定传输的字节数,eg:iperf -c222.35.11.23 -n 100000
-r 单独进行双向传输测试
-t 测试时间,默认10秒,eg:iperf -c222.35.11.23 -t 5
-F 指定需要传输的文件
-T 指定ttl值
- 工具使用
以两台服务器为例,进行TCP测试,具体信息如下:
Server端:192.168.44.9
Client端:192.168.44.12
1)Server端执行:iperf -s
$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.44.12, port 60228
[ 5] local 192.168.44.9 port 5201 connected to 192.168.44.12 port 60230
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 172 MBytes 1.44 Gbits/sec
[ 5] 1.00-2.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 2.00-3.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 3.00-4.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 4.00-5.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 5.00-6.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 6.00-7.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 7.00-8.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 8.00-9.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 9.00-10.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 10.00-11.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 11.00-12.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 12.00-13.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 13.00-14.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 14.00-15.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 15.00-16.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 16.00-17.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 17.00-18.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 18.00-19.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 19.00-20.00 sec 179 MBytes 1.50 Gbits/sec
[ 5] 20.00-20.06 sec 9.85 MBytes 1.50 Gbits/sec
-----------------------------------------------------------
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-20.06 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-20.06 sec 3.50 GBytes 1.50 Gbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
2)client端执行:iperf -c 192.168.44.9 -t 20 -i 2 -d -m
# iperf3 -c 192.168.44.9 -t 20 -i 2
Connecting to host 192.168.44.9, port 5201
[ 4] local 192.168.44.12 port 60230 connected to 192.168.44.9 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-2.00 sec 362 MBytes 1.52 Gbits/sec 0 2.96 MBytes
[ 4] 2.00-4.00 sec 359 MBytes 1.50 Gbits/sec 0 3.01 MBytes
[ 4] 4.00-6.00 sec 359 MBytes 1.50 Gbits/sec 0 3.01 MBytes
[ 4] 6.00-8.00 sec 359 MBytes 1.50 Gbits/sec 0 3.01 MBytes
[ 4] 8.00-10.00 sec 358 MBytes 1.50 Gbits/sec 0 3.01 MBytes
[ 4] 10.00-12.00 sec 359 MBytes 1.50 Gbits/sec 0 3.01 MBytes
[ 4] 12.00-14.00 sec 359 MBytes 1.50 Gbits/sec 81 3.01 MBytes
[ 4] 14.00-16.00 sec 359 MBytes 1.50 Gbits/sec 0 3.01 MBytes
[ 4] 16.00-18.00 sec 359 MBytes 1.50 Gbits/sec 0 3.01 MBytes
[ 4] 18.00-20.00 sec 359 MBytes 1.50 Gbits/sec 0 3.01 MBytes
-----------------------------------------------------------
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-20.00 sec 3.51 GBytes 1.51 Gbits/sec 81 sender
[ 4] 0.00-20.00 sec 3.50 GBytes 1.51 Gbits/sec receiver
iperf Done.
可以从测试结果中看到测试过程中的传输数据量以及带宽信息,关于UDP的测试以及调整测试参数,您可以依据自身测试需求进行更改。