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浏览器目录下。...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...
