性能分析与调优: Linux 使用 iperf3 进行TCP网络吞吐量测试

目录

一、实验

1.环境

2.TCP网络吞吐量的微观基准测试

二、问题

1.iperf参数有哪些

2.iperf如何二进制安装


一、实验

1.环境

(1)主机

表1-1 主机

主机架构组件IP备注
prometheus

监测

系统

prometheus、node_exporter 192.168.204.18
grafana监测GUIgrafana192.168.204.19
agent 

监测

主机

node_exporter192.168.204.20

2.使用 iperf3进行TCP网络吞吐量的微观基准测试

(1)prometheus服务器安装iperf3

① 查找

[root@prometheus ~]# yum search iperf

②安装

[root@prometheus ~]# yum install iperf3

③查看版本

[root@prometheus ~]# iperf3 -v

④ 帮助命令

[root@prometheus ~]# iperf3 -h

(2)agent 服务器安装iperf3

① 查找

[root@agent ~]# yum search iperf

②安装

[root@agent ~]# yum install iperf3

③查看版本

[root@agent ~]# iperf3 -v

  (3) prometheus服务器执行iperf命令

[root@prometheus ~]#   iperf3 -s -d 

(4)agent服务器执行iperf命令

测试基准执行10秒(-t 10),并产生每秒的平均数(-i 1)

iperf3 -c 192.168.204.18 -i 1 -t 10

(5)观察prometheus服务器iperf命令的监听变化

(6)监听结束,关闭

二、问题

1.iperf参数有哪些

(1)主要参数

-s 以server模式启动。#iperf -s
-c host以client模式启动。host是server端地址。#iperf -c serverip

(2)通用参数

-f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,#iperf -c 192.168.204.18 -f K
-i sec 以秒为单位显示报告间隔,#iperf -c 192.168.204.18 -i 2
-l 缓冲区大小,默认是8KB,#iperf -c 192.168.204.18 -l 64
-m 显示tcp最大mtu值
-o 将报告和错误信息输出到文件#iperf -c 192.168.204.18 -o ciperflog.txt
-p 指定服务器端使用的端口或客户端所连接的端口#iperf -s -p 5001;iperf -c 192.168.204.18 -p 5001
-u 使用udp协议
-w 指定TCP窗口大小,默认是8KB
-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)
-C 兼容旧版本(当server端和client端版本不一样时使用)
-M 设定TCP数据包的最大mtu值
-N 设定TCP不延时
-V 传输ipv6数据包

(3)server专用参数

-D 以服务方式运行。#iperf -s -D
-R 停止iperf服务。针对-D,#iperf -s -R
client端专用参数:
-d 同时进行双向传输测试
-n 指定传输的字节数,#iperf -c 192.168.204.18 -n 1024000
-r 单独进行双向传输测试
-t 测试时间,默认20秒,#iperf -c 192.168.204.18 -t 5
-F 指定需要传输的文件
-T 指定ttl值

(4)使用

1)服务器端 执行iperf -s -d 2)客户端执行iperf -c 192.168.204.18 -t 10 -i 1 -d -m

2.iperf如何二进制安装

(1)iperf官网下载

http://sourceforge.net/projects/iperf/

(2)安装

1)下载后解压
tar xvf iperf-xxxx.tar.gz
cd c-xxxx
./configure
make
make install2)如果编译失败可重新编译:
make distclean
./configure
make&&make install

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

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

相关文章

Arduino类库封装编写-以超声波测距举例

目录 一、前言 二、类封装 1、创建头文件 2、创建源文件 3、条件编译说明 (1)头文件重复定义 (2)版本兼容性预处理 4、用户程序中使用封装的类 5、测试 三、将封装的类制作成库文件 1、创建SR04库文件目录 2、库文件中…

智能网联汽车网络安全测试:渗透测试,模糊测试详细讲解

1. 基础知识 1.1 智能网联汽车架构 车内网络系统架构 随着智能网联汽车电子系统的复杂化,电子电气架构( Electrical/Electronic Architecture, EEA )由分布式向集中式架构演进,如图 2.1 所示。 在汽车 EEA 演进的…

构建免费的Dokan和WooCommerce构建线上课程市场在线销售数字课程

我们知道创建良好的学习说明和材料很困难。但当涉及到销售时,就变得更加困难。如果您无法出售您的课程,那么没有什么比这更令人沮丧的了。 幸运的是,如果您使用的是 WordPress 网站,那么您可以非常轻松且免费地完成此操作。借助L…

统信UOS虚拟机安装VirtualBox扩展使用USB功能

为什么要安装VirtualBox扩展包? 安装 Oracle VM VirtualBox 扩展包的原因是,它提供了对 USB 2.0、USB 3.0、远程桌面协议 VRDP(VirtualBox Remote Desktop Protocol)等实用功能的支持,以增强 VirtualBox 的功能。这些…

JavaScript高级程序设计读书记录(八):对象的使用及创建

ECMA-262 将对象定义为一组属性的无序集合。严格来说,这意味着对象就是一组没有特定顺序的 值。对象的每个属性或方法都由一个名称来标识,这个名称映射到一个值。正因为如此(以及其他还未 讨论的原因),可以把 ECMAScri…

区块链金融科技:技术融合与挑战应对【文末送书-16】

文章目录 前言一.区块链与金融科技的融合:革新金融格局的技术之光1.1区块链技术简介1.2 区块链在金融科技中的应用 二.智能合约2.1 去中心化金融(DeFi)2.2区块链对金融科技的影响2.3数据安全性 三.区块链与金融科技【文末送书-16】3.1 粉丝福…

计算机配件杂谈-鼠标

目录 基础知识鼠标的发展鼠标的左右手鼠标的显示样式鼠标的移动和可见性移动可见性 现在的我们的生活工作都基本上离不开电脑了,不管是你平时玩玩游戏,上班工作等等; 今天将关于鼠标的一些小的技巧分享出来,共勉! 基础…

系列三十五、获取Excel中的总记录数

一、获取Excel中的总记录数 1.1、概述 使用EasyExcel开发进行文件上传时,通常会碰到一个问题,那就是Excel中的记录数太多,使用传统的方案进行文件上传,很容易就超时了,这时可以通过对用户上传的Excel中的数量进行限制…

FDA食品接触材料测试项目接触

1. FDA介绍: 美国食品和药品管理局(FDA)负责监管食品接触材料,此类材料必须经过检测,确保达到食品接触安全标准。美国联邦法规(CFR)第21章对此类材料作出具体规定,并将此类材料视…

笔试案例2

文章目录 1、笔试案例22、思维导图 1、笔试案例2 09)查询学过「张三」老师授课的同学的信息 selects.*,c.cname,t.tname,sc.score from t_mysql_teacher t, t_mysql_course c, t_mysql_student s, t_mysql_score sc where t.tidc.cid and c.cidsc.cid and sc.sids…

Spring 见解 7 基于注解的AOP控制事务

8.基于注解的AOP控制事务 8.1.拷贝上一章代码 8.2.applicationContext.xml <!-- 开启spring对注解事务的支持 --> <tx:annotation-driven transaction-manager"transactionManager"/> 8.3.service Service Transactional(readOnlytrue,propagation Pr…

Qt之基本数据类型

Qt 基本数据类型定义在#include <QtGlobal>中&#xff0c;如表下表所示。 (1)打开Qt Creator&#xff0c;新建一个控制台项目&#xff0c;项目名为test。 (2)在 main.cpp 中输入如下代码: #include <QCoreApplication> #include <QtGlobal> int main(int…