iperf3-性能测试

news2025/1/12 8:54:00

iperf3-性能测试

    • 安装
      • 1.apt安装
      • 2.源码安装
    • 使用方法
    • iperf原理
    • 测试
    • 参考文档
    • 性能测试
        • 客户端
        • 服务端

官方文档:https://iperf.fr/iperf-doc.php

安装

1.apt安装

sudo apt-get install iperf3

2.源码安装

# 按照官方说明安装
./configure
make
sudo make install

执行编译报错:

iperf3: error while loading shared libraries: libiperf.so.0: cannot open shared object file: No such file or directory

解决:
./configure
make
sudo ldconfig
sudo make install

ldconfig命令的用途主要是在默认搜寻目录 /lib和 /usr/lib以及动态库配置文件 /etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表,为了让动态链接库为系统所共享,需运行动态链接库的管理命令ldconfig,此执行程序存放在/sbin目录下。

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。
docs文件夹下生成文档

make html
# 报错:大概是因为缺少sphinx文档的主题
ImportError: No module named sphinx_bootstrap_theme

# 安装sphinx_bootstrap_theme解决
pip install sphinx_bootstrap_theme

使用方法

适用于 服务端/客户端

-f 指定数据显示格式 [k|m|K|M] 分别表示 Kbits、Mbits、KBytes、MBytes,默认是 Mbits
-l 设置读写缓冲区的长度。TCP方式默认为8KB,UDP方式默认为1470字节。
-u 使用 udp 协议
-i 以秒为单位统计带宽值
-b,--bandwidth [K|M|G]:指定UDP模式使用的带宽,单位bits/sec,默认值是1 Mbit/sec
-m 显示最大的 TCP 数据段大小
-p 指定服务端或者客户端的端口号
-w 指定 TCP 窗口大小
-t,--time:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认10秒
-A:CPU亲和性,可以将具体的iperf3进程绑定对应编号的逻辑CPU,避免iperf进程在不同的CPU间调度
-B 绑定道指定的主机地址或接口
-C 兼容旧版本
-M 设置 TCP 数据包的最大 MTU 值
 -V, --verbose: 更多细节输出

优化方法:

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

iperf原理

服务端在压力测试前服务端和客户端先使用udp协商压测使用的协议(tcp/udp)等测试参数,所以服务端不用制定压测协议,直接运行iperf3 -s -p 10081即可。

测试

UDP服务端客户端端使用如下命令:

# 服务端
./iperf3 -s -p 10081

# 客户端
./iperf3 -c 192.168.22.123 -u -p 10081 -t 60 -f m -b50000M


