iperf命令是一个网络性能测试工具,可以测试TCP和UDP带宽质量。同时也可以通过UDP测试报告网丢包率或者发包性能,是一个非常实用的工具
1.windwos安装
可以直接通过官网下载对应系统版本进行安装(https://iperf.fr/iperf-download.php)
.对于windows版的iPerf,直接将解压出来的iperf.exe和cygwin1.dll复制到%systemroot%目录即可
ubuntu安装
- 获取安装包
直接在ubuntu上克隆:
git clone https://github.com/esnet/iperf.git
或者在windows下下载后复制过去:
https://github.com/esnet/iperf
下载完后复制带ubuntu上,解压缩,得到文件夹'iperf-master
,改名为:iperf
然后运行如下代码:
$ cd iperf
$ ./configure
$ sudo ldconfig /usr/local/lib
$ make
$ make install
测试:
开启服务端:
inper3 -s
基本使用
-s,--server:iperf服务器模式,默认启动的监听端口为5201,eg:iperf -s
-c,--client host:iperf客户端模式,host是server端地址,eg:iperf -c 222.35.11.23
-i,--interval:指定每次报告之间的时间间隔,单位为秒,eg:iperf3 -c 192.168.12.168 -i 2
-p,--port:指定服务器端监听的端口或客户端所连接的端口,默认是5001端口。
-u,--udp:表示采用UDP协议发送报文,不带该参数表示采用TCP协议。
-l,--len:设置读写缓冲区的长度,单位为 Byte。TCP方式默认为8KB,UDP方式默认为1470字节。通常测试 PPS 的时候该值为16,测试BPS时该值为1400。
-b,--bandwidth [K|M|G]:指定UDP模式使用的带宽,单位bits/sec,默认值是1 Mbit/sec。
-t,--time:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认10秒。
-A:CPU亲和性,可以将具体的iperf3进程绑定对应编号的逻辑CPU,避免iperf进程在不同的CPU间调度
服务端:
iperf -s -i 1 -p 4101
客户端:
iperf -c 192.168.84.1 -p 4101 -i 1
用例
服务端监听指定ip:192.168.84.1
与端口号: 4101
,使用tcp,使用-i
启用间隔报告,从而打印出每个间隔内的时延数据
iperf -s -i -B 192.168.84.1 -p 4101
客户端进行发送,包大小160000
,间隔100ms
,总发送时间30s
iperf -c 192.168.84.1 -p 4101 -i 0.1 -t 300