Linux iperf3:网络性能测试工具

2023-11-16

iperf3简介

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

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

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

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

安装

linux安装(或者 官网下载离线安装包):

yum install -y iperf3 

详细命令参数

iperf3 -h

可以查看所有的命令信息

以下是中文信息, iPerf 3.1.2 支持的所有参数:

-p, --port #,Server 端监听、Client 端连接的端口号;

-f, --format [kmgKMG],报告中所用的数据单位,Kbits, Mbits, KBytes, Mbytes;

-i, --interval #,每次报告的间隔,单位为秒;

-F, --file name,测试所用文件的文件名。如果使用在 Client 端,发送该文件用作测试;如果使用在 Server 端,则是将数据写入该文件,而不是丢弃;

-A, --affinity n/n,m,设置 CPU 亲和力;

-B, --bind ,绑定指定的网卡接口;

-V, --verbose,运行时输出更多细节;

-J, --json,运行时以 JSON 格式输出结果;

–logfile f,输出到文件;

-d, --debug,以 debug 模式输出结果;

-v, --version,显示版本信息并退出;

-h, --help,显示帮助信息并退出。

Server 端参数

-s, --server,以 Server 模式运行

-D, --daemon,在后台以守护进程运行;

-I, --pidfile file,指定 pid 文件;

-1, --one-off,只接受 1 次来自 Client 端的测试,然后退出。

Client 端参数

-c, --client ,以 Client 模式运行,并指定 Server 端的地址;

-u, --udp,以 UDP 协议进行测试;

-b, --bandwidth #[KMG][/#],限制测试带宽。UDP 默认为 1Mbit/秒,TCP 默认无限制;

-t, --time #,以时间为测试结束条件进行测试,默认为 10 秒;

-n, --bytes #[KMG],以数据传输大小为测试结束条件进行测试;

-k, --blockcount #[KMG],以传输数据包数量为测试结束条件进行测试;

-l, --len #[KMG],读写缓冲区的长度,TCP 默认为 128K,UDP 默认为 8K

–cport ,指定 Client 端运行所使用的 TCP 或 UDP 端口,默认为临时端口;

-P, --parallel #,测试数据流并发数量;

-R, --reverse,反向模式运行(Server 端发送,Client 端接收);

-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);

-L, --flowlabel N,设置 IPv6 流标签(仅支持 Linux);

-Z, --zerocopy,使用 “zero copy”(零拷贝)方法发送数据;

-O, --omit N,忽略前 n 秒的测试;

-T, --title str,设置每行测试结果的前缀;

–get-server-output,从 Server 端获取测试结果;

–udp-counters-64bit,在 UDP 测试包中使用 64 位计数器(防止计数器溢出)。

示例

使用iperf3是在测试客户端与服务之前的带宽测试。

iperf3服务端:192.168.6.1
iperf3客户端:192.168.6.2

服务端(先启动)