[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-60.00  sec  16.2 GBytes  2321 Mbits/sec  0.000 ms  0/12453417 (0%)  sender
[  5]   0.00-60.01  sec  1.73 GBytes   248 Mbits/sec  0.043 ms  11119569/12448888 (89%)  receiver
  • Transfer:传输字节数
  • Bitrate:上下行带宽
  • Jitter:时延抖动(时延参数)。
    计算方法:假设数据包i客户端发送时间为Si,服务端接收时间为Ri。数据包i和j的抖动
    D(i, j)=(Rj - Sj) - (Ri - Si)

参考文档

  • iperf 的介绍和使用:http://www.enkichen.com/2017/06/06/iperf-introduce/
  • Linux命令大全:iperf https://ipcmen.com/iperf

性能测试

客户端


iperf3 -c 192.168.22.100 -p 1001 -t 30 -f m -b 10240m -p 128

测试参数:

  • -c 为客户端运行并要指定服务端的IP地址

  • -b 表示使用的测试带宽

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

  • -d 打印出更详细的debug调试信息

  • -P到iperf3服务器端并行的连接数量,默认值是1。

说明:(在日常测试中,我们会发现当最大吞吐量上不去的时候,开多个并行连接一般会立竿见影的提升最大吞吐量,通常我人们的第一反应是iperf开启了多线程(详见:Linux下如何查看多线程进程里的线程信息),但事实上在开启多个并行连接的情况下iperf不论是客户端还是服务端,依然工作在单线程模式下(详见:iPerf3 -P参数详细图文分析),最大吞吐量主要取决于接收方主机,发送方主机和网络3个节点的,最大带宽,最大包处理能力,延时这三个能力,后面我们可以专门开篇讲讲做最大吞吐量测试3个节点3个能力的影响,以及应该如何正确设置iperf的参数。

使用方式:如下所示:表示开3个连接

iperf3 -c 192.168.3.15 -u -P 3

结果:

  • Interval:程序的运行时间

  • Transfer:传输的数据总量

  • Bandwidth:测试出的带宽

  • Jitter:网路抖动

  • Lost/Total Datagrams:丢包数/总数据包数(丢包率)

在这里插入图片描述

服务端

./iperf3 -s -p 1001

在这里插入图片描述

查看CPU是否打满

htop

在这里插入图片描述

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

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

相关文章

OceanBase 4.1.0 clog 目录探究

基于OceanBase 4.x 版本如何统计租户每日 clog 日志生成量的背景下,探究以及如何查看租户 clog 的使用情况。 作者:姜宇 爱可生 DBA 团队成员,擅长数据库故障排查和处理。对技术抱有热忱,实践是检验真理的唯一标准~ 本文来源&…

对docker的简单理解

一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发运维之间的协作,我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的…

MySQL安装和卸载

1.MySQL概述 MySQL概述 MySQL是一个[关系型数据库管理系统],由瑞典MySQL AB 公司开发,2008年被sun公司收购, 2009sun又被oracle收购,所以属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用…

springboot(4)

AOP 1.AOP与OOP OOP(Object Oriented Programming,面向对象编程) AOP(Aspect Oriented Programming,面向切面编程) POP(Process Oriented Programming,面向过程编程) …

扩展卡尔曼滤波器代码

文章目录 前言问题状态向量和观测向量加性噪声的形式状态方程及求导观测方程及求导状态初始化过程噪声和观测噪声卡尔曼滤波过程code 前言 卡尔曼滤波器在1960年被卡尔曼发明之后,被广泛应用在动态系统预测。在自动驾驶、机器人、AR领域等应用广泛。卡尔曼滤波器使…

在R中比较两个矩阵是否相等

目录 方法一:使用all.equal()比较两个R对象是否近似相等 方法二:使用identical比较两个R对象是否精确相等。 方法一:使用all.equal()比较两个R对象是否近似相等 使用函数:all.equal(x,y) 比较两个R对象x和y是否近似相等 > M1…

抽象工厂模式(C++)

定义 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。 使用场景 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。如何应对这种…

Java实现微信公众号自定义回复

第一版实现微信公众号自动回复: ● 实现自定义回复内容的管理,将关键词、半匹配、以及关注、默认回复等刷新到缓存中 ● 用户发送消息进行匹配后通过微信回复格式直接返回,如果内容存在文字和图片,文字通过xml格式直接返回&…

每天一道leetcode:剑指 Offer 50. 第一个只出现一次的字符(适合初学者)

今日份题目: 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例1 输入:s "abaccdeff" 输出:b 示例2 输入:s "" 输出: 提示 0 …

RocketMQ学习一入门使用

从0开始学习RocketMQ,这一节主要是windows下环境部署,以及我理解的基本使用流程。 安装 1.下载地址:下载 | RocketMQ 注意,如果是windows环境下需要下载的是二进制文件,也就是这一列。 2.下载后解压到自己想要的目录…

从零开始学习查询京东快递并查询超时状态的小技巧

随着电子商务的蓬勃发展,快递成为了我们日常生活中不可或缺的一部分。而在众多快递公司中,京东快递以其高效、可靠的服务赢得了广大用户的青睐。然而,查询京东快递并同时查询快递的超时状态却一直是用户们头痛的问题。今天,我将为…

学习笔记|LED点亮原理|三极管在数字电路中的应用|Keil中的Tab设置|C51中对准双向口|STC32G单片机视频开发教程(冲哥)|第四集-上:点亮LED

文章目录 1.LED点亮原理STC32G12K128LQFP64QFN64管脚图:Tips:USB-ISP下载程GPIO (general purpose intput output)Tips:三极管在数字电路中的应用 2 新建工程Tips:Tab设置11.2 配置IO口注意: Tips:C51中对准双向口的解…

最新成果展示:GaN基Micro-LED热学模型数据库的开发及应用

由于GaN基Micro-LED表面积-体积比增加,其在热学方面的性质有别于大尺寸的LED,如缺陷复合导致的热效应将在发光区域中产生诸多“热”点,导致发光波长不均匀,这将影响后期显示系统的成像稳定性。针对上述问题,天津赛米卡…

shapely库的用法,高效处理点、线、面的几何关系和相关延申(GeoPandas 库)python

1、shapely库的基本用法 Shapely 是一个用于处理几何对象的 Python 库,它提供了各种函数和方法来进行空间分析和几何计算。下面是一些 Shapely 库的常见用法示例: 1. 创建几何对象: from shapely.geometry import Point, LineString, Poly…

uni——tab切换

案例展示 案例代码 <view class"tablist"><block v-for"(item,index) in tabList" :key"index"><view class"tabItem" :class"current item.id?active:" click"changeTab(item)">{{item.nam…

你真的懂OP吗?知道什么是OP吗?看完你就懂了!

运维到底是干什么的&#xff1f;估计连运维工程师本身都不清楚&#xff0c;小编各种搜索也没找到答案&#xff0c;问了很多运维老员工&#xff0c;终于总结出了运维工程师的工作内容。 01运维的定义本质上是对网络、服务器各个阶段的运营与维护&#xff0c;在成本、稳定性、效率…

混合云环境实现K8S可观测的6大策略

2023年&#xff0c;原生云应用及平台发展迅猛。大量企业都在努力发挥其应用程序的最大潜力&#xff0c;以确保极致的用户体验并推动业务增长。 混合云环境的兴起和容器化技术(如Kubernetes)的采用彻底改变了现代应用程序的开发、部署和扩展方式。 在这个数字舞台上&#xff0c;…

赴日IT工作之中日假期大对比!是你想要的程序员生活吗?

说了这么多关于工作方面的事宜&#xff0c;今天咱们来聊聊大家都关心的假期问题吧&#xff01;中国和日本的假期有什么区别呢&#xff1f;从天数上来看&#xff0c;其实中日假期都是16天左右&#xff0c;但是可能在调休方面&#xff0c;日本相比我国对员工层会有一点点优势&…

Linux环境下安装JDK(17)

1、官网下载 https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html 2、传到Linux上去&#xff0c;至于用什么工具&#xff0c;自行选择 3、虚拟机上&#xff0c;找到它&#xff0c;移到你想移的地方去 4、解压缩&#xff0c;换包名 tar -zxvf jdk…

Django快速入门

文章目录 一、安装1.创建虚拟环境&#xff08;virtualenv和virtualenvwrapper&#xff09;2. 安装django 二、改解释器三、创建一个Django项目四、项目目录项目同名文件夹/settings.py 五、测试服务器启动六、数据迁移七、创建应用八、基本视图1. 返回响应 response2. 渲染模板…