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, --verbose | vebose 模式,运行时输出最详细的日志信息 | |
| -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 版本+ |
相关文章:
iperf3带宽压测工具使用
iperf3带宽压测工具使用 安装下载地址:[下载入口](https://iperf.fr/iperf-download.php)测试结果:时长测试(压测使用):并行测试反向测试UDP 带宽测试 iPerf3 是用于主动测试 IP 网络上最大可用带宽的工具 安装 下载地址&#x…...
[数据集][目标检测]焊接处缺陷检测数据集VOC+YOLO格式3400张8类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3400 标注数量(xml文件个数):3400 标注数量(txt文件个数):3400 标注…...
2024华为OD机试真题-剩余银饰的重量-C++(C卷D卷)
题目描述 有 N 块二手市场收集的银饰,每块银饰的重量都是正整数,收集到的银饰会被熔化用于打造新的饰品。 每一回合,从中选出三块 最重的 银饰,然后一起熔掉。假设银饰的重量分别为 x 、y 和 z, 且 x <= y <= z。那么熔掉的可能结果如下: 如果x == y == z,那么三…...
糖果促销【百度之星】/思维
糖果促销 思维 大佬的解法: #include<bits/stdc.h> using namespace std; typedef long long ll; int main() {ll t;cin>>t;for(int i0;i<t;i){ll p,k;cin>>p>>k;if(k0) cout<<0<<endl;else{k-(k-1)/p;cout<<k<…...
【python学习】安装Anaconda后,如何进行环境管理(命令行操作及图形化操作Anaconda Navigator)及包管理
命令行的方式 首先,打开 Anaconda Powershell Prompt 环境查看 使用以下命令查看当前所有环境: conda env list目前只有一个 base环境,就是安装 anaconda的时候选择的。 光标在闪烁,目前已经进入 base 环境模式: …...
HTML大雪纷飞
目录 写在前面 HTML简介 完整代码 代码分析 运行结果 系列文章 写在后面 写在前面 小编又又又出现啦!这次小编给大家带来大雪纷飞HTML版,不需要任何的环境,只要有一个浏览器,就可以随时随地下一场大雪哦! HTM…...
问界新M7 Ultra仅售28.98万元起,上市即交付
5月31日,问界新M7 Ultra正式上市。发布会上,鸿蒙智行旗下多款产品交出最新答卷——问界新M5上市1个月大定突破2万台;智界S7位列30万纯电轿车4月交付量NO.3;问界M9上市5个月大定突破9万台。其中,作为中国高端豪华SUV市场…...
【Java数据结构】详解LinkedList与链表(四)
🔒文章目录: 1.❤️❤️前言~🥳🎉🎉🎉 2.什么是LinkedList 3.LinkedList的使用 3.1LinkedList的构造方法 3.2LinkedList的其他常用方法介绍 addAll方法 subList方法 LinkedList的常用方法总使…...
ssm汉服文化平台网站
博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
如何让 LightRoom 每次导入照片后不自动弹出 SD 卡 LR
如何让 LightRoom 每次导入照片后不自动弹出 SD 卡 LR 在导入窗口左上角有个选项: 导入后弹出 把这个去掉就可以了...
elasticdump和ESM
逐个执行如下命令; 1.拷贝analyzer如分词(需要分词器,可能不成功,不影响复制) ./elasticdump --inputhttp://[来源IP地址]:9200/[来源索引] --outputhttp://[目标IP地址]:9200/[目标索引] --typeanalyzer 2.拷贝映射…...
Java扩展机制:SPI与Spring.factories详解
一、SPI SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 整体机制图如下: Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。 系统设计的各个抽象,往往有很多不…...
iPhone 语言编程:深入探索与无限可能
iPhone 语言编程:深入探索与无限可能 在数字化时代的浪潮中,iPhone 作为一款全球领先的智能手机,其语言编程的奥秘一直吸引着众多开发者与爱好者的目光。iPhone 的语言编程不仅关乎技术实现,更涉及到用户体验、创新应用等多个层面…...
css动态导航栏鼠标悬停特效
charset "utf-8"; /*科e互联特效基本框架CSS*/ body, ul, dl, dd, dt, ol, li, p, h1, h2, h3, h4, h5, h6, textarea, form, select, fieldset, table, td, div, input {margin:0;padding:0;-webkit-text-size-adjust: none} h1, h2, h3, h4, h5, h6{font-size:12px…...
Vue中使用axios先获取头像上传参数然后上传图片到服务器-demo
这是一个使用axios发送POST请求上传图片到AWS S3的代码。其中: 引入了axios、FormData和fs模块;创建FormData实例,向其中添加上传图片的相关信息;创建axios请求的配置对象config,包含url、method、headers和data等属性…...
Win11环境下Android Studio中Flutter开发环境构建(逐步解决)
flutter开发环境构建 1. Flutter开发环境搭建1.1 Android Studio1.2 flutter下载flutter设置环境变量增加国内镜像 1.3 flutter doctorAndroid toolchain:cmdline-tools component is missingAndroid toolchain:Some Android licenses not acceptedChrom…...
Thread Servlet思考
在开发过程中我们经常会遇到两个对象分别是Thread和Servlet。但是很少会考虑到两者之前的关系。 Thread是线程,在tomcat服务器中请求被接收后,会启动线程对请求进行处理。线程会通过run方法执行实际执行的业务逻辑。在tomcat中当请求请求到线程池后&…...
电源滤波器怎么选用
电源滤波器怎么选用 滤波器应用场景及作用第一步:第二步:第三步:第四步: 滤波器应用场景及作用 可以有效解决EMC测试无法通过、端口防护、滤除干扰、设备保护等问题 主要功能有: 1、降低主电源谐波; 2、保护驱动装置电力电子元件…...
终于更新了!时隔一年niushop多商户b2b2c的新补丁v5.0.2终于发布了,一起看看有啥新变化
注意这是最新版的V5.02_多商户V5.0.2版本更新说明 瞧瞧更新了什么内容, 优化功能 优化手机号、身份证等常用验证规则,全局化处理优化商品列表接口查询速度 修复功能修复系统内部分图片上传功能调用接口跨端口问题修复总后台和商家后台订单管理搜索标签在…...
google的chromedriver最新版下载地址
Chrome for Testing availability (googlechromelabs.github.io) 复制对应的地址跳转进去即可下载,下载前先看下自己google浏览器版本,找到对应的版本号去下载,把解压缩的exe放到google浏览器目录下。...
SAP--S4/HANA
1、Webdispatcher 2、ASCS 全称:ABAP Central Services Instance(在 Java 栈中称为 SCS - Java Central Services)。 核心功能:它是 SAP 系统的“大脑”或控制中心,不包含处理具体业务对话(Dialogÿ…...
深度学习中的优化器:原理与实践
深度学习中的优化器:原理与实践 一、背景与动机 在深度学习中,优化器是模型训练的核心组件,它决定了模型参数如何根据损失函数的梯度进行更新。选择合适的优化器对于模型的训练速度和最终性能至关重要。本文将深入探讨各种优化器的核心原理、…...
Matlab实战:5步搞定微电网源储荷协调调度(附完整CPLEX调用代码)
Matlab实战:微电网源储荷协调调度的5个工程化技巧 微电网调度是新能源时代的核心技术难题之一。面对风光发电的波动性和负荷需求的多变性,如何实现源、储、荷三者的动态平衡,成为电力工程师们每天都要应对的挑战。不同于学术论文中复杂的理论…...
VirtualBox虚拟机磁盘空间分配技巧:如何用动态分配40G空间玩转Debian 12
VirtualBox磁盘空间动态分配实战:以Debian 12为例的40GB高效配置指南 在虚拟化技术日益普及的今天,VirtualBox作为一款开源免费的虚拟化工具,凭借其跨平台特性和易用性,成为众多开发者和技术爱好者的首选。然而,许多用…...
Zotero-GPT插件:如何正确配置API密钥以激活AI文献分析功能
Zotero-GPT插件:如何正确配置API密钥以激活AI文献分析功能 【免费下载链接】zotero-gpt GPT Meet Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-gpt Zotero-GPT是一款将GPT人工智能能力深度整合到Zotero文献管理软件中的开源插件,…...
QobuzDownloaderX-MOD:一站式高品质音乐下载解决方案
QobuzDownloaderX-MOD:一站式高品质音乐下载解决方案 【免费下载链接】QobuzDownloaderX-MOD Downloads streams directly from Qobuz. Experimental refactoring of QobuzDownloaderX by AiiR 项目地址: https://gitcode.com/gh_mirrors/qo/QobuzDownloaderX-MOD…...
AutoGen多智能体框架:从协作价值到企业级实践指南
AutoGen多智能体框架:从协作价值到企业级实践指南 【免费下载链接】autogen 启用下一代大型语言模型应用 项目地址: https://gitcode.com/GitHub_Trending/au/autogen 在人工智能快速发展的今天,如何让AI系统像人类团队一样高效协作完成复杂任务&…...
Claude Code 用了半年才发现,原来上下文烧没了自己根本不知道!
点击上方卡片关注我设置星标 学习更多AI出海知识用 Claude Code 最怕什么?不是它写错代码,那改改就好。最怕的是写着写着突然质量暴跌,前面说好的逻辑它不认了,该记住的上下文全忘了,然后你反应过来:上下文…...
OpenClaw错误排查大全:百川2-13B接口调用常见问题与解决方案
OpenClaw错误排查大全:百川2-13B接口调用常见问题与解决方案 1. 为什么需要这份排查指南 上周我在本地部署百川2-13B模型对接OpenClaw时,连续遇到了三个晚上各种报错。从模型加载失败到Token耗尽,再到莫名其妙的响应超时,每次解…...
MOSSE算法在无人机视频跟踪中的应用:一个被低估的轻量级选择?
MOSSE算法:无人机视觉跟踪中未被充分利用的高效解决方案 当你在树莓派或Jetson Nano这样的边缘设备上部署无人机视觉系统时,是否经常面临这样的困境:既需要实时性能,又受限于计算资源和功耗?在众多目标跟踪算法中&…...
