Netperf网络测试

news2024/12/22 20:25:29

Netperf网络测试

  • Netperf简介
  • 安装Netperf
    • Centos7安装Netperf
    • Windows安装Netperf
  • 批量网络流量性能测试
    • 启动netserver服务端
  • 查看netperf帮助
    • 查看netper参数
    • 查看netserver参数
  • TCP_STREAM测试
    • 启动netserver服务端
    • 客户端
  • UDP_STREAM测试
    • 启动netserver服务端
    • 客户端
  • 测试请求/应答网络流量测试
    • TCP_RR(TCP 请求-回复)
    • TCP_CRR(TCP 连接-请求-回复)
    • UDP_RR(UDP 请求-回复)
  • TCP_RR、TCP_CRR 和 UDP_RR 的比较:

Netperf简介

Netperf 基于C/S模式,需要在测试源端运行netsever,而本地运行netperf进行连接并测试。
Netperf支持多种常见的网络测试模式,包括TCP_STREAM、UDP_STREAM、TCP_MAERTS和UDP_RR等。用户可以使用Netperf来测试本地和远程网络的性能,以评估网络基础设施的性能和可靠性。
Netperf项目地址:https://github.com/HewlettPackard/netperf


安装Netperf


Centos7安装Netperf

# Centos7安装Netperf
yum install -y http://repo.iotti.biz/CentOS/7/x86_64/netperf-2.7.0-1.el7.lux.x86_64.rpm

Windows安装Netperf

压缩包解压后有2个文件,netperf.exe和netserver.exe

3、在远端的电脑运行netserver.exe

4、本端电脑输入如下指令,即可得到两端的传输带宽及速率。

E:\netperf>netperf -H 192.168.1.12 (远端电脑IP地址)
TCP STREAM TEST to 192.168.3.18
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec

批量网络流量性能测试

原文链接:https://blog.csdn.net/qq_41596356/article/details/130454561
根据使用传输协议的不同,批量数据传输又分为TCP批量传输和UDP批量传输。

启动netserver服务端

# 服务端启动服务
netserver

image.png
默认情况下 netserver 开启端口号为 12865,可以通过以下命令指定服务端口(如果服务端指定端口,则客户端也需要指定服务器端口)

## -D 前台启动,不以后台守护进程模式启动
## -p 指定侦听端口
netserver -D -p 4659

image.png

查看netperf帮助

查看netper参数

