iperf3 网络性能测试

iperf3测试

1、iperf3简介

iperf3是一个主动测试网络带宽的工具,可以测试iTCP、UDP、SCTP等网络带宽;可以通过参数修改网络协议、缓冲区、测试时间、数据大小等,每个测试结果会得出吞吐量、带宽、重传数、丢包数等测试结果

2、参数详解

通用参数:

  • -v, --version,显示版本信息并退出;
  • -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 模式输出结果;
  • -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 位计数器(防止计数器溢出)。
3、安装使用
#在线使用下面指令可以安装iperf3工具
ccc@ccc:~$sudo apt install iperf3

测试用例

服务端

robot@robot:~$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.4.110, port 50512
[  5] local 192.168.4.77 port 5201 connected to 192.168.4.110 port 50518
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec   573 KBytes  4.69 Mbits/sec                  
[  5]   1.00-2.00   sec   498 KBytes  4.08 Mbits/sec                  
[  5]   2.00-3.00   sec   433 KBytes  3.54 Mbits/sec                  
[  5]   3.00-4.00   sec   519 KBytes  4.25 Mbits/sec                  
[  5]   4.00-5.00   sec   592 KBytes  4.85 Mbits/sec                  
[  5]   5.00-6.00   sec   568 KBytes  4.66 Mbits/sec                  
[  5]   6.00-7.00   sec   632 KBytes  5.18 Mbits/sec                  
[  5]   7.00-8.00   sec   559 KBytes  4.58 Mbits/sec                  
[  5]   8.00-9.00   sec   583 KBytes  4.77 Mbits/sec                  
[  5]   9.00-10.00  sec   684 KBytes  5.61 Mbits/sec                  
[  5]  10.00-10.09  sec  80.6 KBytes  7.11 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.09  sec  6.10 MBytes  5.07 Mbits/sec    6             sender
[  5]   0.00-10.09  sec  5.59 MBytes  4.64 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

客户端

tcp网络协议测试

ccc@ccc:~$ iperf3 -c 192.168.4.77
Connecting to host 192.168.4.77, port 5201
[  4] local 172.17.145.18 port 43830 connected to 192.168.4.77 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   954 KBytes  7.82 Mbits/sec    0   62.2 KBytes
[  4]   1.00-2.00   sec   608 KBytes  4.98 Mbits/sec    0   87.7 KBytes
[  4]   2.00-3.00   sec   547 KBytes  4.48 Mbits/sec    1   72.1 KBytes
[  4]   3.00-4.00   sec   486 KBytes  3.98 Mbits/sec    0   87.7 KBytes
[  4]   4.00-5.00   sec   608 KBytes  4.98 Mbits/sec    0   96.2 KBytes
[  4]   5.00-6.00   sec   547 KBytes  4.48 Mbits/sec    3   49.5 KBytes
[  4]   6.00-7.00   sec   669 KBytes  5.48 Mbits/sec    0   58.0 KBytes
[  4]   7.00-8.00   sec   547 KBytes  4.48 Mbits/sec    2   46.7 KBytes
[  4]   8.00-9.00   sec   547 KBytes  4.48 Mbits/sec    0   58.0 KBytes
[  4]   9.00-10.00  sec   730 KBytes  5.98 Mbits/sec    0   62.2 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  6.10 MBytes  5.12 Mbits/sec    6             sender
[  4]   0.00-10.00  sec  5.59 MBytes  4.69 Mbits/sec                  receiveriperf Done.
  • [ ID]:这是测试会话的唯一标识符,此处为数字4,表示这是第四个测试会话。
  • Interval:测试的时间区间,从0.00秒开始,持续到10.00秒结束。
  • Transfer:在指定时间范围内传输的数据总量。发送端传输了大约6.10 MBytes(兆字节)的数据,接收端接收了大约5.59 MBytes的数据。
  • Bandwidth:数据传输的带宽,即每秒传输的数据量。发送端的带宽为5.12 Mbits/sec(兆比特每秒),接收端的带宽为4.69 Mbits/sec。
  • Retr:重传次数,出现在发送端的信息中,此处为6,表示在测试期间发送端有6次数据包需要重传。

在这次10秒的网络性能测试中,发送端以大约5.12兆比特每秒的带宽传输数据,共传输了6.10兆字节,期间发生了6次数据包重传。接收端则以大约4.69兆比特每秒的带宽接收了5.59兆字节的数据。这表明网络连接存在一定的丢包和带宽波动,需要进一步排查网络质量或设备性能问题。

