iperf3带宽压测工具使用

iperf3带宽压测工具使用

  • 安装
    • 下载地址:[下载入口](https://iperf.fr/iperf-download.php)
      • 测试结果:
      • 时长测试(压测使用):
      • 并行测试
      • 反向测试
      • UDP 带宽测试

iPerf3 是用于主动测试 IP 网络上最大可用带宽的工具

安装

下载地址:下载入口

在这里插入图片描述
windows安装:
在这里插入图片描述
linux安装:

install -y iperf3

默认端口号5201
在这里插入图片描述
测试:
服务端(linux):iperf3 -s
客户端(windows):移动到iperf3.exe所在位置,执行iperf3 -c 目的IP
在这里插入图片描述
进阶:
如果需要指定端口运行,使用 -p 参数带上端口号,在这种情况下客户端也必须指定相同端口:

iperf3 -s -p 8801    # server
iperf3 -c 192.168.200.138 -p 8801 # client

测试结果:

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.09 GBytes   939 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  1.09 GBytes   937 Mbits/sec                  receiver

Interval: 程序的运行时间
Transferf: 传输的数据总量
Bitrate: 测试出的带宽比特率(在 3.1.3 版本中称之为 Bandwidth)
Retr: 重新传输的 TCP 数据包

时长测试(压测使用):

默认情况下 iPerf3 只进行 10 秒的测试,如果需要进行长时间的运行可以通过 -t 参数指定测试时长,单位为秒。

iperf3 -c 192.168.200.138 -t 60

-c 客户端运行并指定服务端的 IP 地址
-t 以秒为单位的传输时间(默认 10 秒)

并行测试

可以在客户端设置多个并行数据流进行测试,验证多个数据流同时发送的性能,并计算总带宽。

iperf3 -c 192.168.200.138 -P 3

-P, --parallel 大写的 P,要运行的并行客户端流的数量
测试结果:

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   371 MBytes   311 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   366 MBytes   307 Mbits/sec                  receiver
[  7]   0.00-10.00  sec   373 MBytes   313 Mbits/sec    0             sender
[  7]   0.00-10.00  sec   366 MBytes   307 Mbits/sec                  receiver
[  9]   0.00-10.00  sec   373 MBytes   313 Mbits/sec    0             sender
[  9]   0.00-10.00  sec   366 MBytes   307 Mbits/sec                  receiver
[SUM]   0.00-10.00  sec  1.09 GBytes   937 Mbits/sec    0             sender
[SUM]   0.00-10.00  sec  1.07 GBytes   922 Mbits/sec                  receiver

通过 ID 区分不同的客户端流,最后结果在 [SUM] 体现。并行测试时总带宽并不会发生改变,速率与非并行测试的结果一致

反向测试

反向测试可以理解为是在做「下行带宽」测试,由服务端发送数据,客户端接收,测试服务端到客户端的网络带宽与性能。

iperf3 -c 192.168.200.138 -R

-R, --reverse 大写的 R,以反向模式运行(服务器发送,客户端接收)
这个测试有意思的地方在于,上下行的速率并不总是一致的,以我们的服务器与客户端的测试为例:
客户端往服务器发送的速率是 3.17 Gbits/sec
而服务器往客户端发送速率是 1.27 Gbits/sec
速率差异与网络配置有关

UDP 带宽测试

使用 UDP 协议进行测试

iperf3 -c 192.168.200.138 -u

使用 UDP 协议进行测试,同时设置测试带宽,因为 UDP 默认使用 1Mbits/sec,可以根据需要设置测试带宽,比如 1000M,同时使用 -t 参数配置测试时间为 60 秒。

iperf3 -c 192.168.200.138 -u -b 1000M -t 60

测试结果:

[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-60.00  sec  6.68 GBytes   956 Mbits/sec  0.000 ms  0/4949773 (0%)  sender
[  5]   0.00-60.00  sec  1.72 GBytes   246 Mbits/sec  0.047 ms  4285962/4946689 (87%)  receiver

Interval: 程序的运行时间
Transferf: 传输的数据总量
Bitrate: 测试出的带宽比特率(在 3.1.3 版本中称之为 Bandwidth)
Jitter: 抖动
Lost/Total Datagrams: 丢包率
使用大包进行测试时,客户端往服务器发送的速率为 956 Mbits/sec,无延时抖动,无丢包;A客户端数据接收的速率为 246 Mbits/sec,抖动 0.047 ms,丢包 13%。

需要下调测试带宽,比如 200M。

iperf3 -c 192.168.200.138 -u -b 200M -t 60

测试结果:

[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-60.00  sec  1.40 GBytes   200 Mbits/sec  0.000 ms  0/1035910 (0%)  sender
[  5]   0.00-60.00  sec  1.40 GBytes   200 Mbits/sec  0.005 ms  0/1035910 (0%)  receiver

反向测试,从服务端往客户端发送,同时忽略掉前 10 秒的测试

iperf3 -c 192.168.200.138 -u -b 200M -t 60 -R -O 10

UDP 的测试有点神奇,当完成了上一个的测试之后再开始新的 UDP 测试时,前段部分的数据可信度不高,建议使用 -O 参数忽略掉。

iPerf3 命令说明
用法:
Client 端参数
iperf3 [-s|-c host] [options]

参数说明备注
-p, --port #要侦听/连接的服务器端口
-f, --format [kmgtKMGT]报告格式:Kbits, Mbits, Gbits, Tbits
-i, --interval #每次报告的间隔,单位为秒
-F, --file name测试所用文件的文件名。如果在 Client 端使用,发送该文件用作测试;如果使用在 Server 端,则是将数据写入该文件
-A, --affinity n/n,m设置 CPU 亲和力
-B, --bind绑定指定的网卡接口
-V, --verbosevebose 模式,运行时输出最详细的日志信息
-J, --json运行时以 JSON 格式输出结果
–logfile f输出到文件
–forceflush强制刷新每次间隔的日志信息3.7 版本+
-d, --debug以 debug 模式输出结果
-v, --version显示版本信息并退出
-h, --help显示帮助信息并退出

Server 端参数

参数说明备注
-s, --server以 Server 模式运行
-D, --daemon在后台以守护进程运行
-I, --pidfile file指定 pid 文件
-1, --one-off只接受 1 次来自 Client 端的测试,然后退出
–rsa-private-key-path用于解密身份验证凭据的RSA私钥的路径3.7 版本+
–authorized-users-path包含用户凭据的配置文件的路径3.7 版本+
Client 端参数
-c, --client 以 Client 模式运行,并指定 Server 端的地址
–sctp使用 SCTP 协议进行测试3.7 版本+
-X, --xbind 将 SCTP 关联绑定到链接3.7 版本+
–nstreams #SCTP流的数量3.7 版本+
-u, --udp以 UDP 协议进行测试
–connect-timeout #控制连接设置超时(毫秒)3.7 版本+
-b, --bitrate #[KMG][/#]限制测试带宽。UDP 默认为 1Mbit/秒,TCP 默认无限制
–pacing-timer #[KMG]设置起搏时间,单位为微秒(默认值为1000)3.7 版本+
–fq-rate #[KMG]以位/秒为单位启用基于公平排队的套接字调步(仅限Linux)3.7 版本+
-t, --time #以时间为测试结束条件进行测试,默认为 10 秒
-n, --bytes #[KMG]以数据传输大小为测试结束条件进行测试(代替-t)
-k, --blockcount #[KMG]以传输数据包数量为测试结束条件进行测试(代替-n或-t)
-l, --length #[KMG]读写缓冲区的长度,TCP 默认为 128K;UDP 默认为 8K,在 3.7 版本之后,UDP 默认使用动态分配或 1460 字节。
–cport 指定 Client 端运行所使用的 TCP 或 UDP 端口,默认为临时端口
-P, --parallel #测试数据流并发数量
-R, --reverse反向模式运行(Server 端发送,Client 端接收)
–bidir以双向模式运行。客户端和服务器发送和接收数据。3.7 版本+
-w, --window #[KMG]设置套接字缓冲区大小,TCP 模式下为窗口大小
-C, --congestion 设置 TCP 拥塞控制算法(仅支持 Linux 和 FreeBSD )
-M, --set-mss #设置 TCP/SCTP 最大分段长度(MSS,MTU - 40 字节)
-N, --no-delay设置 TCP/SCTP no delay,屏蔽 Nagle 算法
-4, --version4仅使用 IPv4
-6, --version6仅使用 IPv6
-S, --tos N设置 IP 服务类型(TOS,Type Of Service),0-255。可以使用八进制和十六进制的常用前缀,即 52,064 和 0x34 都指定相同的值。
–dscp N or --dscp val设置 IP dscp 值,0-63 或符号。数值可以用十进制、八进制和十六进制指定(请参阅上面的–tos)。3.7 版本+
-L, --flowlabel N设置 IPv6 流标签(仅支持 Linux)
-Z, --zerocopy使用「zero copy」(零拷贝)方法发送数据
-O, --omit N忽略前 n 秒的测试
-T, --title str设置每行测试结果的前缀
–extra-data str要包含在客户端和服务器 JSON 中的数据字符串3.7 版本+
–get-server-output从 Server 端获取测试结果
–udp-counters-64bit在 UDP 测试包中使用 64 位计数器(防止计数器溢出)
–repeating-payload在有效载荷中使用重复模式,而不是随机化的有效载荷(如iperf2)3.7 版本+
–username身份验证用户名3.7 版本+
–rsa-public-key-path用于加密身份验证凭据的 RSA 公钥的路径3.7 版本+

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SAP 生产订单批量报工(代码分享)

最近公司一直在对成本这块的业务进行梳理,影响比较大的就是生产这块的报工,经常会要求要批量的冲销报工,然后在继续报工,来调整生产订单的实际工时,前面的博客中已经给大家分享了批量冲销生产订单的代码, 下面给大家分享一下生产订单批量报工的代码 首先流程制造和离散制…

如何解决研发数据传输层面安全可控、可追溯的共性需求?

研发数据在企业内部跨网文件交换,是相对较为普遍而频繁的文件流转需求,基于国家法律法规要求及自身安全管理需要,许多企业进行内部网络隔离。不同企业隔离方案各不相同,比如银行内部将网络隔离为生产网、办公网、DMZ区&#xff0c…

如何用ChatGPT上热门:完整使用教程与写作技巧

1. ChatGPT概述修订 ChatGPT是一款基于深度神经网络的语言生成技术,能够协助用户创造出各类高品质的文字材料,适宜广泛的应用场景,如编撰文章、文学创作及社交媒体内容生成。 2. 利用ChatGPT生成热门内容的基本步骤 为了有效利用ChatGPT创作…

代码随想录算法训练营第三十五 | ● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球

860.柠檬水找零 讲解链接:https://programmercarl.com/0860.%E6%9F%A0%E6%AA%AC%E6%B0%B4%E6%89%BE%E9%9B%B6.html 本题只有5元10元20元,只需要考虑收到5、10、20这三种情况; 收到5元,五块的个数; 收到10,找…

Appium安装及配置(Windows环境)

在做app相关自动化测试,需要使用appium来做中转操作,下面来介绍一下appium的环境安装配置 appium官方文档:欢迎 - Appium Documentation 一、下载appium 下载地址:https://github.com/appium/appium-desktop/releases?page3 通…

Java多线程--volatile关键字

并发编程的三大特性 可见性有序性原子性 可见性 为什么会有可见性问题? 多核CPU 为了提升CPU效率,设计了L1,L2,L3三级缓存,如图。 如果俩个核几乎同时操作同一块内存,cpu1修改完,当下是对c…

TDR原理的介绍

目录 简介 简单定义 TDR测试原理 简介 时域和频域就像孪生兄弟一样,经常在测试测量领域同时出现,可谓是工程师们分析问题和解决问题的两大法宝。所以,在某些测试场景中,如果有时域信息的护法,咱们就能从时频域两个维…

嵌入式Linux shell编程实例

1. 输入两个数,实现两个数的相加 (1)具体实现代码如下 1 #!/bin/bash2 read a3 read b4 sum$(($a$b))5 echo "$sum"(2)编辑完内容后按Esc键再输入:wq保存,回车退出,执行结果如下图&a…

uniapp创建支付密码实现(初始密码,第二次密码)

示例: 插件地址:自定义数字/身份证/密码输入框,键盘密码框可分离使 - DCloud 插件市场 1.下载插件并导入HBuilderX,找到文件夹,copy number-keyboard.vue一份为number-keyboard2.vue(number-keyboard.vue是…

[数据集][目标检测]脑溢血检测数据集VOC+YOLO格式767张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):767 标注数量(xml文件个数):767 标注数量(txt文件个数):767 标注类别…

java 远程调试

1.远程启动时 jdk1.8-32\jre\bin\java.exe -Dfile.encodingUTF-8 -Djava.library.pathlib -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 -jar local-com.yuetai.service-0.0.1-SNAPSHOT.jar --spring.config.locationapplication.yml 2.本地调试项目连接远…

关于前端代码移动端的适配方案

为什么需要适配? 由于PC端和移动端的分辨率不同,前端展示的页面在两端设备如果原模原样的搬运则会导致PC端或移动端看到的画面相对于其设备的分辨率及其的不合理。 最为常见的是PC端正常浏览的网页没有做移动端适配,由于移动端分辨率普遍低于…

Base64码转换

title: Base64码转换 date: 2024-06-01 20:30:28 tags: vue3 后端图片前端显示乱码 现象 后端传来一个图片,前端能够接收,但是console.log()后发现图片变成了乱码,但是检查后台又发现能够正常的收到了这张图片。 处理方法 笔者有尝试将图…

虚拟现实环境下的远程教育和智能评估系统(三)

本周继续进行开发工具的选择与学习,基本了解了以下技术栈的部署应用; 一、Seata: Seata(Simple Extensible Autonomous Transaction Architecture)是一款开源的分布式事务解决方案,旨在提供高性能和简单易…

WordPress plugin MStore API SQL注入漏洞复现(CVE-2023-3077)

0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 0x02 漏洞概述 WordPress plugin MStore API 3.9.8 版本之前存在S…

信息学奥赛初赛天天练-18-挑战程序阅读-最长公共子序列、字符串与数组越界的巧妙应用

PDF文档公众号回复关键字:20240601 1 2023 CSP-J 阅读程序2 阅读程序(程序输入不超过数组成字符串定义的范围:判断题正确填√,错误填;除特殊说明外,判断题1.5分,选择题3分,共计40分&#xff…

【30天精通Prometheus:一站式监控实战指南】第12天:windows_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们👋   欢迎加入【30天精通Prometheus】专栏!📚 在这里,我们将探索Prometheus的强大功能,并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。🚀   Prometheus是云原生和DevOps的…

PVE虚拟机 安装 OpenWrt

1、创建虚拟机 2、操作系统 3、磁盘,先删除 4、网络 5、其它默认 6、在 local 分区上传镜像 7、登录PVE虚拟机 # 切换到镜像目录 cd /var/lib/vz/template/iso/# 把镜像导入磁盘 qm importdisk 102 openwrt-buddha-version-v7_2022_-x86-64-generic-squashfs-uefi…

从零开始学习Slam-旋转矩阵旋转向量四元组(二)

本文参考:计算机视觉life 仅作笔记用 书接上回,上回不清不楚的介绍了旋转矩阵&旋转向量和四元组 现在回顾一下重点: 本着绕谁谁不变的变则 假设绕z轴旋转θ,旋转矩阵为: 再回顾一下旋转向量的表示以及这个基本记不…

GEE 10m 全球 LULC 数据集 ESRI Land Cover

土地利用土地覆盖(LULC)地图在许多行业部门和发展中国家越来越成为决策者的重要工具。这些地图提供的信息有助于通过更好地理解和量化地球过程和人类活动的影响,从而制定政策和土地管理决策。 ESRI Land Cover 数据介绍 ArcGIS Living Atlas …