iperf

文章目录

  • 1.安装
    • 1.1在 Ubuntu 上安装
    • 1.2在 CentOS 上安装
  • 2.iperf服务端选项
  • 3.iperf客户端选项
  • 4.iperf常用命令
  • 5.结果展示
    • 5.1 tcp结果展示
    • 5.2 udp结果展示

Iperf是一款基于TCP/IP和UDP/IP的网络性能测试工具,它可以用来测量网络带宽和网络质量,还可以提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。

1.安装

1.1在 Ubuntu 上安装

sudo apt-get update
sudo apt-get install iperf3

1.2在 CentOS 上安装

sudo yum install iperf3

2.iperf服务端选项

选项说明
-s以服务器模式启动 iperf3
-p指定服务器监听的端口(默认是 5201)。
-B绑定到指定的IP地址。
-V启用 IPv6 支持。
-D以守护进程模式运行服务器。
-1处理一个客户端连接后退出。
--logfile将日志输出写入指定文件。
--pidfile将进程 ID 写入指定文件。
--bind-dev绑定到指定的网络设备。
--time在指定时间内进行测试(默认 10 秒)。
--json输出结果为 JSON 格式。
--reverse反向测试,从客户端到服务器进行数据传输(服务器模式下使用)。
--udp使用 UDP 协议而不是默认的 TCP 协议。
--interval指定结果报告的间隔时间(单位:秒)。
--version显示 iperf3 的版本信息。
-h, --help显示帮助信息并退出。

3.iperf客户端选项

选项说明
-c指定服务器的 IP 地址或主机名。
-p指定服务器监听的端口(默认是 5201)。
-B绑定到指定的本地 IP 地址。
-V启用 IPv6 支持。
-u使用 UDP 而不是 TCP 进行测试。
-b指定带宽(默认使用 TCP 时为最大带宽,使用 UDP 时为 1 Mbps)。
-t指定测试持续时间(单位:秒,默认是 10 秒)。
-i指定报告的间隔时间(单位:秒)。
-f指定报告格式(k/M/G,表示千字节/兆字节/千兆字节)。
-w指定 TCP 窗口大小。
-P指定并发流的数量。
-R进行反向测试,从服务器到客户端传输数据。
-d双向测试,同时进行上行和下行传输测试。
-L绑定到指定的本地端口。
-M指定 TCP 最大段大小(MSS)。
-N设置 TCP 无延迟(禁用 Nagle 算法)。
-S设置服务类型(TOS)或差分服务代码点(DSCP)。
-T设置连接的标题。
-Z启用压缩。
--logfile将日志输出写入指定文件。
--get-server-output获取服务器端的输出并显示在客户端的控制台上。
--json输出结果为 JSON 格式。
--version显示 iperf3 的版本信息。
-h, --help显示帮助信息并退出。

4.iperf常用命令

1. 基本的 TCP 测试
iperf3 -c server_ip -p 5201 -t 302. 使用 UDP 进行测试并指定带宽
iperf3 -c server_ip -u -b 10M -t 303. 双向测试,同时进行上行和下行传输测试
iperf3 -c server_ip -d -t 304. 进行反向测试,从服务器到客户端传输数据
iperf3 -c server_ip -R -t 305. 多流测试,使用 5 个并发流
iperf3 -c server_ip -P 5 -t 306. 指定报告的间隔时间为 2 秒
iperf3 -c server_ip -i 2 -t 307. 设置 TCP 窗口大小为 64K
iperf3 -c server_ip -w 64K -t 308. 设置连接的标题为 "Test Connection"
iperf3 -c server_ip -T "Test Connection" -t 309. 绑定到本地指定的 IP 地址
iperf3 -c server_ip -B local_ip -t 3010. 绑定到本地指定的端口
iperf3 -c server_ip -L 12345 -t 3011. 启用压缩传输
iperf3 -c server_ip -Z -t 3012. 输出结果为 JSON 格式
iperf3 -c server_ip --json -t 3013. 将日志输出写入指定文件
iperf3 -c server_ip --logfile /path/to/logfile -t 3014. 获取服务器端的输出并显示在客户端的控制台上
iperf3 -c server_ip --get-server-output -t 3015. 使用 IPv6 进行测试
iperf3 -c server_ip -V -t 3016. 指定服务类型(TOS)为 0x20
iperf3 -c server_ip -S 0x20 -t 3017. 指定 TCP 最大段大小(MSS)为 1460
iperf3 -c server_ip -M 1460 -t 3018. 设置客户端测试持续时间为 60 秒,报告间隔为 5 秒,并使用 3 个并发流
iperf3 -c server_ip -t 60 -i 5 -P 319. 使用 UDP 进行带宽为 5 Mbps 的测试,报告间隔为 1 秒,测试持续时间为 20 秒,输出结果为 JSON 格式
iperf3 -c server_ip -u -b 5M -t 20 -i 1 --json20. 在本地 IP 地址上启动服务端,并将日志输出写入指定文件
iperf3 -s -B local_ip --logfile /path/to/logfile

5.结果展示

5.1 tcp结果展示

