网络性能测试工具:iperf3介绍
文章目录
- 前言
- 一、iperf3 的安装和使用
- 下载和安装
- 参数说明
- 二、iperf3 测试
- 服务端启动
- 客户端启动
- 服务端输出
- 反向测试
- 客户端
- 服务端
前言
新接触的网络环境如何评估网络带宽和吞吐量呢,有的项目没有对业务流量进行合理规划,服务或者中间件出口带宽经常有被打满的情况。所以提前预测网络带宽的瓶颈还是非常有必要的。
ipef3工具,是一个用于测试网络带宽的开源工具,用于评估网络的性能和吞吐量,他是iperf工具的第三个版本。
一、iperf3 的安装和使用
下载和安装
官网链接: https://iperf.fr/
iperf3支持Windows和Linux版本,Windows是直接编译好的exe文件,Linux一般是rpm包,可以通过yum源安装。
windows 下载连接: https://files.budman.pw/ 下载后解压,在cmd或者gitbash窗口可以启动。
Linux 通过 yum install iperf3 直接安装。
参数说明
-
-c, --client <server_hostname>:指定客户端模式,连接到指定的服务器。
-
-s, --server:指定服务器模式,启动 iPerf3 服务器。
-
-p, --port :指定服务器监听的端口号,默认为 5201。
-
-t, --time
-
-i, --interval :设置报告输出的间隔时间,单位为秒,默认为 1 秒。
-
-w, --window <window_size>:设置 TCP 窗口大小,单位为字节,默认为 128KB。
-
-b, --bandwidth :限制带宽,单位为比特每秒(bps)。
-
-u, --udp:使用 UDP 协议进行测试,默认TCP协议。
-
-l, --len :设置 UDP 数据包的长度,单位为字节,默认为 1460 字节。
-
-n, --bytes :设置要发送的字节数,可以与 -t 参数一起使用。
-
-P, --parallel :指定并发连接数,可以同时进行多个连接。
-
-R, --reverse:反向测试,客户端变为服务器,服务器变为客户端。
-
-V, --IPv6:使用 IPv6 地址。
-
-h, --help:显示帮助信息。
二、iperf3 测试
现在我们分别在Windows端和Linux端安装了iperf3软件。
Windows主机 (192.168.37.1) 客户端
Linux主机(192.168.37.100) 服务端
服务端启动
[root@work ~]# iperf3 -s -p 5222
-----------------------------------------------------------
Server listening on 5222
-----------------------------------------------------------
-s 表示服务器端 -p 指定服务端监听端口
客户端启动
$ ./iperf3.exe -c 192.168.37.100 -p 5222 -t 10 -i 1
Connecting to host 192.168.37.100, port 5222
[ 4] local 192.168.37.1 port 13957 connected to 192.168.37.100 port 5222
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 315 MBytes 2.64 Gbits/sec
[ 4] 1.00-2.00 sec 349 MBytes 2.93 Gbits/sec
[ 4] 2.00-3.00 sec 304 MBytes 2.55 Gbits/sec
[ 4] 3.00-4.00 sec 332 MBytes 2.78 Gbits/sec
[ 4] 4.00-5.00 sec 335 MBytes 2.81 Gbits/sec
[ 4] 5.00-6.00 sec 352 MBytes 2.95 Gbits/sec
[ 4] 6.00-7.00 sec 367 MBytes 3.07 Gbits/sec
[ 4] 7.00-8.00 sec 367 MBytes 3.08 Gbits/sec
[ 4] 8.00-9.00 sec 339 MBytes 2.84 Gbits/sec
[ 4] 9.00-10.00 sec 318 MBytes 2.67 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 3.30 GBytes 2.83 Gbits/sec sender
[ 4] 0.00-10.00 sec 3.30 GBytes 2.83 Gbits/sec receiveriperf Done.
-c 表示客户端
-p 5222 指定服务端口
-t 10 测试持续时间
-i 1 设置报告输出的间隔时间。
服务端输出
[root@work ~]# iperf3 -s -p 5222
-----------------------------------------------------------
Server listening on 5222
-----------------------------------------------------------
Accepted connection from 192.168.37.1, port 13956
[ 5] local 192.168.37.100 port 5222 connected to 192.168.37.1 port 13957
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 301 MBytes 2.52 Gbits/sec
[ 5] 1.00-2.00 sec 348 MBytes 2.92 Gbits/sec
[ 5] 2.00-3.00 sec 304 MBytes 2.55 Gbits/sec
[ 5] 3.00-4.00 sec 333 MBytes 2.79 Gbits/sec
[ 5] 4.00-5.00 sec 338 MBytes 2.83 Gbits/sec
[ 5] 5.00-6.00 sec 349 MBytes 2.93 Gbits/sec
[ 5] 6.00-7.00 sec 366 MBytes 3.07 Gbits/sec
[ 5] 7.00-8.00 sec 366 MBytes 3.07 Gbits/sec
[ 5] 8.00-9.00 sec 344 MBytes 2.89 Gbits/sec
[ 5] 9.00-10.00 sec 317 MBytes 2.66 Gbits/sec
[ 5] 10.00-10.04 sec 11.4 MBytes 2.42 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.04 sec 3.30 GBytes 2.82 Gbits/sec receiver
-----------------------------------------------------------
Server listening on 5222
-----------------------------------------------------------
结果查看,主要是看 receiver Bindwidth达到的的值。
反向测试
服务端启动方式不变,客户端在原来启动命令基础上,增加-R 参数就是客户端和服务器将对调过来。
客户端
$ ./iperf3.exe -c 192.168.37.100 -p 5222 -t 10 -i 1 -R
Connecting to host 192.168.37.100, port 5222
Reverse mode, remote host 192.168.37.100 is sending
[ 4] local 192.168.37.1 port 9562 connected to 192.168.37.100 port 5222
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 106 MBytes 892 Mbits/sec
[ 4] 1.00-2.00 sec 106 MBytes 886 Mbits/sec
[ 4] 2.00-3.00 sec 105 MBytes 877 Mbits/sec
[ 4] 3.00-4.00 sec 97.9 MBytes 822 Mbits/sec
[ 4] 4.00-5.00 sec 89.4 MBytes 750 Mbits/sec
[ 4] 5.00-6.00 sec 74.6 MBytes 625 Mbits/sec
[ 4] 6.00-7.00 sec 71.9 MBytes 603 Mbits/sec
[ 4] 7.00-8.00 sec 68.0 MBytes 571 Mbits/sec
[ 4] 8.00-9.00 sec 69.1 MBytes 580 Mbits/sec
[ 4] 9.00-10.00 sec 69.4 MBytes 582 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 857 MBytes 719 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 857 MBytes 719 Mbits/sec receiveriperf Done.
服务端
[root@work ~]# iperf3 -s -p 5222
-----------------------------------------------------------
Server listening on 5222
-----------------------------------------------------------
Accepted connection from 192.168.37.1, port 9561
[ 5] local 192.168.37.100 port 5222 connected to 192.168.37.1 port 9562
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 5] 0.00-1.02 sec 105 MBytes 863 Mbits/sec 0 218 KBytes
[ 5] 1.02-2.01 sec 105 MBytes 884 Mbits/sec 0 218 KBytes
[ 5] 2.01-3.01 sec 105 MBytes 878 Mbits/sec 0 218 KBytes
[ 5] 3.01-4.02 sec 98.2 MBytes 820 Mbits/sec 0 218 KBytes
[ 5] 4.02-5.02 sec 89.5 MBytes 753 Mbits/sec 0 218 KBytes
[ 5] 5.02-6.02 sec 75.0 MBytes 628 Mbits/sec 0 218 KBytes
[ 5] 6.02-7.03 sec 73.0 MBytes 603 Mbits/sec 0 218 KBytes
[ 5] 7.03-8.03 sec 67.5 MBytes 571 Mbits/sec 0 218 KBytes
[ 5] 8.03-9.03 sec 69.5 MBytes 579 Mbits/sec 0 218 KBytes
[ 5] 9.03-10.02 sec 68.8 MBytes 582 Mbits/sec 0 218 KBytes
[ 5] 10.02-10.04 sec 1.25 MBytes 562 Mbits/sec 0 218 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.04 sec 857 MBytes 716 Mbits/sec 0 sender
[ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec receiver
-----------------------------------------------------------
Server listening on 5222
-----------------------------------------------------------
这里,服务端结果,看sender 这一行,这次服务端是发送端。带宽716Mbits/sec
相关文章:
网络性能测试工具:iperf3介绍
文章目录 前言一、iperf3 的安装和使用下载和安装参数说明 二、iperf3 测试服务端启动客户端启动服务端输出反向测试客户端服务端 前言 新接触的网络环境如何评估网络带宽和吞吐量呢,有的项目没有对业务流量进行合理规划,服务或者中间件出口带宽经常有被…...
scp:Linux系统本地与远程文件传输命令
scp 是Linux系统中用于在本地主机和远程主机之间进行文件传输的命令。 详细说明: scp 命令用于安全地将文件从一个主机传输到另一个主机,所有传输数据都是加密的。语法: scp [参数] [源文件路径] [目标主机:目标路径] 参数说明:…...
python基础(习题、资料)
免费提取资料: 练习、资料免费提取。持续更新迅雷云盘https://pan.xunlei.com/s/VNz6kH1EXQtK8j-wwwz_c0k8A1?pwdrj2x# 本文为Python的进阶知识合辑,包括列表(List)、元组(Tuple)、字典(Dic…...
shell脚本免交互
shell脚本的编写一方面为了减少我们命令的输入,另一方面也可以进行简单的自动化运行,其中为了实现自动化过程,一个很重要的点就是免交互,本篇文章跟大家简单分享两个常用的免交互的方法。 Here Document Here document 通过内联重…...
WPF学习笔记:给文字添加线性渐变效果
<TextBox Text"XXX信息管理系统" VerticalAlignment"Center" Background"Transparent" HorizontalAlignment"Center" FontSize"35" FontWeight"Normal"> <TextBox.Effect> <…...
Fully Convolutional Networks for Semantic Segmentation--论文笔记
论文笔记 资料 1.代码地址 2.论文地址 https://arxiv.org/abs/1411.4038 3.数据集地址 论文摘要的翻译 卷积网络是强大的视觉模型,可以产生特征层次结构。我们表明,卷积网络本身,经过端到端,像素对像素的训练,在…...
Camworks编程怎么样:深度解析其四大特点、五大应用领域、六大优势与七大挑战
Camworks编程怎么样:深度解析其四大特点、五大应用领域、六大优势与七大挑战 Camworks编程,作为计算机辅助制造(CAM)领域的一款重要软件,近年来在制造业中得到了广泛的应用。那么,Camworks编程究竟怎么样呢…...
【Linux】操作系统之冯诺依曼体系
🎉博主首页: 有趣的中国人 🎉专栏首页: Linux 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 操作系统中 冯诺依曼体系 的相关内容。 如果看到最后您觉得这篇文…...
c++ QT 实现QMediaPlayer播放音频显示音频级别指示器
文章目录 效果图概述代码总结 效果图 概述 QMediaPlayer就不介绍了,就提供了一个用于播放音频和视频的媒体播放器 QAudioProbe 它提供了一个探针,用于监控音频流。当音频流被捕获或播放时,QAudioProbe 可以接收到音频数据。这个类在需要访问…...
失之毫厘差之千里之load和loads
起源 最近在读pandas库的一些文档的时候,顺便也会将文档上的一些demo在编辑器中进行运行测试,其中在读到pandas处理Json数据这一节的时候,我还是像往常一样,将文档提供的demo写一遍,结果在运行的时候,直接…...
element ui在移动端的适配问题
element ui在移动端的适配问题 问题1: 给el-table表头添加背景色,使用以下代码 :header-row-style“{ background: ‘linear-gradient(90deg, #0079FA 0%, #00C7DD 100%)’ }” 在安卓手机上显示正常,在ios手机上显示背景色添加到每一个th中…...
堆排序详细理解
目录 一、前备知识 二、建堆 2.2.1 向上调整算法建堆 2.2.2 向下调整算法建堆 三、排序 3.1 常见问题 3.2 思路 3.3 源码 一、前备知识 详细图解请点击:二叉树的顺序实现-堆-CSDN博客 本文只附上向上/向下调整算法的源码 //交换 void Swap(int* p, int* …...
RK3588+FPGA+AI高性能边缘计算盒子,应用于视频分析、图像视觉等
搭载RK3588(四核 A76四核 A55),CPU主频高达 2.4GHz ,提供1MB L2 Cache 和 3MB L3 ,Cache提供更强的 CPU运算能力,具备6T AI算力,可扩展至38T算力。 产品规格 系统主控CPURK3588,四核…...
07-操作元素(键盘和鼠标事件)
在前面的文章中重点介绍了一些元素的定位方法,定位到元素后,就需要操作元素了。本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件。 一、简单操作 点击按钮(鼠标左键):click()清空输入框&…...
3389,为了保障3389端口的安全,我们可以采取的措施
3389端口,作为远程桌面协议(RDP)的默认端口,广泛应用于Windows操作系统中,以实现远程管理和控制功能。然而,正因为其广泛使用,3389端口也成为许多潜在安全威胁的入口。因此,确保3389…...
Java集合【超详细】2 -- Map、可变参数、Collections类
文章目录 一、Map集合1.1 Map集合概述和特点【理解】1.2 Map集合的基本功能【应用】1.3 Map集合的获取功能【应用】1.4 Map集合的两种遍历方式 二、HashMap集合2.1 HashMap集合概述和特点【理解】2.2 HashMap的组成、构造函数2.3 put、查找方法2.4 HashMap集合应用案例【应用】…...
最佳 Mac 数据恢复:恢复 Mac 上已删除的文件
尝试过许多 Mac 数据恢复工具,但发现没有一款能达到宣传的效果?我们重点介绍最好的 Mac 数据恢复软件 没有 Mac 用户愿意担心数据丢失,但您永远不知道什么时候会发生这种情况。无论是意外删除 Mac 上的重要文件、不小心弄湿了 Mac、感染病毒…...
芋道系统,springboot+vue3+mysql实现地址的存储与显示
1.效果图 2.前端实现: <el-form-item label"地址" prop"entrepriseAddress"><el-cascaderv-model"formData.entrepriseAddress"size"large":options"region"/></el-form-item> //导入组件 im…...
【C++】C++11新特性:列表初始化、声明、新容器、右值引用、万能引用和完美转发
目录 一、列表初始化 1.1 { } 初始化 1.2 std::initializer_list 二、声明 2.1 auto 2.2 decltype 2.3 nullptr 三、新容器 四、右值引用和移动语义 4.1 左值和左值引用 4.2 右值和右值引用 4.3 左值引用与右值引用比较 4.4 右值引用使用场景和意义:移…...
【IB Protocal Serial--WQE】
IB Protocal Serial--WQE 1 Intro1.1 What1.2 IBA WQE 本系列文章介绍RDMA技术的具体实现–InfiniBand Protocal; Introduce the features, capalities,components, and elements of IBA. the principles of operation. 1 Intro 1.1 What 理解IB协议下面这三句话对…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
CppCon 2015 学习:Reactive Stream Processing in Industrial IoT using DDS and Rx
“Reactive Stream Processing in Industrial IoT using DDS and Rx” 是指在工业物联网(IIoT)场景中,结合 DDS(Data Distribution Service) 和 Rx(Reactive Extensions) 技术,实现 …...
当下AI智能硬件方案浅谈
背景: 现在大模型出来以后,打破了常规的机械式的对话,人机对话变得更聪明一点。 对话用到的技术主要是实时音视频,简称为RTC。下游硬件厂商一般都不会去自己开发音视频技术,开发自己的大模型。商用方案多见为字节、百…...
Shell 解释器 bash 和 dash 区别
bash 和 dash 都是 Unix/Linux 系统中的 Shell 解释器,但它们在功能、语法和性能上有显著区别。以下是它们的详细对比: 1. 基本区别 特性bash (Bourne-Again SHell)dash (Debian Almquist SHell)来源G…...
可下载旧版app屏蔽更新的app市场
软件介绍 手机用久了,app越来越臃肿,老手机卡顿成常态。这里给大家推荐个改善老手机使用体验的方法,还能帮我们卸载不需要的app。 手机现状 如今的app不断更新,看似在优化,实则内存占用越来越大,对手机性…...
【芯片仿真中的X值:隐藏的陷阱与应对之道】
在芯片设计的世界里,X值(不定态)就像一个潜伏的幽灵。它可能让仿真测试顺利通过,却在芯片流片后引发灾难性后果。本文将揭开X值的本质,探讨其危害,并分享高效调试与预防的实战经验。 一、X值的本质与致…...
