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浏览器目录下。...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...