服务端执行:(默认端口号为5201

iperf3 -s

服务端执行:(指定的端口号-p port
例:

iperf3 -s -p 8600

客户端

iperf3 -c 【serverIP,这些写服务器的IP地址】
例:

iperf3 -c 192.168.6.1

【注意】默认情况客户端使用TCP协议

设置多个并行数据流-P

iperf3 -c serverIP -P streams

例:

iperf3 -c 192.168.6.1 -P 3

反向测试(服务器端发送数据到客户端)

iperf3  -c 192.168.6.1 -R

指定udp协议:

iperf3 -c 192.168.6.1 -u

【注意】UDP协议有限制,这样只能测出来带宽为 1Mbit/秒。

以带宽为100MB压测UDP协议,查看Lost/Total Datagrams:丢包数/总数据包数(丢包率)。

iperf3 -c 192.168.6.1 -u -b 100MB
iperf3 -c 192.168.6.1 -u -b 100MB -l 1k
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux iperf3:网络性能测试工具 的相关文章

  • Scrapy FakeUserAgentError:获取浏览器时发生错误

    我使用 Scrapy FakeUserAgent 并在我的 Linux 服务器上不断收到此错误 Traceback most recent call last File usr local lib64 python2 7 site pack
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • 操作系统什么时候清除进程的内存

    进程在某些操作系统上成功或异常终止 操作系统何时决定擦除分配给该进程的内存 数据 代码等 在退出时或当它想为新进程分配内存时 这个清除内存分配过程在所有操作系统 winXP Win7 linux Mac 上都相同吗 据我了解 页表具有该进程
  • 如何使用AWK脚本检查表的所有列数据类型? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在这里 我正在检查表中第一列的数据类型 但我想知道AWK中表的所有列数据类型 我尝试过 但只能获得一列数据类型 例如 Column 1
  • 如何让 clangd 转向 c++20

    当没有其他信息时 如何让 clangd 回退到 c 20 例如 在第一次构建之前 cmake 可以生成一个 这是在带有最新 LLVM 的 Arch Linux 上 这是通过 Emacs LSP 运行的 但这应该没有什么区别 你可以加 Com
  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • Linux 中热插拔设备时检测设备是否存在

    我正在运行 SPIcode http lxr free electrons com source drivers spi spi omap2 mcspi c在熊猫板上 我想知道其中的哪个功能code http lxr free electr
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • Docker:处理 tar 文件时出错(退出状态 1):设置枢轴目录时出错:不是目录

    我是 Docker 新手 不知道是什么原因导致此错误或如何诊断它 任何有关此问题的具体帮助或有关首先检查何处以诊断此类问题的提示将不胜感激 我的 Dockerfile FROM java 8 Install maven RUN apt ge
  • 没有可用的符号表信息

    我正在测试第三方的库 它崩溃了 当我想查看崩溃的原因时 我的 gdb 告诉我没有可用的调试符号 Program received signal SIGSEGV Segmentation fault Switching to Thread 0
  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1

随机推荐

  • SpringCloud+mybatis+WeMagic Mapper注入失败 NPE空指针异常

    项目背景 Springcloud mybatis webMagic 获取百度热搜榜 搜狗热搜榜等热搜数据并存储到数据库中 使用Mybatis Generator自动生成Mapper后放置在Mapper文件夹 并添加了对应的注解支持 serv
  • 深度学习系列50:苹果m1芯片加速pytorch

    1 介绍 Apple的Metal Performance Shaders MPS 作为PyTorch的后端来加速GPU训练 MPS后端扩展了PyTorch框架 提供了在Mac上设置和运行操作的脚本和功能 MPS通过针对每个Metal GPU
  • 树莓派gpio接ttl转usb串口调试

    树莓派设置修改 以下教程只在树莓派3B 验证测试通过 其它版本未经测试仅供参考 1 gt 修改config txt enable uart 1 找到这行 将值改为1 dtoverlay pi3 miniuart bt 在config txt
  • uni-apph5 端获取当前位置坐标及地理位置逆解析

    1 uni app getLocation在浏览器端获取的地理位置坐标是你电脑里面ip地址位置的坐标 2 调用百度地图api逆解析地址对坐标解析详细地址 代码如下 经纬度 记得改成活的 测试用写死了 uni getLocation type
  • 详解 MySQL InnoDB 实现原理

    MySQL InnoDB 引擎现在广为使用 它提供了事务 行锁 日志等一系列特性 本文分析下 InnoDB 的内部实现机制 MySQL 版本为 5 7 24 操作系统为 Debian 9 1 InnoDB 架构 Innodb 架构图 Inn
  • Java基于Selenium动态抓取页面

    Java基于Selenium动态抓取页面 前情介绍 解决 思路 编码 解决过程中遇到的问题一 解决过程中遇到的问题二 总结 前情介绍 前段时间开发了一个功能 通过HttpClient访问某个页面 获取页面的全部html内容 之后通过抓取过来
  • 【Spring Boot 集成应用】 OAUTH2统一认证单点登录中的各种模式说明

    1 OAUTH2统一认证介绍 OAuth 2 0 是一个行业的标准授权协议 OAuth 2 0 专注于简化客户端开发人员 同时为 Web 应用程序 桌面应用程序 手机等各种设备接入提供特定的授权流程 2 传统登陆认证 传统登陆方式是在每个服
  • python基础笔记(三)_Matplotlib基础语法

    图表绘制工具 Matplotlib 概念 一个python版的matlab绘图接口 以2D为主 支持python numpy pandas基本数据结构 有较丰富的图表库 图表窗口 plt show 直接生成图表 matplotlib inl
  • seate底层原理_Seate

    Seata是阿里开源的一个分布式事务框架 Seata主要有两种分布式事务实现方案 AT及TCC AT模式主要关注多 DB 访问的数据一致性 当然也包括多服务下的多 DB 数据访问一致性问题 TCC 模式主要关注业务拆分 在按照业务横向扩展资
  • Jmeter(三十七) - 从入门到精通进阶篇 - 输出HTML格式的性能测试报告(详解教程)

    1 简介 相对于Loadrunner Jmeter其实也是可以有测试报告产出的 虽然一般都不用 没有Loadrunner的报告那么强大是一方面 但是有小伙伴们私下问 那宏哥还是顺手写一下吧 今天我们就来学习下 如何输入HTML格式的JMet
  • nginx下面完美配置解决404 file not found(让nginx支持PATHINFO路由模式)

    老朱亲自写的 最完美Nginx 配置文件 server listen 80 server name xxxx com if host d d d d return 404 禁IP访问 root var www index index htm
  • C++ 中 operator< 运算符重载来实现 sort 排序的简单理解

    先上代码 Struct Student string id int grade bool operator lt const Student t const if grade t grade return grade gt t grade
  • 面试常见问题

    最失败的案例 复盘经验和反思 有分量的事情 最成功 印象最深的案例 网络架构较为复杂 用户端为移动手持 即无线网络 服务端为固网私有网络 中间为办公网 即服务端网络 办公网 用户端 故障排查 分别在服务端 服务器 网络中转端 防火墙 用户端
  • PLSQL的使用

    目录 1 PLSQLl的安装 配置文件配置教程地址 2 PLSQL建表出现乱问题 Oracle PLSQL 表中字段 注释时为乱码 解决方式 1 PLSQLl的安装 配置文件配置教程地址 https blog csdn net master
  • java垃圾回收机制

    今天算是对java的gc有了一定的了解 三篇文章做个标记 配合上篇文章来看 http www daniel journey com archives 139 另外推荐三篇很棒的文章 JVM调优总结 Java 6 JVM参数选项大全 一次Ja
  • ng-class的几种用法

    方法一 div div checker disabled checker 是CSS样式 selectAllButton是判断条件 值为 true or false 方法二 div div item disab是判断条件 值为 true or
  • linux rootfs制作

    作一个嵌入式Linux rootfs 并且实现 web 服务 1 文件系统简介 理论上说一个嵌入式设备如果内核能够运行起来 且不需要运行用户进程的话 是不需要文件系统的 文件系统简单的说就是一种目录结构 由于 linux操作系统的设备在系统
  • 数组切片[1::2]怎么理解

    python中数组切片 在数组a中 有三个地方可以设置参数a 位置 列表初始索引 默认为0 位置 列表结束索引 默认到最后一个元素 包含最后一个元素 位置 为步长 默认为1 a np arange 1 10 print a 1 2 3 4
  • kafka创建话题遇到的错误

    确定Kafka安装和启动正确 ZooKeeper可以查到所有的Brokers 但执行 kafka topics sh create zookeeper localhost 2181 replication factor 3 partitio
  • Linux iperf3:网络性能测试工具

    文章目录 iperf3简介 安装 详细命令参数 Server 端参数 Client 端参数 示例 服务端 先启动 客户端 iperf3简介 iPerf3是用于主动测试IP网络上最大可用带宽的工具 它支持时序 缓冲区 协议 TCP UDP S