iperf网络性能测试工具

news/2024/5/8 23:03:18/文章来源:https://blog.csdn.net/weixin_43778179/article/details/137108219

iperf命令是一个网络性能测试工具,可以测试TCP和UDP带宽质量。同时也可以通过UDP测试报告网丢包率或者发包性能,是一个非常实用的工具

iperf安装:

可以直接通过官网下载对应系统版本进行安装(https://iperf.fr/iperf-download.php)

1.对于windows版的iPerf,直接将解压出来的iperf.exe和cygwin1.dll复制到%systemroot%目录即可

2.对于linux版的iPerf,请使用如下命令安装

rpm -ivh iperf-<version>.rpm

常用参数指南(详见附录):

-c/s:客户端模式/服务端模式

-p:指定iperf测试端口

-i:指定报告间隔

-b:设置UDP的发送带宽,单位bit/s

-t:设置测试的时长,单位为秒,不设置默认10s

-l:指定包大小,TCP默认8k,UDP默认1470字节

带宽性能测试:

1、针对TCP进行带宽性能测试

服务端命令:iperf -s -i 1 -p 3389

客户端命令:iperf -c 172.19.16.97 -p 3389 -i 1

2、针对UDP进行带宽性能测试

带宽性能压测通常采用udp模式,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为100Mbps,先用-b 100M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。

本次测试机器为腾讯云标准网络优化型实例(S2ne.LARGE8),内网带宽性能可以支撑1.5Gbps;

服务端命令

iperf -u -s -i 1 -p 3389

客户端命令

1、iperf -u -c 172.19.16.97 -p 3389 -b 1500M -i 1 

2、iperf -u -c 172.19.16.97 -p 3389 -b 2000M -i 1 

测试可以看出,在测试带宽到达官网保证的1.5Gbps的时候,网络性能良好,是没有出现丢包的,当带宽跑到2Gbps的时候,会发现由于带宽超限,已经出现明显的丢包现象。

网络收发包性能测试:

通过UDP发包测试不仅可以通过-b xxxM的形式测试实例的带宽性能情况,还可以通过-b xxxpps测试实例的收发包性能,这里还是选用腾讯云标准网络优化型实例(S2ne.LARGE8),官网承诺收发包量为30Wpps进行测试

需要注意的是,网络收发包量的测试同时还会受到缓冲区大小的影响,默认的缓冲区比较小的话,会造成实例到达高pps丢包的现象,这里建议在测试前调整下缓冲区大小;同时由于UDP默认发包大小为1470字节,在发包量很高的情况会超出实例的带宽限制,所以这里需-l 指定发包大小,本次测试采用-l 100bit

1、调整UDP缓冲区大小

vi /etc/sysctl.conf

添加

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216 

然后执行sysctl -p 使得参数生效(不重启刷新参数)

2、进行测试

服务端命令

iperf -u -s -i 1 -p 3389

客户端命令

iperf -u -c 172.19.16.97 -b 300000pps -l 100bit  -i 1 -p 3389

iperf -u -c 172.19.16.97 -b 320000pps -l 100bit  -i 1 -p 3389

通过测试可以发现,实例在官网承诺的30Wpps进行收发包测试的时候是没有丢包现象的,当测试收发包到达32Wpps的时候已经开始出现丢包现象了,所以这里建议在选用实例的过程中,尽量根据业务的实际情况选择,尽量避免实例在瓶颈期使用。

附录:iperf常用选项

命令行选项

描述

客户端与服务器共用选项

-f, --format [bkmaBKMA]

格式化带宽数输出。支持的格式有:'b' = bits/sec 'B' = Bytes/sec'k' = Kbits/sec 'K' = KBytes/sec'm' = Mbits/sec 'M' = MBytes/sec'g' = Gbits/sec 'G' = GBytes/sec'a' = adaptive bits/sec 'A' = adaptive Bytes/sec自适应格式是kilo-和mega-二者之一。除了带宽之外的字段都输出为字节,除非指定输出的格式,默认的参数是a。注意:在计算字节byte时,Kilo = 1024, Mega = 1024^2,Giga = 1024^3。通常,在网络中,Kilo = 1000, Mega = 1000^2, and Giga = 1000^3,所以,Iperf也按此来计算比特(位)。如果这些困扰了你,那么请使用-f b参数,然后亲自计算一下。

-i, --interval #

设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。

-l, --len #[KM]

设置读写缓冲区的长度。TCP方式默认为8KB,UDP方式默认为1470字节。

-m, --print_mss

输出TCP MSS值(通过TCP_MAXSEG支持)。MSS值一般比MTU值小40字节。通常情况

-p, --port #

设置端口,与服务器端的监听端口一致。默认是5001端口,与ttcp的一样。

-u, --udp

使用UDP方式而不是TCP方式。参看-b选项。

-w, --window #[KM]

设置套接字缓冲区为指定大小。对于TCP方式,此设置为TCP窗口大小。对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值。

-B, --bindhost

绑定到主机的多个地址中的一个。对于客户端来说,这个参数设置了出栈接口。对于服务器端来说,这个参数设置入栈接口。这个参数只用于具有多网络接口的主机。在Iperf的UDP模式下,此参数用于绑定和加入一个多播组。使用范围在224.0.0.0至239.255.255.255的多播地址。参考-T参数。

-C, --compatibility

与低版本的Iperf使用时,可以使用兼容模式。不需要两端同时使用兼容模式,但是强烈推荐两端同时使用兼容模式。某些情况下,使用某些数据流可以引起1.7版本的服务器端崩溃或引起非预期的连接尝试。

-M, --mss #[KM}

通过TCP_MAXSEG选项尝试设置TCP最大信息段的值。MSS值的大小通常是TCP/ip头减去40字节。在以太网中,MSS值 为1460字节(MTU1500字节)。许多操作系统不支持此选项。

-N, --nodelay

设置TCP无延迟选项,禁用Nagle's运算法则。通常情况此选项对于交互程序,例如telnet,是禁用的。

-V (from v1.6 or higher)

绑定一个IPv6地址。服务端:$ iperf -s –V客户端:$ iperf -c <Server IPv6 Address> -V注意:在1.6.3或更高版本中,指定IPv6地址不需要使用-B参数绑定,在1.6之前的版本则需要。在大多数操作系统中,将响应IPv4客户端映射的IPv4地址。

服务器端专用选项

-s, --server

Iperf服务器模式

-D (v1.2或更高版本)

Unix平台下Iperf作为后台守护进程运行。在Win32平台下,Iperf将作为服务运行。

-R(v1.2或更高版本,仅用于Windows)

卸载Iperf服务(如果它在运行)。

-o(v1.2或更高版本,仅用于Windows)

重定向输出到指定文件

-c, --client host

如果Iperf运行在服务器模式,并且用-c参数指定一个主机,那么Iperf将只接受指定主机的连接。此参数不能工作于UDP模式。

-P, --parallel #

服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接。

客户端专用选项

-b, --bandwidth #[KM]

UDP模式使用的带宽,单位bits/sec。此选项与-u选项相关。默认值是1 Mbit/sec。

-c, --client host

运行Iperf的客户端模式,连接到指定的Iperf服务器端。

-d, --dualtest

运行双测试模式。这将使服务器端反向连接到客户端,使用-L 参数中指定的端口(或默认使用客户端连接到服务器端的端口)。这些在操作的同时就立即完成了。如果你想要一个交互的测试,请尝试-r参数。

-n, --num #[KM]

传送的缓冲器数量。通常情况,Iperf按照10秒钟发送数据。-n参数跨越此限制,按照指定次数发送指定长度的数据,而不论该操作耗费多少时间。参考-l与-t选项。

-r, --tradeoff

往复测试模式。当客户端到服务器端的测试结束时,服务器端通过-l选项指定的端口(或默认为客户端连接到服务器端的端口),反向连接至客户端。当客户端连接终止时,反向连接随即开始。如果需要同时进行双向测试,请尝试-d参数。

-t, --time #

设置传输的总时间。Iperf在指定的时间内,重复的发送指定长度的数据包。默认是10秒钟。参考-l与-n选项。

-L, --listenport #

指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口。

-P, --parallel #

线程数。指定客户端与服务端之间使用的线程数。默认是1线程。需要客户端与服务器端同时使用此参数。

-S, --tos #

出栈数据包的服务类型。许多路由器忽略TOS字段。你可以指定这个值,使用以"0x"开始的16进制数,或以"0"开始的8进制数或10进制数。例如,16进制'0x10' = 8进制'020' = 十进制'16'。TOS值1349就是:IPTOS_LOWDELAY minimize delay 0x10IPTOS_THROUGHPUT maximize throughput 0x08IPTOS_RELIABILITY maximize reliability 0x04IPTOS_LOWCOST minimize cost 0x02

-T, --ttl #

出栈多播数据包的TTL值。这本质上就是数据通过路由器的跳数。默认是1,链接本地。

-F (from v1.2 or higher)

使用特定的数据流测量带宽,例如指定的文件。$ iperf -c <server address> -F <file-name>

-I (from v1.2 or higher)

与-F一样,由标准输入输出文件输入数据。

杂项

-h, --help

显示命令行参考并退出 。

-v, --version

显示版本信息和编译信息并退出。

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

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

相关文章

前端框架前置课(1)---AJAX阶段

1. AJAX入门 1.1 AJAX概念和axios使用 1.1.1 什么是AJAX? 1.1.2 怎么用AJAX? 引入axios.js 获取省份列表数据 1.2 认识URL 1.3 URL查询参数 1.4 常用请求方和数据提交 1.5 HTTP协议-报文 1.5.1 HTTP响应状态码 1.5.1.1 状态码&#xff1a;1XX&#xff08;信息&#xff09…

Java微服务分布式分库分表ShardingSphere - ShardingSphere-JDBC

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

JetBrains全家桶激活,分享 WebStorm 2024 激活的方案

大家好&#xff0c;欢迎来到金榜探云手&#xff01; WebStorm公司简介 JetBrains 是一家专注于开发工具的软件公司&#xff0c;总部位于捷克。他们以提供强大的集成开发环境&#xff08;IDE&#xff09;而闻名&#xff0c;如 IntelliJ IDEA、PyCharm、和 WebStorm等。这些工具…

固态硬盘数据恢复难度为何大 固态硬盘数据丢失如何恢复 数据恢复软件

随着时代不断的发展&#xff0c;我们办公工作的内容不断增大&#xff0c;固态硬盘已经成为很多人不可缺少的电脑存储设备。固态硬盘与机械硬盘相比较而言&#xff0c;固态硬盘具备读写速度更快、能耗更低、耐用性更好的优点。虽然固态硬盘优点较多&#xff0c;但是固态硬盘也会…

关于使用TCP-S7协议读写西门子PLC字符串的问题

我们可以使用TCP-S7协议读写西门子PLC&#xff0c; 比如PLC中定义一个String[50] 的地址DB300.20 地址DB300.20 DB块编号为300&#xff0c;偏移量【地址】是30 S7协议是西门子PLC自定义的协议&#xff0c;默认端口102&#xff0c;本质仍然是TCP协议的一种具体实现&#xff…

01-DBA自学课-安装部署MySQL

一、安装包下载 1&#xff0c;登录官网 MySQL :: MySQL Downloads 2&#xff0c;点击社区版下载 3&#xff0c;找到社区服务版 4&#xff0c;点击“档案”Archives 就是找到历史版本&#xff1b; 5&#xff0c;选择版本进行下载 本次学习&#xff0c;我们使用MySQL-8.0.26版本…

将Git LFS大文件转换为普通文件

Git LFS&#xff08;Large File Storage&#xff09;常用于大文件的管理&#xff0c;比如大型的预训练模型、数据集等内容&#xff0c;由于GitHub对上传文件大小的限制&#xff0c;太大的文件一般使用LFS格式上传 将GitHub、Hugging Face等网站上的LFS格式的大文件转换为普通文…

深度学习语义分割篇——DeepLabV1原理详解篇

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;专栏推荐&#xff1a;深度学习网络原理与实战 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&#x1f3fc;、…

ssm小区车库停车系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 ssm小区车库停车系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模…

Excel 导入指定分隔符的 csv 文件

原文&#xff1a;https://blog.iyatt.com/?p14373 基于 Excel 2024 预览版测试 csv 文件本身是纯文本的&#xff0c;同行数据之间通过一定的分隔符打断识别为不同的列&#xff0c;常用的分隔符是英文逗号&#xff0c;使用逗号分隔符的 csv 文件直接用 Excel 打开能正常识别单…

python之(19)CPU性能分析常见工具

Python之(19)CPU性能分析常见工具 Author: Once Day Date: 2024年3月24日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏:Python开发_Once-Day的博客…

迁移android studio 模拟器位置

android studio 初始位置是安装在c盘&#xff0c;若是要迁移需 1创建一个目标位置如我的F:/avd 2在系统环境变量里面设置新的地址 变量名&#xff1a;ANDROID_SDK_HOME 变量值&#xff1a;F:/avd 3最重要的是文件复制&#xff0c;将C盘里面avd的上层目录.android的目录整体…

机器学习——聚类算法-层次聚类算法

机器学习——聚类算法-层次聚类算法 在机器学习中&#xff0c;聚类是一种将数据集划分为具有相似特征的组或簇的无监督学习方法。聚类算法有许多种&#xff0c;其中一种常用的算法是层次聚类算法。本文将介绍聚类问题、层次聚类算法的原理、算法流程以及用Python实现层次聚类算…

SpringCloudAlibaba之Nacos Config

1、服务配置中心介绍 首先我们来看一下,微服务架构下关于配置文件的一些问题&#xff1a; 配置文件相对分散。在一个微服务架构下&#xff0c;配置文件会随着微服务的增多变的越来越多&#xff0c;而且分散在各个微服务中&#xff0c;不好统一配置和管理。配置文件无法区分环境…

ETL数据倾斜与资源优化

1.数据倾斜实例 数据倾斜在MapReduce编程模型中比较常见&#xff0c;由于key值分布不均&#xff0c;大量的相同key被存储分配到一个分区里&#xff0c;出现只有少量的机器在计算&#xff0c;其他机器等待的情况。主要分为JOIN数据倾斜和GROUP BY数据倾斜。 1.1GROUP BY数据倾…

蓝桥杯嵌入式学习笔记(6):IIC程序设计

目录 前言 1. IIC基本原理 2. 电路原理 3. 代码编程 3.1 预备工作 3.2 AT24C02写读功能编写 3.2.1 AT24C02写操作实现 3.2.2 AT24C02读操作实现 3.3 MCP4017写读功能编写 3.3.1 MCP4017写操作实现 3.3.2 MCP4017读操作实现 3.4 main.c编写 3.4.1 头文件引用 3.4.…

FASTAPI系列 16-其他响应类型

FASTAPI系列 16-其他响应类型 文章目录 FASTAPI系列 16-其他响应类型前言一、HTMLResponse 响应 HTML二、纯文本响应三、另外的JSON 响应四、FileResponse文件五、StreamingResponse六、RedirectResponse 重定向请求总结更多内容&#xff0c;请关注公众号, 发送666 更可以得到免…

面试算法-92-不同的二叉搜索树 II

题目 给你一个整数 n &#xff0c;请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],…

移动硬盘盒结合PD技术为电脑供电:一种便携高效的供电新方案

在数字化时代&#xff0c;电脑已经成为我们生活和工作中不可或缺的工具。而在电脑的使用过程中&#xff0c;供电问题一直是我们需要关注的重要方面。近年来&#xff0c;随着技术的不断进步&#xff0c;移动硬盘盒子与PD&#xff08;Power Delivery&#xff09;技术的结合&#…

pnpm :无法加载文件 D:\nodejs\node_global\pnpm.ps1,因为在此系统上禁止运行脚本

一、问题描述 pnpm : 无法加载文件 D:\zyt\work\soft\node\node_global\pnpm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1pnpm --ver…