udp网络协议测试

ccc@ccc:~$ iperf3 -u -b 50M -c 192.168.4.77
Connecting to host 192.168.4.77, port 5201
[  4] local 172.17.145.18 port 2307 connected to 192.168.4.77 port 5201
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.00   sec  5.41 MBytes  45.4 Mbits/sec  693
[  4]   1.00-2.00   sec  5.96 MBytes  50.0 Mbits/sec  763
[  4]   2.00-3.00   sec  5.97 MBytes  50.1 Mbits/sec  764
[  4]   3.00-4.00   sec  5.96 MBytes  50.0 Mbits/sec  763
[  4]   4.00-5.00   sec  5.95 MBytes  49.9 Mbits/sec  761
[  4]   5.00-6.00   sec  5.97 MBytes  50.1 Mbits/sec  764
[  4]   6.00-7.00   sec  5.95 MBytes  49.9 Mbits/sec  761
[  4]   7.00-8.00   sec  5.98 MBytes  50.1 Mbits/sec  765
[  4]   8.00-9.00   sec  5.95 MBytes  49.9 Mbits/sec  761
[  4]   9.00-10.00  sec  5.95 MBytes  49.9 Mbits/sec  762
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.00  sec  59.0 MBytes  49.5 Mbits/sec  0.000 ms  0/0 (0%)
[  4] Sent 0 datagramsiperf Done.
  • Jitter:表示数据包传输延迟的变化情况,数值为0.000毫秒,表示数据包之间的延迟非常稳定;
  • Lost/Total Datagrams:表示丢失率,为0%,即所有发送的数据包都成功到达了目的地;
  • 专属学习链接:https://xxetb.xetslk.com/s/36yiy3

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab方程组拟合【案例源码+视频教程】

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法,并提供所有案例完整源码;2.…

【玩转PGSQL】源码安装 pgsql

源码安装配置 centos7 源码安装 postgresql 基础环境优化 systemctl stop firewalld.service systemctl disable firewalld.service #查看selinux getenforce #关闭selinux setenforce 0 #永久关闭selinux sed -i s#SELINUXenforcing#SELINUXdisabled#g /etc/selinu…

Qt mysql数据库表的增加,删除,修改,查询操作

