iperf3使用教程

news2024/9/21 4:26:21

文章目录

    • 简介
    • 1.下载
    • 2. 使用
    • 测试实例:
    • 案例一 TCP通信测试
    • 案例二:UDP测试
      • 案例三 传输东西进行测试

iperfs3简单使用样例

简介

iPerf3是用于主动测试IP网络上最大可用带宽的工具。它支持时序、缓冲区、协议(TCP,UDP,SCTP与IPv4和IPv6)有关的各种参数。对于每次测试,它都会详细的带宽报告,延迟抖动和数据包丢失。

它与原始 iPerf 不共享任何代码,也不向后兼容。

它是一个C/S架构的测试工具,需要在同时运行在服务器端和客户端。

支持的平台:Windows, Linux, Android, MacOS X, FreeBSD, OpenBSD, iPhone/iPad等

1.下载

  • 手动下载
sudo wget -O /usr/lib/libiperf.so.0 https://iperf.fr/download/ubuntu/libiperf.so.0_3.1.3

在这里插入图片描述

[root@gaussdb01 rpm]# sudo wget -o /usr/bin/iperf3 https://iperf.fr/download/ubuntu/iperf3_3.1.3
[root@gaussdb01 rpm]# sudo chmod +x /usr/bin/iperf3
  • yum 下载

yum -y install iperf3 
  • 其他下载地址:iPerf - 下载 iPerf3 和原始 iPerf 预编译二进制文件

2. 使用

使用时可以输iperf3 -h 查看详情
样例:
1、server端先打开服务

[root@gaussdb01 ~]# iperf3 -s -i 1 -p 5201
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
# 作为服务端运行,报告回显间隔时间1s,服务端不区分tcp或udp

-s :服务端

-i : sec 以秒为单位显示报告间隔

-p:端口

2、client端连接服务

[root@gaussdb02 ~]# iperf3 -c 192.168.0.83 -i 1 -t 5 -p 5201
Connecting to host 192.168.0.83, port 5201
[  5] local 192.168.0.84 port 59274 connected to 192.168.0.83 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  3.43 GBytes  29.5 Gbits/sec    0   3.69 MBytes       
[  5]   1.00-2.00   sec  3.61 GBytes  31.0 Gbits/sec    0   3.69 MBytes       
[  5]   2.00-3.00   sec  3.30 GBytes  28.4 Gbits/sec    0   3.69 MBytes       
[  5]   3.00-4.00   sec  3.28 GBytes  28.2 Gbits/sec    0   3.69 MBytes       
[  5]   4.00-5.00   sec  3.08 GBytes  26.5 Gbits/sec    0   3.69 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-5.00   sec  16.7 GBytes  28.7 Gbits/sec    0             sender
[  5]   0.00-5.04   sec  16.7 GBytes  28.4 Gbits/sec                  receiver

iperf Done.

-c:客户端 host是server端地址

-i: sec 以秒为单位显示报告间隔

-t:测试时间,默认10秒

-p:端口

3、server端接受信息

[root@gaussdb01 ~]# iperf3 -s -i 1 -p 5201
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.0.84, port 59272
[  5] local 192.168.0.83 port 5201 connected to 192.168.0.84 port 59274
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  3.25 GBytes  27.9 Gbits/sec                  
[  5]   1.00-2.00   sec  3.65 GBytes  31.4 Gbits/sec                  
[  5]   2.00-3.00   sec  3.27 GBytes  28.1 Gbits/sec                  
[  5]   3.00-4.00   sec  3.29 GBytes  28.2 Gbits/sec                  
[  5]   4.00-5.00   sec  3.12 GBytes  26.8 Gbits/sec                  
[  5]   5.00-5.04   sec   112 MBytes  22.1 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-5.04   sec  16.7 GBytes  28.4 Gbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

iperf主要参数

iperf中的可选参数比较多,具体可以参见其用户手册。

http://webfolder.wirelessleiden.nl/iperf/

一般来说,我们在做性能测试的时候需要指定包长,不同的包长会得到不同的吞吐量,通过-l指定,而使用-b指定带宽。

  • 测试吞吐量,抖动和丢包率

如何需要同时测试以上三个参数,那么只能通过UDP获得。使用-u参数进行UDP测试(iperf默认为TCP)。

在测试的最后server端会给出一个报告。

要获得带宽数据,需要不断在client端增加带宽值,直到server端出现轻微的丢包为止,此时server端显示的带宽就是被测系统的吞吐量。

使用TPC测试带宽应注意的问题

有时候,我们需要使用TCP来测试网络带宽。这里有一个参数需要特别注意,那就是TCP窗口大小,可以使用-w参数指定。

网络通道的容量capacity = bandwidth * round-trip time

而理论TCP窗口的大小就是网络通道的容量。

比如,网络带宽为40Mbit/s,回环路径消耗时间是2ms,那么TCP的窗口大小不小于40Mbit/s×2ms = 80kbit = 10Kbytes

此时我们可以查询iperf默认的TCP窗口大小来决定是否需要设置此参数,在此例中,窗口大小应设计大于10Kbytes,当然,这仅仅是理论值,在实际测试中可能需要作出调整。