$ iperf3 -c 192.168.1.1 -t 10
Connecting to host 192.168.1.1, port 5201
[  4] local 192.168.1.2 port 58712 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  112 MBytes   938 Mbits/sec    0    1.38 MBytes       
[  4]   1.00-2.00   sec  112 MBytes   939 Mbits/sec    0    1.38 MBytes       
[  4]   2.00-3.00   sec  112 MBytes   938 Mbits/sec    0    1.38 MBytes       
[  4]   3.00-4.00   sec  112 MBytes   939 Mbits/sec    0    1.38 MBytes       
[  4]   4.00-5.00   sec  112 MBytes   938 Mbits/sec    0    1.38 MBytes       
[  4]   5.00-6.00   sec  112 MBytes   939 Mbits/sec    0    1.38 MBytes       
[  4]   6.00-7.00   sec  112 MBytes   938 Mbits/sec    0    1.38 MBytes       
[  4]   7.00-8.00   sec  112 MBytes   939 Mbits/sec    0    1.38 MBytes       
[  4]   8.00-9.00   sec  112 MBytes   938 Mbits/sec    0    1.38 MBytes       
[  4]   9.00-10.00  sec  112 MBytes   939 Mbits/sec    0    1.38 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.10 GBytes  938 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.10 GBytes  938 Mbits/sec                  receiveriperf Done.

TCP 测试结果

  • Connecting to host 192.168.1.1, port 5201 表示客户端正在连接指定的服务器和端口。
  • Transfer 显示传输的数据量。
  • Bandwidth 显示带宽(传输速率)。
  • Retr 表示传输过程中重传的次数。
  • Cwnd 表示拥塞窗口的大小。
  • Interval 显示测试的时间间隔。
  • sender 和 receiver 表示发送方和接收方的汇总结果。

5.2 udp结果展示

$ iperf3 -c 192.168.1.1 -u -b 100M -t 10
Connecting to host 192.168.1.1, port 5201
[  4] local 192.168.1.2 port 58714 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.00   sec  11.9 MBytes   100 Mbits/sec  855  
[  4]   1.00-2.00   sec  11.9 MBytes   100 Mbits/sec  855  
[  4]   2.00-3.00   sec  11.9 MBytes   100 Mbits/sec  855  
[  4]   3.00-4.00   sec  11.9 MBytes   100 Mbits/sec  855  
[  4]   4.00-5.00   sec  11.9 MBytes   100 Mbits/sec  855  
[  4]   5.00-6.00   sec  11.9 MBytes   100 Mbits/sec  855  
[  4]   6.00-7.00   sec  11.9 MBytes   100 Mbits/sec  855  
[  4]   7.00-8.00   sec  11.9 MBytes   100 Mbits/sec  855  
[  4]   8.00-9.00   sec  11.9 MBytes   100 Mbits/sec  855  
[  4]   9.00-10.00  sec  11.9 MBytes   100 Mbits/sec  855  
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.00  sec   119 MBytes   100 Mbits/sec  0.067 ms  0/8550 (0%)  
[  4] Sent 8550 datagramsiperf Done.

UDP 测试结果

  • Connecting to host 192.168.1.1, port 5201 表示客户端正在连接指定的服务器和端口。
  • Transfer 显示传输的数据量。
  • Bandwidth 显示带宽(传输速率)。
  • Total Datagrams 表示发送的总数据报文数。
  • Jitter 显示抖动(延迟变化)。
  • Lost/Total Datagrams 显示丢失的数据报文数和总数据报文数,以及丢包率。

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

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

相关文章

针对大模型的上下文注入攻击

大型语言模型(LLMs)的开发和部署取得了显著进展。例如ChatGPT和Llama-2这样的LLMs,利用庞大的数据集和Transformer架构,能够产生连贯性、上下文准确性甚至具有创造性的文本。LLMs最初和本质上是为静态场景设计的,即输入…

asio之winsock的初始化

简介 asio中,winsock初始化工作是放在winsock_init类中来处理的 类结构 #mermaid-svg-aC4x3cdr8TKGhsnX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-aC4x3cdr8TKGhsnX .error-icon{fill:#552222;}#…

Xilinx RFSOC 47DR 8收8发 信号处理板卡

系统资源如图所示:  FPGA采用XCZU47DR 1156芯片,PS端搭载一组64Bit DDR4,容量为4GB,最高支持速率:2400MT/s;  PS端挂载两片QSPI X4 FLASH;  PS支持一路NVME存储;  PS端挂载SD接口,用于存储程序&…

解决kettle界面右上角的connect消失——且使用admin登录不上Kettle资源库

一、问题描述 1.1、Kettle界面右上角的connect消失了 当我们配置Kettle界面的资源库(Other Repositories)内容后,Kettle界面右上角的connect消失了;如下图所示: 1.2、使用默认的账户【admin】和密码【admin】登录不上kettle资源库 当我们切换到我们配置的数据库使用超管账…

uniapp实现微信小程序调用云函数【vue3】

本人是从微信开发者工具写原生微信小程序一步一步走来,由于vue3框架的慢慢的步入前端市场,为了不被前端市场遗弃,果断从vue2开始步入vue3的学习,本人习惯在在HBuilder X写uniapp的项目,过去uniapp默认vue2框架&#xf…