# 查看netper帮助
netperf -h
选项描述
-a send,recv设置本地发送、接收缓冲区对齐
-A send,recv设置远程发送、接收缓冲区对齐
-B brandstr指定简短输出时要发出的字符串
-c [cpu_rate]报告本地 CPU 使用情况
-C [cpu_rate]报告远程 CPU 使用情况
-d增加调试输出
-D time,[units]至少每个时间间隔显示一次中间结果,使用单位作为秒数的初始猜测。时间的负值会大量使用系统的时间戳功能
-f G|M|K|g|m|k-f G|M|K|g|m|k 设置输出单位
-F lfill[,rfill]使用指定文件的数据预填充缓冲区
-H name|ip,fam指定目标机器和/或本地 ip 及家族
-i max,min指定最大和最小迭代次数 (15,1)
-I lvl[,intvl]指定置信水平(95 或 99)和置信区间的百分比(10)
-j保留额外的时间统计数据
-l testlen指定测试持续时间 (>0 秒) (<0 字节
-L name|ip,fam指定本地 ip
-o send,recv设置本地发送、接收缓冲区偏移
-O send,recv设置远程发送、接收缓冲区偏移
-n numcpu设置 CPU 利用率的处理器数量
-N不建立控制连接,只做 ‘发送’ 方面的工作
-p port,lport指定 netserver 端口号和/或本地端口
-P 0|1不/显示测试标题
-r允许只基于结果达到置信水平
-s seconds测试设置与测试开始之间等待秒数
-S在数据连接上设置 SO_KEEPALIVE
-t testname指定要执行的测试
-T lcpu,rcpu请求 netperf/netserver 绑定到本地/远端 cpu
-v verbosity指定详细度级别
-W send,recv设置发送、接收缓冲区的数量
-v level设置详细度级别(默认1,最小0)
-V显示 netperf 版本并退出
-y local,remote设置套接字优先级
-Y local,remote设置 IP_TOS。使用十六进制。
-Z passphrase设置并传递到 netserver 一个密语

查看netserver参数

netserver -h
参数解释
-h显示帮助
-D不以后台守护进程模式启动
-d增加调试输出
-f不为每个测试生成子进程,顺序运行
-L name,family使用name来选择监听地址,并且为family指定家族
-N即使netperf请求,也不显示调试输出
-p portnum在 portnum 端口上监听连接请求
-4使用 IPv4
-6使用 IPv6
-v verbosity指定详细度级别
-V显示版本信息并退出
-Z passphrase期望作为首个接收到的内容是密语

TCP_STREAM测试

Netperf缺省情况下进行TCP批量传输,即-t TCP_STREAM,用来测试进行TCP批量传输时的网络性能。
测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量。

启动netserver服务端

## -D 前台启动,不以后台守护进程模式启动
## -p 指定侦听端口
netserver -D -p 4659

客户端

# 对IP地址192.168.159.131的4659端口上运行的netserver发起一个持续5秒的TCP吞吐量测试
## -t TCP_STREAM:指定要执行的测试类型为 TCP_STREAM,这是 netperf 中一个常见的测试,用于测量 TCP 连接的最大吞吐量。
## -H 192.168.159.131:指定目标机器的IP地址为 192.168.159.131
##-l 5:指定测试的持续时间为 5 秒 之后自动停止并报告结果。
## -p 4659:指定 netperf 服务端的端口号为 4659
netperf -t TCP_STREAM -H 192.168.159.131 -l 5 -p 4659

image.png

UDP_STREAM测试

UDP_STREAM用来测试进行UDP批量传输时的网络性能。
测试UDP的网络性能时,测试分组的大小不得大于socket的发送与接收缓冲大小,否则netperf会报出错提示。

启动netserver服务端

## -D 前台启动,不以后台守护进程模式启动
## -p 指定侦听端口
netserver -D -p 4659

客户端

# 对IP地址192.168.159.131的4659端口上运行的netserver发起一个持续5秒的UDP吞吐量测试
## -t UDP_STREAM:指定要执行的测试类型为 UDP_STREAM,这是 netperf 中一个常见的测试,用于测量 UDP 连接的最大吞吐量。
## -H 192.168.159.131:指定目标机器的IP地址为 192.168.159.131
## -l 5:指定测试的持续时间为 5 秒 之后自动停止并报告结果。
## -p 4659:指定 netperf 服务端的端口号为 4659
netperf -t UDP_STREAM -H 192.168.159.131 -l 5 -p 4659

image.png

测试请求/应答网络流量测试

TCP_RR(TCP 请求-回复)

TCP_RR 是 netperf 工具中的一种测试类型,用于评估 TCP 连接的 请求-回复 性能。它模拟客户端-服务器交互,其中客户端向服务器发送请求并等待响应。
工作原理:
TCP_RR 方式的测试对象是多次 TCP request 和 response 的交易过程,但是它们发生在同一个 TCP 连接中,这种模式常常出现在数据库应用中。数据库的 client 程序与 server 程序建立一个 TCP 连接以后,就在这个连接中传送数据库的多次交易过程。

  1. 建立连接: netperf 与指定的服务器(使用 -H 参数指定)和端口(使用 -p 参数指定,默认 12865)建立 TCP 连接。
  2. 发送请求: netperf 向服务器发送一系列包含请求数据的 TCP 数据包。
  3. 接收响应: netperf 等待并接收来自服务器包含响应数据的 TCP 数据包。
  4. 测量性能: netperf 测量每个请求-回复周期的耗时,计算吞吐量、延迟和事务速率等指标。

性能指标:

  • 吞吐量: 测试期间成功传输的数据量(通常以每秒比特数或字节数表示)。
  • 延迟: 从发送请求到收到响应所花费的时间(通常以毫秒或微秒表示)。
  • 事务速率: 测试期间完成的请求-回复周期的数量(通常以每秒事务数表示)。

应用场景:
TCP_RR 适用于评估面向事务的 TCP 应用的性能,例如:

  • 数据库服务器连接
  • 远程过程调用 (RPC)
  • 基于 HTTP 1.0 的 web 服务器访问

5秒内TCP_RR数据

## -t TCP_RR: 指定测试类型为 TCP 请求-回复 (Request-Reply)。
### 在这种模式下,netperf 将模拟客户端发送请求到服务器,然后等待服务器的回复。
## -H 192.168.159.131:指定目标机器的IP地址为 192.168.159.131
## -l 5:指定测试的持续时间为 5 秒 之后自动停止并报告结果。
netperf -t TCP_RR -H 192.168.159.131 -l 5

image.png
可使用-- -r ,更改请求和相应大小

TCP_CRR(TCP 连接-请求-回复)

TCP_CRR 是 netperf 中的另一种测试类型,也用于评估 TCP 连接的请求-回复性能。但是,它与 TCP_RR 在测量性能的方式上有所不同。
工作原理:

  1. 建立连接: 与 TCP_RR 一样,netperf 与指定的服务器和端口建立 TCP 连接。
  2. 请求-回复周期: 类似于 TCP_RR,netperf 向服务器发送请求包并等待响应包。
  3. 性能测量: 与 TCP_RR 不同,TCP_CRR 在发送下一个请求之前 不等待响应。相反,它测量 整个请求-回复周期的耗时,包括连接建立

性能指标:

  • 事务速率: 测试期间完成的请求-回复周期的数量,包括连接建立(通常以每秒事务数表示)。
  • 平均连接时间: 在发送请求之前建立 TCP 连接所需的平均时间(通常以毫秒或微秒表示)。
  • 平均请求-响应时间: 发送请求、接收响应和关闭连接所需的平均时间(通常以毫秒或微秒表示)。

应用场景:
TCP_CRR 对于评估频繁打开和关闭 TCP 连接的应用程序的性能特别有用,例如:

  • 进行多个 HTTP 请求的 web 浏览器
  • 从服务器获取消息的电子邮件客户端
  • 发送和接收消息的即时通讯应用程序

5秒内TCP_CRR数据

## -t TCP_CRR: 指定测试类型为 TCP 连接-请求-回复
## -H 192.168.159.131:指定目标机器的IP地址为 192.168.159.131
## -l 5:指定测试的持续时间为 5 秒 之后自动停止并报告结果。
netperf -t TCP_CRR -H 192.168.159.131 -l 5

image.png
可使用-- -r ,更改请求和相应大小

UDP_RR(UDP 请求-回复)

UDP_RR 是 netperf 中的一种测试类型,用于评估 UDP 连接的 请求-回复 性能。与 TCP 不同,UDP 是一种无连接协议,这意味着它在发送数据之前无需建立连接。
工作原理:

  1. 发送请求: netperf 向指定的服务器和端口(使用 -H 和 -p 参数)发送一系列包含请求数据的 UDP 数据包。
  2. 无保证的响应: 由于 UDP 是无连接的,因此无法保证从服务器收到响应。netperf 无法像在 TCP_RR 或 TCP_CRR 中那样等待响应。
  3. 性能测量: netperf 测量 UDP 数据包的 发送速率丢包率

性能指标:

  • 发送速率: 测试期间成功发送的 UDP 数据包数量(通常以每秒数据包数表示)。
  • 丢包率: 未成功送达服务器的 UDP 数据包百分比(通常以百分比表示)。

应用场景:
UDP_RR 适用于评估可以容忍一些丢包的 UDP 应用的性能,例如:

  • 实时音/视频通信(丢包会影响质量,但可以容忍一些丢包)
  • 简单日志传输(丢包可能会导致一些日志消息丢失,但整体功能不受影响)
## -t -t TCP_RR: 指定测试类型为 (UDP 请求-回复)
## -H 192.168.159.131:指定目标机器的IP地址为 192.168.159.131
## -l 5:指定测试的持续时间为 5 秒 之后自动停止并报告结果。
netperf -t UDP_RR -H 192.168.159.131 -l 5

image.png
可使用-- -r ,更改请求和相应大小

netperf -t UDP_RR -H 192.168.159.131 -l 5 -- -r 128,8192

image.png

TCP_RR、TCP_CRR 和 UDP_RR 的比较:

特性TCP_RRTCP_CRRUDP_RR
连接建立 TCP 连接建立 TCP 连接无连接(不建立连接)
请求-回复周期等待响应后再发送下一个请求不等待响应,测量整个请求-回复周期无法保证收到响应,测量发送速率和丢包率
性能指标吞吐量、延迟、事务速率事务速率、平均连接时间、平均请求-响应时间发送速率、丢包率
应用场景面向事务的 TCP 应用频繁打开/关闭 TCP 连接的应用可以容忍丢包的 UDP 应用

总结:

  • TCP_RR 适用于评估需要可靠、有序数据传输的 TCP 应用的性能。
  • TCP_CRR 适用于评估需要快速建立连接和完成请求-回复周期的 TCP 应用的性能。
  • UDP_RR 适用于评估可以容忍丢包的 UDP 应用的性能。

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

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

相关文章

通配符SSL证书:功能特性与应用场景解析

随着网络技术的飞速发展&#xff0c;网络安全问题越来越受到人们的重视。在保护网站数据安全、提升用户信任度方面&#xff0c;SSL证书发挥着至关重要的作用。其中&#xff0c;通配符SSL证书以其独特的功能特性和广泛的应用场景&#xff0c;受到了众多网站运营者的青睐。本文将…

2021 年全国职业院校技能大赛高职组“信息安全管理与评估”赛项 A 卷 第三阶段任务书

一、赛项第三阶段时间90 分钟。 三、提示与注意事项 假定各位选手是某企业的信息安全工程师&#xff0c;负责服务器的维护&#xff0c; 该服务器可能存在着各种问题和漏洞&#xff08;见以下漏洞列表&#xff09;。你需要尽 快对服务器进行加固&#xff0c;30 分钟之后将会有很…

HTML学习笔记(二)

1.HTML图像 图像标签&#xff08;<img>)和源属性&#xff08;src&#xff09; HTML中&#xff0c;图像由<img>标签来定义&#xff0c;<img>是空标签&#xff0c;只包含属性&#xff0c;没有闭合标签。在页面上显示图像需要使用源属性&#xff08;src),src是指…

Q1季度方便速食行业线上市场(京东天猫淘宝)销售数据分析

方便食品行业作为快速消费品市场的重要组成部分&#xff0c;近几年表现出较为强劲的发展势头。当然&#xff0c;每年的食品安全问题也在一定程度上影响着市场的良性健康发展。那么&#xff0c;今年Q1季度方便食品的线上发展如何&#xff1f; 根据鲸参谋数据显示&#xff0c;Q1…

延时任务通知服务的设计及实现(二)-- redisson的延迟队列RDelayedQueue

一、接着上文 RDelayedQueue作为redisson封装的一个分布式延迟队列&#xff0c;直接拿来使用还是比较简单的。 本文主要包括以下几部分&#xff1a; 保存至延迟队列&#xff08;生产者&#xff09;读取延迟队列&#xff08;消费者&#xff09;从延迟队列移除任务 二、rediss…

静态路由深研究

在创建静态路由时&#xff0c;可以同时指定出接口和下一跳。对于不同的出接口类型&#xff0c;也可以只指定出接口或只指定下一跳。对于点到点接口&#xff08;如串口&#xff09;&#xff0c;可以指定出接口或者下一跳。对于广播接口&#xff08;如以太网接口&#xff09;和VT…

NDK 编译(二)—— NDK 编译与集成 FFmpeg

NDK 编译系列文章共三篇&#xff0c;目录如下&#xff1a; NDK 编译&#xff08;一&#xff09;—— Linux 知识汇总 NDK 编译&#xff08;二&#xff09;—— NDK 编译与集成 FFmpeg NDK 编译&#xff08;三&#xff09;—— CMake 原生构建工具 在使用 NDK 进行音视频开发时&…

Taro引入echarts【兼容多端小程序(飞书/微信/支付宝小程序)】

近期接到公司新需求&#xff0c;开发飞书小程序&#xff0c;并且原型中含有大量的图表&#xff0c;本想使用飞书内置图表组件 —— chart-space&#xff0c;但官方表示已经停止维护了&#xff0c;无奈之下&#xff0c;只能另寻他路&#xff0c;于是乎&#xff0c;图表之王&…

CRM客户关系管理-客户资源企业化销售管理平台

什么是CRM 客户关系管理&#xff08;Customer Relationship Management&#xff0c;简称CRM&#xff09;&#xff0c;是指企业为提高核心竞争力&#xff0c;利用相应的信息技术以及互联网技术协调企业与顾客间在销售、营销和服务上的交互&#xff0c;从而提升其管理方式&#…

dockerfile 搭建lamp 实验模拟

一 实验目的 二 实验 环境 1, 实验环境 192.168.217.88一台机器安装docker 并做mysql nginx php 三台容器 2&#xff0c; 大致框架 3&#xff0c; php php:Nginx服务器不能处理动态页面&#xff0c;需要由 Nginx 把动态请求交给 php-fpm 进程进行解析 php有三…

记录些AI Agents设计模式和NL2SQL知识

吴恩达分享的四种 自我反思&#xff08;Reflection&#xff09;&#xff1a;可以自我修正&#xff1b;使用工具&#xff08;Tool Use&#xff09;&#xff1a;链接其他系统去做一些事情&#xff0c;比如把电脑里面的未归档文件做好归档&#xff1b;规划&#xff08;Planning&a…

【炼金术士】BatchSize对网络训练的影响

文章目录 1 BatchSize对于网络训练的影响2 调整学习率可以提高大BatchSize的性能3 实际训练时的建议3.1 设置初始学习率的方法3.2 多卡训练时学习率的设置 参考资料&#xff1a; 【深度学习】Batch Size对神经网络训练的影响【AI不惑境】学习率和batchsize如何影响模型的性能&…

Windows使用SSH登录本机Linux虚拟机

SSH&#xff08;Secure Shell&#xff09;&#xff0c;一种网络协议&#xff0c;可以在安全外壳下实现数据传输通信&#xff0c;所以主要用于计算机间加密登录&#xff0c;可以简单理解为远程控制。除了计算机间直接互联&#xff0c;在git中也可以看到&#xff0c;常见的协议有…

购买 DDoS 高防 IP 防护哪家好?

DDoS 高防 IP 哪里买会比较好?在这场攻与守的游戏里&#xff0c;DDoS 高防 IP 是一种针对 DDoS 攻击的防护措施&#xff0c;通过将网站或应用的 IP 地址映射到高防 IP 上&#xff0c;实现对流量的清洗和过滤&#xff0c;从而有效抵御 DDoS 攻击。在选择 DDoS 高防 IP 服务提供…

Ubuntu下部署gerrit+报错分析(超详细)

Ubuntu下部署gerrit代码平台 之前安装过几次 最后都在Apache代理这里失败了&#xff0c;如下图&#xff0c;总是gerrit.config与Apache2.config配置有问题&#xff0c;后面换了使用ngnix代理&#xff0c;简单多了 安装Mysql、gerrit、jdk、git 这一步也是非必须得&#xff0…

无监督学习的评价指标

轮廓系数&#xff08;Silhouette Coefficient&#xff09; 轮廓系数用于判断聚类结果的紧密度和分离度。轮廓系数综合了样本与其所属簇内的相似度以及最近的其他簇间的不相似度。 其计算方法如下&#xff1a; 1、计算簇中的每个样本i 1.计算a&#xff08;i&#xff09; &#x…

实时采集麦克风并播放(springboot+webscoekt+webrtc)

项目技术 springbootwebscoektwebrtc 项目介绍 项目通过前端webrtc采集麦克风声音&#xff0c;通过websocket发送后台&#xff0c;然后处理成g711-alaw字节数据发生给广播UDP并播放。 后台处理项目使用线程池(5个线程)接受webrtc数据并处理g711-alaw字节数组放到Map容器中&…

opencv基础篇 ——(九)图像几何变换

图像几何变换是通过对图像的几何结构进行变换来改变图像的形状、大小、方向或者透视关系。常见的图像几何变换包括缩放、旋转、平移、仿射变换和透视变换等。下面对这些几何变换进行简要介绍&#xff1a; 矩阵的转置&#xff08;transpose &#xff09;&#xff1a; 对于图像来…

吴恩达2022机器学习专项课程(一) 7.1 逻辑回归的成本函数第三周课后实验:Lab4逻辑回归的损失函数

问题预览/关键词 上节课回顾逻辑回归模型使用线性回归模型的平方误差成本函数单个训练样本的损失损失函数&#xff0c;成本函数&#xff0c;代价函数的区别线性回归损失函数和逻辑回归损失函数的区别逻辑回归模型的成本函数是什么&#xff1f;逻辑回归模型的损失函数实验逻辑回…

STL——List常用接口模拟实现及其使用

认识list list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和后一个元素…