测试实例:

此软件需要安装到两端需要互测的机器上,然后一段作为服务端监听,一端作为客户端连接。具体命令可以iperf -h 查看下。

服务端:
iperf -s -u
-s 标记此端为服务端
-u标记自己为UDP监听
-p 指定自己监听端口

客户端:
iperf -c 1.1.1.1 -i 1 -u -t 60 -F /root/a.zip -P 5
-c标记自己为客户端
-i 设定输出值间隔
-u使用传输协议为UDP
-t 设定测试时间为60秒
-F 指定传输文件(该项可有可无)
-P 指定进程数,如果设置为5,那么也就相当与对端建立五个连接

注意事项:
1.发包测试需要分为UDP测试与TCP测试,其中服务端需要用-u命令去区分监听协议。
2.TCP协议测试不能计算出时延与丢包率,而且还不能指定发送带宽。

案例一 TCP通信测试

服务端:

[root@gaussdb01 ~]# iperf3 -s -i 1  -p 5201 
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
# 作为服务端运行,报告回显间隔时间1s,服务端不区分tcp或udp

效果如下:

在这里插入图片描述

客户端

[root@gaussdb02 ~]# iperf3 -c 192.168.0.83 -i 1 -t 10 -b 5M
#作为客户端,连接服务端ip地址192.168.3.250,报告回显间隔1s,测试时间10s,带宽限制为5M

在这里插入图片描述

服务端:

在这里插入图片描述

我们这里测试吞吐量的结果为Bitrate 5.01M左右,是因为我们限制了测试数据的带宽就是5M,说明实际的吞吐量应该是比这个大,测试过程中,如果发现测试的带宽与限制带宽接近,说明限制设置的太小了,需要适当调整-b参数,或者参考硬件厂家给的指标测试。

那么我们调整-b参数到50M,测试结果如下

在这里插入图片描述

可以看出来我们实际TCP上行的速度测试为49.8M/sec,我们还可以增加测试时间来提高测试准确性。

这里还有一点是sender结果为0bits/sec,是因为我们只测试了上行数据,那么如何测试下行通信速度呢?

TCP下行测试:在A(客户端)设备启动shell窗口,输入指令

[root@gaussdb02 ~]# iperf3 -c 192.168.0.83 -i 1 -t 10 -b 5M -R
#作为客户端,连接服务端ip地址192.168.0.83,报告回显间隔1s,测试时间10s,带宽限制为7M,-R为反向测试,这个参数也是iperf3的主要亮点,支持直接转换数据发送方向

在这里插入图片描述

我们这里测试TCP下行吞吐量的结果为5.01M左右。

案例二:UDP测试

可以继续使用与案例一服务器,如果未打开,参考案例一的服务器打开方式,注意不要同时打开多个服务器

在B(服务端)设备启动shell窗口,输入指令

[root@gaussdb01 ~]# iperf3 -s -i 1  -p 5201 
# 作为服务端运行,报告回显间隔时间1s,服务端不区分tcp或udp

客户端

[root@gaussdb02 ~]# iperf3 -u -c 192.168.0.83 -i 1 -t 10 -b 50M -i 1 -t 10
#作为客户端运行,限制带宽50M,报告回显间隔1s,测试时间10s

在这里插入图片描述

UDP下行测试:在A(客户端)设备启动shell窗口,输入指令加-R

我们这里测试出UDP上行吞吐量的结果为50M/s,延迟抖动(Jitter)为0.000ms,丢包率为0%。

案例三 传输东西进行测试

[root@gaussdb02 ~]# du -sh a.txt 
4.0K	a.txt        
[root@gaussdb02 ~]# iperf3 -u -c 192.168.0.83 -i 1 -t 10 -b 50M -i 1 -t 10 -F /root/a.txt 

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/462727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试方法——等价类划分法详解

1、等价类划分法的介绍和概念 划分 指互不相交的一组子集,这些子集的并是整个集合。 对测试的意义:完备性和无冗余性。 等价类 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,具有等…

23.4.25总结

复习了MYSQL数据库的主键和外键的知识: 在设计表时,可以通过外键这个按钮,更改Update rule(更新规则)和Delete rule(删除规则)。 外键行为 默认情况下是:NO ACTION、RESTRICT 两…

传统机器学习(七)支持向量机(1)超平面、SVM硬间隔、软间隔模型和损失函数

传统机器学习(七)支持向量机(1) 1 算法概述 1.1 超平面的理解 1.1.1 超平面公式 我们对“平面”概念的理解,一般是定义在三维空间中的,如下: 假设M和M0为平面上的两点,n为该平面的法向量,那么,通过下图…

4.25~~~~~

接着之前PE文件结构的预习 DOS 定位到NT 怎么操作的? 用的是e_lfanew,然后是相对于文件头的偏移量(也就是raw表示方法) 现在有个问题,为什么e_lfanew 这个变量不直接存储PE头 的绝对地址呢? 比如说&…

python 基础语法学习之变量与运算符