注册北京个体工商户条件和办理时间

在北京这座充满活力的城市中,每天都有无数的创业者怀揣着梦想,踏上创业之路。然而,对于许多初次接触企业注册的人来说,往往对注册流程和时间感到困惑。特别是选择代理服务时,更希望了解一个大概的时间范围。那么&#…

WHAT - 容器化系列(二)- docker

目录 一、前言二、Docker镜像:可运行软件包三、Docker容器:可执行环境四、容器和镜像的关系五、创建镜像的过程5.1 编写Dockerfile5.2 构建Docker镜像5.3 查看构建的镜像5.4 运行Docker容器5.5 验证容器运行状态5.6 推送镜像到镜像仓库(可选&…

【案例实操】银河麒麟桌面操作系统实例分享,V10SP1重启后网卡错乱解决方法

1.问题现象 8 个网口, 命名从 eth1 开始到 eth8。 目前在系统 grub 里面加了 net.ifnames0 biosdevname0 参数, 然后在 udev 规则中加了一条固定网卡和硬件 pci 设备号的规则文件。 最后在 rc.local 中加了两条重新安装网卡驱动的命令( rmmod…

Spring 中如何控制 Bean 的加载顺序?

如果你脱口而出说添加 Order 注解或者是实现 Ordered 接口,那么恭喜,你掉坑了。 一 Order 注解和 Ordered 接口 在 Spring 框架中,Order 是一个非常实用的元注解,它位于 spring-core 包下,主要用于控制某些特定上下文…

【模型参数微调】最先进的参数高效微调 (PEFT) 方法

简介 由于大型预训练模型的规模,微调大型预训练模型的成本通常高得令人望而却步。参数高效微调 (PEFT) 方法只需微调少量(额外)模型参数而不是所有模型参数,即可使大型预训练模型有效地适应各种下游应用。这大大降低了计算和存储成本。最近最先进的PEFT技术实现了与完全…

git基本使用——回退,撤销add,commit,合并分支

学习笔记 笔记中表格中的—— 表示需要回退的地方,也就是使用命令之后会改变的地方 网页软件分享 这是一个非常好用web端笔记画图软件,解决了typora画图不方便的问题

TOP10-k8s-安全措施

TOP 1、镜像安全 镜像中存在什么? 镜像中存在打包后的code以及base image、tools 安全建议: 1、代码中非必须不使用任何多余的tools或者库。 2、尽量使用小而精且签名的base image. 3、推送到私有仓库前扫描 docker image.(可以集成在CI/CD的流水线中) 4…

模板-初阶

引言: 在C,我们已经学过了函数重载,这使得同名函数具有多个功能。但是还有一种更省力的方法:采用模板。 本文主要介绍以下内容 1. 泛型编程 2. 函数模板 3. 类模板 1.泛型编程 在将这一部分之前,通过一个故事引…

mysql中EXPLAIN详解

大家好。众所周知,MySQL 查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划,这个执行计划展示了接下来具体执行查询的方式。在日常工作过程中,我们可以使用EXPLAIN语句来查看某个查询语句的具体执行计划, 今天我们…

数据库索引的理解

目录 1.索引是什么,解决了什么问题 2.索引付出了什么代价 3.如何使用sql索引,有何注意事项 普通索引: 唯一索引: 主键索引(Primary Key Index): 删除索引: 创建主键索引的基本语法: 4.索引背后的数据结构 1.索…

数据结构严蔚敏版精简版-绪论

1.基本概念和术语 下列概念和术语将在以后各章节中多次出现,本节先对这些概念和术语赋予确定的含义。 数据(Data):数据是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号 的总称。 数据元素(DataElement):…

《Python学习》-- 实操篇一

一、文件操作 1. 1 读取文本文件 # 文件操作模式 # r (默认) - 只读模式。文件必须存在,否则会抛出FileNotFoundError。在这种模式下,你只能读取文件内容,不能写入或追加。 # w - 写入模式。如果文件存在,内容会被清空&#xff…

大模型日报2024-06-02

大模型日报 2024-06-02 大模型资讯 LLM360推出K2:开源大语言模型,计算效率超越Llama 2 70B 摘要: LLM360发布了K2,一款完全可复现的开源大语言模型。K2在计算效率上超越了Llama 2 70B,使用的计算能力减少了35%。这一突破性的模型为…

JAVA: 抽象类和接口

Java中可以可以定义不含方法体的方法,方法的方法体由其所在类的子类根据实际需求去实现,这样的方法称为抽象方法(Abstract Method),包含抽象方法的类必须是抽象类(Abstract Class)。 抽象方法和…

【架构设计】Java如何利用AOP实现幂等操作,防止客户端重复操作

1实现方案详解 在Java中,使用AOP(面向切面编程)来实现幂等操作是一个常见的做法,特别是当你想在不修改业务代码的情况下添加一些横切关注点(如日志、事务管理、安全性等)时。幂等操作指的是无论执行多少次,结果都是相同的操作。 为了利用AOP实现幂等操作以防止客户端重…