连接mysql数据库 bool MainWindow::connectToDatabase(QSqlDatabase &db, const QString &host, const QString &dbName, const QString &user, const QString &password) {db QSqlDatabase::addDatabase("QMYSQL");db.setHostName(host);db.s…

OpenHarmony轻量系统开发【6】驱动之ADC按键

摘要:本文简单介绍如何操作ADC去读取电压,并且实现开发板上3个ADC按键检测的功能 适合群体:适用于润和Hi3861开发板,L0轻量系统驱动开发 文中所有代码仓库:https://gitee.com/qidiyun/hihope-3861-smart-home-kit 6…

如何识别伪装IP的网络攻击

伪装IP的网络攻击是一种通过篡改或伪造IP地址,冒充合法用户或服务器,发起恶意网络请求的攻击方式。这种攻击具有极强的隐蔽性,使得受害者在遭受攻击后难以找到真实的攻击者。为了识别伪装IP的网络攻击,我们可以采取以下几种方法&a…

yolov8调用zed实现三维跟踪测速

YOLOV8 + 双目实现三维跟踪测速 1. 相关工作2. 测速流程和原理(必读)3. 代码部分解析3.1 测距部分3.2 测速部分3.3 绘制轨迹3.4 主代码4. 实验结果5. 源码下载源码下载链接见文章末尾 1. 相关工作 本代码是在双目测距的基础上完成的,具体内容可见: yolov8直接调用zed相机…

代码随想录-哈希表 | 349 两个数组的交集

代码随想录-哈希表 | 349 两个数组的交集 LeetCode 349-两个数组的交集解题思路代码复杂度难点总结 LeetCode 349-两个数组的交集 题目链接 题目描述 给定两个数组 nums1 和 nums2 ,返回它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的…

C语言处理流程

C语言对源代码处理的四个步骤: 预处理 -> 编译 -> 汇编 -> 链接 预处理 (gcc -E hello.c -o hello.i) 宏定义展开、头文件展开、条件编译,(这里并不会检查语法) 编译 (gcc -S hello.i -o hello.s) 检查语法,将预处理后文件编译生成汇编文件…

SpringBoot中使用Jackson序列化返回

SpringBoot中使用Jackson序列化返回 在Spring Boot应用中,使用Jackson库来处理JSON的序列化和反序列化是一种常见的做法。Jackson是一个高效的JSON处理器,广泛用于Java环境中,尤其是在与Spring框架集成时。本文将详细介绍如何在Spring Boot中…

ubuntu18.04安装F4PGA教程

环境搭建教程: f4pga-arch-defs/xilinx/xc7 at main f4pga/f4pga-arch-defs GitHub git clone https://github.com/SymbiFlow/f4pga-arch-defs.git cd f4pga-arch-defs make env cd build 主要是make env,会下载很多东西,然后生成很多描…

数据结构·一篇搞定顺序表!

大家好啊,几日不见,甚是想念,从这一篇文章开始,我们就要进入数据结构了哦,那么我们废话不多说,今天我们一起来搞定顺序表!!! 1. 顺序表概念及结构 顺序表是一种线性结…

VBA脚本终章编译器崩溃

一、介绍 本篇文章为VBA脚本隐藏技术的最后一篇,将介绍如何在保证VBA脚本正常执行的情况下,使分析人员无法打开编译器。 那么为什么需要分析人员无法打开编译器呢? 首先,我们需要引入一个知识点。 在上篇《VBA隐藏技术stompin…

系统思考—战略

“有策略而无战术,是取胜之最慢之道。有战术而无策略,是败亡之前的嘈杂。”—孙子 最近接触的中小企业,充分能感受到在经济下行的情况下,组织与战略是不可分割的两个方面。有时候公司组织出现了问题,可能是因为战略不…

maven3.9的settings.xml 内容学习

settings.xml 文件介绍 settings.xml 是 Maven 的配置文件,它允许你自定义 Maven 的行为,比如设置仓库、代理、认证信息等。在 Maven 3.9 中,settings.xml 的结构和内容可能与之前的版本相似,但可能会有一些小的改进或变化。下面…

单分支:if语句

示例&#xff1a; /*** brief how about if? show you here.* author wenxuanpei* email 15873152445163.com(query for any question here)*/ #define _CRT_SECURE_NO_WARNINGS//support c-library in Microsoft-Visual-Studio #include <stdio.h>#define if_state…

MoJoCo 入门教程(七)XML 参考

系列文章目录 前言 表格第二列中的符号含义如下&#xff1a; ! 必填元素&#xff0c;只能出现一次 ? 可选元素&#xff0c;只能出现一次 * 可选元素&#xff0c;可多次出现 R 可选元素&#xff0c;可递归出现多次 一、简介 本章是 MuJoCo 中使用的 MJCF 建模语言的参考手册。…

Scala---集合(list,set)详解

一、List list集合有顺序&#xff0c;有索引&#xff0c;元素可重复 1、Nil 空列表 val lstNilprintln(Nil)//List()//向左侧添加一个元素,::起到右连接的作用。val lst18::(4::(0::Nil))println(lst1)//List(8, 4, 0)2、创建集合 //调用apply方法进行创建val list List(1,…

【投稿优惠|稳定检索】2024年低碳发展与地球科学国际会议 (LCDES 2024)

2024年低碳发展与地球科学国际会议 (LCDES 2024) 2024 International Conference on Low Carbon Development and Earth Science 【会议简介】 2024年低碳发展与地球科学国际会议即将在长沙盛大召开。本次会议将汇聚全球低碳发展与地球科学领域的专家学者&#xff0c;共同探讨…

如何快速成为顶尖项目经理?新手必看!

当今社会&#xff0c;万事皆项目&#xff0c;企业也面临着各种变化&#xff0c;企业项目管理的能力和水平对组织和个人的核心竞争力有着重要影响。 作为项目经理&#xff0c;需要养成持续学习的习惯和能力&#xff0c;具备顶级项目经理的专业水平和素养&#xff0c;才能使自己…

登录解析(前端)

登录代码 1、登录之后做了什么&#xff1f; 执行登陆方法&#xff0c;成功之后&#xff0c;路由跳转到指定路径或者根目录 2、this.$store.dispatch是什么意思&#xff1f; this.$store.dispatch(‘Login’, this.loginForm) 来调取store里的user.js的login方法3、this.$r…