一、注释 注释: 就是对代码的解释,方便阅读,被注释的代码不执行 分类 单行注释 # 1.单行注释 以#号开头 ,右边的所有东西都被当做说明文字 ,程序不进行编译运行。 print(hello world)多行注释 # 2.多行注释 三个单引号 或…

学习日记(刷题,学java)

先看看题目 给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。 示例 1&…

Chapter 4 :Constraining I/O Delay(ug903)

4.1 About Constraining I/O Delay 要在设计中准确地建模外部时序上下文,必须为输入和输出端口提供时序信息。由于XilinxVivado集成设计环境(IDE)只能识别FPGA边界内的时序,因此必须使用以下命令来指定超出这些边界的延迟…

Linux 系统文件权限管理(参考菜鸟教程)

一、查看文件用户,用户组,其他用户的文件权限,属主,属主用户组等信息 ls -l如图所示:  1、第一个字符代表这个文件是目录、文件或链接文件等等。 当为 d 则是目录当为 - 则是文件;若是 l 则表示为链接…

SpringBoot+Shiro+Jwt+Vue+elementUI实现前后端分离单体系统Demo

记录一下使用SpringBoot集成Shiro框架和Jwt框架实现前后端分离Web项目的过程,后端使用SpringBoot整合ShiroJwt(auth0),前端使用vueelementUI框架,前后端的交互使用的是jwt的token,shiro的会话关闭,后端只需要使用Shiro…

Sqlmap Tamper 编写/改写 学习

sqlmap的 --tamper 参数可以引入用户自定义的脚本修改注入时的payload ,达到sql注入时对一些敏感字符的一些绕过 下载 sqlmap 自带的 tamper 脚本就在 /sqlmap/tamper 目录下,是用 python 编写的,所以我们可以用 python 语言自己编写一些脚本…

bismark和bsmap比对原理

1,bismark比对方法比较简单粗暴,它制作两种类型的基因组:1),将所有的C转化为T的基因组;2),将所有的G转化为A的基因组。它将bisulfate(重chong硫酸盐)处理后的…

【Kafka】面试题总结

Kafka 1、什么是消息队列2、消息队列有什么用3、Kafka 的多分区以及多副本机制有什么好处呢4、Zookeeper 在 Kafka 中的作用知道吗5、Kafka 如何保证消息的消费顺序6、Kafka 如何保证消息不丢失7、Kafka 如何保证消息不重复消费7、Kafka为什么快/吞吐量大 1、什么是消息队列 我…

【JavaScript】对象继承精华提炼

继承机制 每个函数都有一个prototype属性,指向一个对象,该对象是原型对象;构造函数生成实例时,该属性会自动成为实例对象的原型;原型对象上的所有属性和方法,都能被实例对象共享继承;原型对象的…

使用HALCON标定板快速标定,纠正成像畸变

使用HALCON标定板快速标定,纠正成像畸变 1生成标定板描述文件 gen_caltab (7, 7, 0.00375, 0.5, caltab.descr, caltab.ps)gen_caltab ( : : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : ) 为具有矩形排列标记的标定板生成标定板描述文…

Linux环境下安装RocketMQ(单机、集群)

目录 前置要求: 一、下载RocketMQ 二、上传解压 三、配置rocketmq的环境变量 四、查看rocketmq的目录结构 五、启动 5.1 启动nameserver 5.2 启动broker 六、测试发送消息 七、关闭 八、RocketMQ集群搭建 8.1 RocketMQ集群模式介绍 8.2 搭建 8.2.1 准…

海康机器视觉Visionmaster-VM3D常见问题及解决方法

软件及环境问题 第一个问题:软件获取问题 官网获取 第二个问题:环境配置类问题 1.软件打不开,加密狗灯不亮,6报错:加密狗未检测到或异常。解决方法:安装3DVM的驱动。 安装后加密狗无法识别&#xff0c…

SLAM论文速递:SLAM—— MID-Fusion:基于八叉树的对象级多实例动态SLAM—4.26(1)

论文信息 题目: MID-Fusion:Octree-based Object-Level Multi-Instance Dynamic SLAMMID-Fusion:基于八叉树的对象级多实例动态SLAM 论文地址: https://ieeexplore.ieee.org/abstract/document/8794371发表期刊: 2019 International Conf…

LVS-NAT模式

什么是群集? 多台主机组成的一个整体,提供一个ip访问通道,所有的主机干一件事 提供同样的服务。 群集有哪些类型? ①负载均衡群集(LB): 提高系统的响应能力,处理更多的访问请求&am…

Linux进程(1)

目录 ⛹🏽进程简介⛹🏽查看进程⛹🏽系统调用🚴🏽获取进程标示符🚴🏽创建进程 ⛹🏽进程状态🚴🏽孤儿进程:🚴🏽进程优先级 ⛹…

一次使用netcat的经验记录

1.netcat安装 参考:https://my.oschina.net/u/3530967/blog/1560985 2.netcat使用 参考:https://zhuanlan.zhihu.com/p/83959309 3.创建udp服务 (1)使用:nc -l -u -p 8810 创建udp服务端监听8810端口 在另一台机…