iperf3-性能测试

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.rhkb.cn/news/78644.html

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

相关文章

element-ui - $prompt非空验证

//点击删除按钮 delStoreFun(data) { let than this; this.$prompt(删除门店请填写备注, 提示, { confirmButtonText: 确定, cancelButtonText: 取消, inputValidator: (value) > { //非空验证 if (!value) { return 输入不能为空 } }, }).then(({ value }) > { delS…

CNN成长路:从AlexNet到EfficientNet(02)

一、说明 在~10年的深度学习中,进步是多么迅速!早在 2012 年,Alexnet 在 ImageNet 上的准确率就达到了 63.3% 的 Top-1。现在,我们超过90%的EfficientNet架构和师生训练(teacher-student)。 二、第一阶段 …

笔记本WIFI连接无网络【实测有效解决方案,不用重启电脑】

笔记本Wifi连接无网络实测有效解决方案 问题描述: 笔记本买来一段时间后,WIFI网络连接开机一段时间还正常连接,但是过一段时间显示网络连接不上解决方案: 1.编写网络重启bat脚本,将以下内容写到文本文件,把…

最优化:建模、算法与理论

最优化:建模、算法与理论 目前在学习 最优化:建模、算法与理论这本书,来此记录一下,顺便做一些笔记,在其中我也会加一些自己的理解,尽量写的不会那么的条条框框(当然最基础的还是要有&#xff…

C#利用自定义特性以及反射,来提大型项目的开发的效率

在大型项目的开发过程中,需要多人协同工作,来加速项目完成进度。 比如一个软件有100个form,分给100个人来写,每个人完成自己的Form.cs的编写之后,要在Mainform调用自己写的Form。 如果按照正常的Form form1 new For…

怎样将项目jar包放到服务器上

目录 1、在配置文件中配置账号密码 2.在父级的pom里面,加上这个标签 3. deploy部署 4. 注:这两个id得匹配上(原因:有的人会只有上传到测试包的权限,id对应,拥有账号密码的才能有权限) 5.子项…

uniapp-疫情应急管理系统学生端

1 疫情资讯展示 <template><view class"container"><uni-section title"自定义卡片内容" type"line"><uni-card title"基础卡片" class"card-box" v-for"(item,index) in epidemicNewsList"…

探秘企业DevOps一体化平台建设终极形态丨IDCF

笔者从事为企业提供研发效能改进解决方案相关工作十几年&#xff0c;为国内上百家企业提供过DevOps咨询及解决方案落地解决方案&#xff0c;涉及行业包括&#xff1a;金融、通信、制造、互联网、快销等多种行业。 DevOps的核心是研发效能改进&#xff0c;效能的提升离不开强大…

HTTPS-RSA握手

RSA握手过程 HTTPS采用了公钥加密和对称加密结合的方式进行数据加密和解密 RSA握手是HTTPS连接建立过程中的一个关键步骤&#xff0c;用于确保通信双方的身份验证和生成对称加密所需的密钥 通过RSA握手过程&#xff0c;客户端和服务器可以协商出一个共享的对称密钥&#xff0c;…

ruoyi若依 组织架构设计--[ 角色管理 ]

ruoyi若依 组织架构设计--[ 角色管理 ] 角色新增后端代码 角色修改后端代码 角色查询角色删除角色分配数据权限后端代码 角色分配用户 角色新增 后端代码 有一点&#xff0c;我认为新增的时候&#xff0c;也需要修改redis中的权限。 角色修改 后端代码 因为修改了role_menu表了…

Chrome 75不支持保存成mhtml的解决方法

在Chrome 75之前&#xff0c;可以设置chrome://flags -> save as mhtml来保存网页为mhtml。 升级新版&#xff0c;发现无法另存为/保存网页为MHTML了。 参考https://jingyan.baidu.com/article/a3761b2b7e39ec5576f9aad9.html 在网上搜索无果后&#xff0c;只得从chromium项…

【分布式应用】ELK企业级日志分析系统

目录 一、ELK 简介 1.1 ELK各组件介绍 ElasticSearch&#xff1a; Kiabana&#xff1a; Logstash&#xff1a; 1.2 可以添加的其它组件&#xff1a; Filebeat&#xff1a; 缓存/消息队列&#xff08;redis、kafka、RabbitMQ等&#xff09;&#xff1a; Fluentd&#xf…

vue中vue-lazyload报错

1.问题&#xff1a; 说明&#xff1a;也就是版本不兼容&#xff0c;我安装的是vue2,因此需要 "vue-lazyload": "^1.2.6"或者更低 2.解决 npm i vue-lazyload1.2.6

补充JDK源码-IDEA集成工具

在阅读JDK8源码的时候发现&#xff0c;只有一小部分常用包是存在源码及其注释的&#xff0c;而很多内部包是没有源码&#xff0c;class文件在阅读的时候对阅读者十分不友好。在网上搜集了很多资料都没有解决问题。 解决问题办法&#xff1a;参考文档。本文主要是根据这篇文章记…

安全杂记 - 复现nodejs沙箱绕过

目录 一. 配置环境1.下载nodejs2.nodejs配置3.报错解决方法 二. nodej沙箱绕过1. vm模块2.使用this或引用类型来进行沙箱绕过 一. 配置环境 1.下载nodejs 官网&#xff1a;https://nodejs.org/en2.nodejs配置 安装nodejs的msi文件&#xff0c;默认配置一直下一步即可&#x…

Wordpress升级版本后插件和主题常见出错及处理方法整理【持续更新】

Wordpress报错怎么解决&#xff1f; 一般常用的排查方法&#xff1a; 暂时禁用所有插件&#xff1b;将主题更改为默认主题&#xff1b; 修改wp-config.php文件&#xff1b;更新固定链接设置&#xff0c;确保设置正确&#xff1b;检查.htaccess文件是否存在且是否可写&#xf…

ant.design 组件库中的 Tree 组件实现可搜索的树: React+and+ts

ant.design 组件库中的 Tree 组件实现可搜索的树&#xff0c;在这里我会详细介绍每个方法&#xff0c;以及容易踩坑的点。 效果图&#xff1a; 首先是要导入的文件 // React 自带的属性 import React, { useMemo, useState } from react; // antd 组件库中的&#xff0c;输入…

了解Linux 的 mmap --- 笔记

学习这篇博客&#xff0c;进行了一些归纳Linux下mmap_linux mmap_一个山里的少年的博客-CSDN博客https://blog.csdn.net/qq_56999918/article/details/127070280 >>读取文件 读取文件方法&#xff1a;由操作系统提供的两个方法&#xff0c;read和write来读写文件。 由…

【SpringBoot】知识

.第一个程序HelloWorld 项目创建方式&#xff1a;使用 IDEA 直接创建项目 1、创建一个新项目 2、选择spring initalizr &#xff0c; 可以看到默认就是去官网的快速构建工具那里实现 3、填写项目信息 4、选择初始化的组件&#xff08;初学勾选 Web 即可&#xff09; 5、填…

flask中的应用上下文

flask中的应用上下文 Flask应用上下文主要包含两个对象&#xff1a;current_app和g。这两个对象在处理请求期间都是全局可访问的&#xff0c;但在每个请求结束时都会被重置。 current_app&#xff1a;这是当前激活的Flask应用的实例。在大多数情况下&#xff0c;你可以将其视为…