iperf3 使用记录

工作需要测试机器wifi的网络性能,采用iperf3工具来进行测试
iperf3 是基于Client/Server ,需要一端作为服务器,另一端作为客户端,相互发送接收消息,因此两端都需要安装iperf3工具。

下载链接 window可以从第一个链接下载window版本的,
其它的两个链接中都可以下载。

https://iperf.fr/iperf-download.php
https://downloads.es.net/pub/iperf/

window

下载地址 https://iperf.fr/iperf-download.php
https://iperf.fr/ipe
下载后解压, 将解压出来的iperf.exe 和cygwin1.dll 复制到C:\Windows\System32, 然后就可以打开cmd使用iperf3

linux

mkdir ~/iperf
cp iperf-3.1.3-source.tar.gz ~/iperf
cd ~iperf
tar xzf iperf-3.1.3-source.tar.gz
cd iperf-3.1.3

mkdir …/install
./configure --host=arm-none-linux-gnueabi --prefix=/home/user/iperf/install
make
make install

$ cd …/install # 进入安装目录
$ arm-none-linux-gnueabi-strip bin/iperf3 # 去除iperf3镜像调试信息
$ arm-none-linux-gnueabi-strip lib/libiperf.so.0.0.0 # 去除共享库的调试信息
$ rm lib/libiperf.a lib/libiperf.la # 删除两个不用的库文件
$ tar jcf iperf-3.0.3.tar.bz2 bin lib # 压缩bin和lib目录

将打包好的压缩包拷贝到机器上, 并分别解压到/bin 和 /lib目录

$ cp iperf-3.1.3.tar.bz2 ~ # 将复制压缩包到目标板用户目录
$ tar jxf iperf-3.1.3.tar.bz2 bin -C /usr # 解压镜像到/usr/bin
$ tar jxf iperf-3.1.3.tar.bz2 lib -C /usr # 解压库文件到/usr/lib

iperf 使用

server和client 通用参数
-p --port 要监听/连接到的服务器端口
-f --format 报告格式:kbits,mbits,k字节,mb字节
-i --interval 定期进行带宽报告之间的秒数
-F --file name xmit/恢复指定的文件
-A --affinity n/n, m
-B --bind 绑定到一个特定的接口
-V --verbose 更详细的输出
-J --json 输出json 格式
–logfile f 输出到日志文件
-d --debug 发出调试输出
-v version 显示版本信息并退出
-h --help 帮助
server
-s --server 以服务端运行
-D --daemon 将服务器作为守护进程运行
-I --pidfile file 写入PID文件
-1 --one-off 处理一个客户端连接,然后退出
client
-c --client 以客户端运行
-u --udp 使用udp而不是TCP
-b --bandwidth #[KMG][/# 目标带宽,单位为位/秒(0表示无限制) (udp默认为1mbit/秒,tcp默认为无限制) (突发模式的可选斜线和包数)
-t --time 传输时间为秒(默认为10秒)
-n --bytes #[KMG] 要传输的字节数(而不是-t)
-k, --blockcount #[KMG] 要传输的块(数据包)数(而不是t或n)
-l --len #[KMG] 要读取或写入的缓冲区的长度 (tcp默认为128kb,udp默认为8kb)
–cport 绑定到特定的客户端端口(tcp和udp,默认为:临时端口)
-P, --parallel 要运行的并行客户端流数
-R, --reverse 以反向模式运行(服务器发送,客户端接收)
-w, --window #[KMG] 设置窗口大小/套接字缓冲区大小
-C, --congestion 设置tcp拥塞控制算法(仅限linux和freebsd)
-M, --set-mss 设置tcp/sctp的最大段大小(mtu-40字节)
-N, --no-delay 设置tcp/sctp无延迟,禁用nagle的算法
-4, --version4 only use IPv4
-6, --version6 only use IPv6
-S, --tos N set the IP ‘type of service’
-L, --flowlabel N 设置ipv6流标签(仅在linux上支持)
-Z, --zerocopy 使用“零复制”的方法来发送数据
-O, --omit N 省略钱 n秒
-T, --title str 用此字符串作为每个输出行的前缀
–get-server-output 从服务器获取结果
–udp-counters-64bit 在udp测试数据包中使用64位计数器
–no-fq-socket-pacing 禁用基于公平排队的套接字起搏 (仅限linux)

测试:

路由器与window直接相连,
机器连接路由器wifi.
window ip: 192.168.136.211
机器: 192.168.136.200
tcp 测试
window 作为服务器 :iperf3 -s
客户端: iperf3 -c 192.168.136.211 -t 60
在这里插入图片描述
在这里插入图片描述
Interval表示时间间隔。
Transfer表示时间间隔里面转输的数据量。
Bandwidth是时间间隔里的传输速率。
要停止iperf3服务进程,请按CTRL+z或CTRL+c

客户端可以多开几个客户端: iperf3 -c 192.168.136.211 -t 60 -P 10
结果看 SUM
在这里插入图片描述

测试UDP吞吐量

带宽测试通常采用UDP模式,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为100Mbps,先用-b 100M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。
服务端:iperf3 -s
客户端:iperf3 -c 192.168.136.211 -t 60 -b 10M
在这里插入图片描述
在这里插入图片描述
Jitter为抖动,在连续传输中的平滑平均值差。
Lost为丢包数量。
Total Datagrams为包数量。

进行上下行带宽测试(双向传输)
iperf3 -u -c 192.168.136.211 -b 10M -d -t 60

这篇博文有 iperf原理介绍,做个标记

https://blog.csdn.net/huyuan7494/article/details/77073459

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值