详细解读性能测试指标(性能指标、CPU、内存、负载、磁盘)

news2025/1/16 14:06:44

🍅 视频学习:文末有免费的配套视频可观看

🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快

性能测试指标是衡量系统性能的评价标准,常用的系统性能测试指标包括:响应时间、并发用户/并发、点击率、吞吐量、TPS/QPS、PV/UV;Linux服务器常用的性能指标包括:CPU使用率、内存占用率、磁盘IO、系统平均负载等。

一  系统性能测试指标

1.1 响应时间

响应时间是指某个请求或操作从发出到接收到反馈所消耗的时间,包括应用服务器(客户端)处理时间、网络传输时间以及数据库服务器处理时间。比如一个页面从点击/输入到完全加载的时间;完成一次增加、删除、修改或者查询动作的事务响应时间等。

一个请求在网络上的传输往往要经历多个网络节点才能到达目标服务器,我们假设请求经历了三个网络节点的传输时间B1、B2、B3,客户端的处理时间为A,服务器的响应时间为C。则一次请求的完整路径可以描述为下图:

客户端从发出请求到接收到服务器反馈的完整链路时间为A—>B1—>B2—>B3—>C(节点处理时间都包括接收和发送两个过程)。则请求的响应时间为:

响应时间=A+B1+B2+B3+C

1.2 并发

并发是指多个用户在同一时期内进行相同的事务处理或操作。由于用户在进行一系列操作流程时有一定的时间间隔(即用户思考时间)或者服务器处理请求有先后顺序,于是,就产生了绝对并发和相对并发概念的区分。

绝对并发是指同一时刻(即同一时间点)并发用户对服务器同时发送请求。

相对并发是指一段时间内(即同一时间区间)并发用户对服务器发送请求。

举个例子,一个并发量为10000人(可同时容纳10000人)的动物园,这里的并发量是指绝对并发还是相对并发呢?我们很容易理解,这个并发指的是相对并发,因为整个动物园是一个交织的网状结构,出入口、老虎、狮子、大象等各个动物站点都有分流的作用,基本不可能出现出入口或者站点能够同时承载10000人的情况,出入口的并发可能只有200人。因此这个动物园的例子里,并发量10000是指各个节点的总和,参观者参观动物园有路径的先后顺序,是相对并发的概念。而出入口的并发量是200人,则是指同一时间在出入口能够同时容纳200人,这就是绝对并发的概念。

一般来说,在系统的性能测试中,系统或者模块的并发更多是指相对并发,而接口的并发更倾向于绝对并发。并发性能的概念是指系统、模块或接口稳定运行,不抛出异常情况下所能够承载的并发量。

在并发性能测试中常用到并发用户数和并发请求数两个指标。顾名思义,并发用户数是指同一时间(点或区间),系统、模块或接口能够承载的用户数量;并发请求数是指同一时间(点或区间),系统、模块或接口能够承载的请求数量。

1.3 点击量/点击率

点击量是衡量网站流量的一个指标,也就是点击数clicks,是对网站点击数据的统计。

点击率(Clicks Ratio)也可以叫做点进率(“Click-through Rate),它是网站上某一内容被点击的次数与整个网站内容被显示次数之比,即clicks/views。反应了网站上某一页面或内容的受关注程度,经常用来衡量广告的吸引程度。比如公众号的一篇文章被浏览了10w次,文章中的广告链接被点击了2000次,那么这条广告的点击率是2%(2000/100000*100%)。

在性能测试领域,点击率(hit rate)常指单位时间内(每秒钟)页面的点击数,即每秒钟发送的http请求数量,点击率越大对服务器造成的压力也越大,对服务器的性能要求也越高。

有些人容易混淆点击率和点击量的概念,比如我们经常会听到有人说某网站的点击率是多多万,实际上这里的点击率指的是点击量,曝光率或者说页面浏览量。

1.4 吞吐量/吞吐率

吞吐量是指系统处理客户请求数量的总和,可以指网络上传输数据包的总和,也可以指业务中客户端与服务器交互数据量的总和。

吞吐率是指单位时间内系统处理客户请求的数量,也就是单位时间内的吞吐量。可以从多个维度衡量吞吐率:①业务角度:单位时间(每秒)的请求数或页面数,即请求数/秒或页面数/秒;②网络角度:单位时间(每秒)网络中传输的数据包大小,即字节数/秒等;③系统角度,单位时间内服务器所承受的压力,即系统的负载能力。

吞吐率(或吞吐量)是一种多维度量的性能指标,它与请求处理所消耗的CPU、内存、IO和网络带宽都强相关。

1.5 TPS/QPS

TPS(Transaction Per Second)是指单位时间(每秒)系统处理的事务量。事务可以是用户自定义的一系列操作或者动作的集合,比如“用户注册“事务是点击注册按钮,填写用户注册信息,点击提交按钮,以及加载注册成功页面的动作集合。

QPS(Query Per Second)是指单位时间内查询或访问服务器的次数。

TPS和QPS的区别在于一个事务可以包含多次查询或访问服务器,也可以只查询或访问一次服务器。当多次查询或访问时,一个TPS相当于多个QPS;当只查询或访问一次时,一个TPS则等价于一个QPS。

1.6 PV/UV

PV和UV是衡量web网站性能容量的两个重要度量指标,经常用在电子商务网站领域中用来衡量网站的活跃度。

PV(Page View)是页面的浏览量或点击量,用户对系统或者网站任何页面的每一次点击或者访问都会被记录一次浏览量或点击量,对相同页面进行多次访问浏览量或点击量也会进行累计。

UV(Unique Vistor)是系统或者网站的独立访客,一段时间内相同客户端(或PC)访问系统或者网站只会被记录一次,连续重复访问或者浏览多个系统页面次数不会进行累计。

PV和UV按照统计周期划分,可以划分为全天PV、每小时PV、全天UV和每小时UV等。在一些数据或交易量非常庞大的场景中,比如双11或618等全民购物活动时,常常还会统计峰值PV和峰值UV。

二  Linux服务器性能指标

2.1 CPU使用率

CPU使用率是单位时间内服务器CPU的使用统计,可以用除CPU空闲时间外其他时间占总CPU时间的百分比来表示,即:CPU使用率=1-CPU空闲时间/总CPU时间

命令:#top          //top工具间隔3s会动态滚动更新一次数据

字段说明:

us (user):用户态的CPU使用时间比例,是用户运行程序的真正时间,它不包括后面的ni时间;

sy (system): 内核态的CPU使用时间比例,是操作系统的运行时间,操作系统运行时,用户运行程序往往处于等待状态;

ni (nice): 表示低优先级用户态的CPU时间比例,取值范围为[-20,19],数值越大,则优先级越低;

id (idle): 表示空闲的CPU时间比例,值越大,CPU空闲时间比例越高,利用率越低;

wa (iowait): 表示处于IO等待状态的CPU时间比例;

hi (hard interrupt): 表示处理硬中断的CPU时间比例;

si (soft interrupt): 与hi相反,表示处理软中断的CPU时间比例;

st (steal): 表示当前系统运行在虚拟机中被其他虚拟机占用的CPU时间比例。

在性能测试中,系统整体的CPU使用率可以用(1-id)来计算。当us很高时,说明CPU时间主要消耗在用户代码上,可以从用户代码角度考虑优化性能;当sy很高时,说明CPU时间主要消耗在内核上,可以从是否系统调用频繁、CPU进程或线程切换频繁角度考虑性能的优化;当wa很高时,说明有进程在进行频繁的IO操作,可能是磁盘IO或者网络IO。

一般情况下,如果%us+%sy<=70%,我们可以认为系统的运行状态良好。

2.2 内存占用率

Linux的系统内存管理机制遵循内存利用率最大化的原则。内核会将空余的内存划分为cached(不属于free),对于有频繁读取操作的文件或数据会被保存在cached中。因此,对于linux系统来说,可用于分配的内存不止free的内存,同时还包括cached的内存(其实还包括buffers的内存)。

cached和buffers都属于缓存,它们的区别主要在于cached主要用来缓冲频繁读取的文件,它可以直接记忆我们打开的文件内容;而buffers主要用来给块设备做的缓冲大小,只记录文件系统的metadata以及tracking in-flight pages信息,比如存储目录里面的内容,权限等。

top工具既可以查看系统CPU使用情况,也可以查看系统内存使用信息。

命令:#top         

在性能测试中,经常会用到系统已用内存、物理已用内存、系统内存占用率以及物理内存占用率这几个指标,它们的计算公式如下:

系统已用内存MemUsed=MemTotal-MemFree           //包含buffers和cached

物理已用内存-/+Used= MemTotal-MemFree-MemBuffers-MemCached

系统内存占用率MemUsed%=(MemUsed/ MemTotal)*100%

物理内存占用率-/+Used%=(-/+Used/ MemTotal)*100%

一般情况下,系统内存占用率<=70%,我们可以认为系统的内存使用情况良好,如果超出则说明系统内存资源紧张。

2.3 系统平均负载

当发现系统出现卡断或者运行不顺畅时,我们可以通过uptime,top或者w命令来查看系统的负载情况。

命令1:#uptime

命令2:#top

命令3:#w

Linux的load average表示系统负载的平均值,显示的三个数值分别表示1分钟、5分钟和15分钟内的平均负载情况。这里的平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,可以简单的理解为平均负载就是系统平均活跃进程数。其中可运行状态是指正在使用CPU或者正在等待CPU的进程(处于R状态:Running或者Runnable的进程);不可中断状态的进程指的是正处于内核态关键流程中的进程,处于这个流程的进程是不可打断的,比如等待硬件设备的I/O响应。

举个例子,当平均负载的值为4:

对于只有1个CPU的系统,意味着平均有3个进程竞争不到CPU;

对于拥有4个CPU的系统,意味着CPU利用率为100%;

对于拥有8个CPU的系统,意味着CPU利用率为50%,有一半空闲。

可以看出,当系统平均负载的值如果超过系统CPU的数量时,那么系统有可能会遇到性能瓶颈,要视具体情况而定。

在性能测试中,我们也经常会通过比较1min、5min或者15min的值,来判断系统平均负载的变化情况:

如果1min的值大于5min或者15min的值,说明负载在增加;

如果1min的值小于5min或者15min的值,说明负载在减小;

2.4 磁盘IO

Linux服务器性能除了CPU和内存外,还有磁盘IO也是一种常用的性能指标。

命令:#iostat –x –k 2 3     //每隔2S输出磁盘IO的使用情况,共采样3次

通过ll /dev/mapper命令可以查看dm-x与磁盘逻辑卷的映射关系;

字段说明:

rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并;

wrqm/s: 每秒对该设备的写请求被合并次数;

r/s: 每秒完成的读次数;

w/s: 每秒完成的写次数;

rkB/s: 每秒读数据量(kB为单位);

wkB/s: 每秒写数据量(kB为单位);

avgrq-sz:平均每次IO操作的数据量(扇区数为单位);

avgqu-sz: 平均等待处理的IO请求队列长度;

await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位);

svctm: 平均每次IO请求的处理时间(毫秒为单位);

%util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率;

在性能测试中,我们可以重点关注iowait%和%util参数。其中iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题了;%util表示磁盘忙碌的情况,一般%util<=70%表示该磁盘IO使用状态良好。

2.5 linux常用性能命令

2.5.1 CPU

命令1: # cat /proc/cpuinfo          //获取CPU详情

命令2: # top       //包含CPU、内存使用等情况,常用命令

2.5.2 内存

命令1: # free –h

命令2:# top

2.5.3 负载

命令1:#uptime

命令2:#top

命令3:#w

2.5.4 磁盘

命令1: #fdisk –l           //查看硬盘及分区情况

命令2:# df –h          //查看文件系统的磁盘空间使用情况

2.5.5 整体

命令:# vmstat 3 2         //每3秒一次,共2次

如果文章对你有帮助,记得点赞,收藏,加关注

在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看。

字节大佬,一周讲完,自动化测试项目实战,这套教程是怎么称霸B站的?【2024最新版】

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

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

相关文章

remmina无法连接远程桌面,Remmina无法连接远程桌面的原因与解决办法

在解决Remmina无法连接远程桌面的问题时&#xff0c;我们需要考虑多种可能的原因&#xff0c;并采取相应的解决办法。以下是一些常见的原因及其对应的解决方案&#xff1a; 1、网络问题 原因&#xff1a;不稳定的网络连接或中断可能导致无法建立远程桌面连接。 解决办法&#x…

环保设备统一管理系统

在环保意识日益增强的今天&#xff0c;企业如何有效管理环保设备&#xff0c;确保其正常运行&#xff0c;减少环境污染&#xff0c;成为了一个重要议题。HiWoo Cloud平台以其独特的环保设备统一管理系统&#xff0c;为企业提供了一套完整的解决方案&#xff0c;帮助企业实现绿色…

量化地形处理

1: 量化地形切片&#xff1a;GDAL查询数据&#xff1b;CTB算法转mesh&#xff1b;高度图需要和周围高度图边界做高度融合&#xff0c;四顶点需要做平均值融合&#xff1b;法线想要在前端显示正确必须将mesh坐标转为4326或者3857&#xff1b; 这个使用开源即可&#xff1a;cesi…

肖特基二极管 SOD-123HE封装 散热性好

肖特基二极管发热问题&#xff0c;一直是众多电子工程师常讨论的话题之一。在实际应用中&#xff0c;肖特基二极管发热量真地不容忽视&#xff0c;其发热量大小和实际工作电流和压降大小有关。针对肖特基二极管发热问题&#xff0c;二三极管厂家东沃电子DOWOSEMI有几点建议&…

怎么编辑百度百科个人词条

辑百度百科个人词条是一个相对复杂的过程&#xff0c;需要遵循一定的步骤和规则。以下是百科优化网整理的编辑百度百科个人词条的步骤和注意事项。 1. 确定编辑资格 百度百科个人词条的编辑权主要赋予那些具有一定影响力的公众人物&#xff0c;或者是有一定“身份”的人物&…

STM32 GPIO介绍

每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL&#xff0c; GPIOx_CRH)&#xff0c;两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR)&#xff0c;一个32位置位/复位寄存器(GPIOx_BSRR)&#xff0c;一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。 通过软件配置寄…

idea修改maven项目名称及子模块名称

一、修改目录名称 shift F6修改目录&#xff0c;选择“rename module and dictionary”。![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/43efd9c6af6e43ad9656455db94b37a2.png)二、修改子项目pom的 三、修改父项目pom的 四、刷新maven项目

SpringBoot:SpringBoot:实战项目TILAS智能学习辅助系统1.3

登录认证 需求:输入登录请求服务器判断用户的用户名和密码 //控制层 PostMapping("/login")public Result login(RequestBody Emp emp);Overridepublic Result login(Emp emp) {Emp emp1 empService.selectLogin(emp);if(emp1 null){System.out.println("用…

企业百度百科词条怎么修改

在进行企业百度百科词条的修改前&#xff0c;首先需要做好以下准备&#xff1a; 注册并登录百度账号&#xff1a;只有注册并登录了百度账号&#xff0c;你才能进行词条的编辑和修改。 熟悉百度百科编辑规则&#xff1a;了解百度百科的编辑规则&#xff0c;包括内容要求、格式规…

思通数科大模型在智能数据查询系统中的深度应用:销售数据分析的革新

在企业决策支持系统中&#xff0c;销售数据分析占据着举足轻重的地位。思通数科的大模型技术&#xff0c;结合自然语言处理&#xff08;NLP&#xff09;和机器学习&#xff0c;为智能数据查询系统提供了强大的分析能力。本文将详细描述思通数科大模型在销售数据分析中的应用&am…

2020 年国考【计算机专业】真题及答案

真题及答案 第一部分数学基础课程 一、&#xff08;共 5 分&#xff09;用逻辑符号表达下列语句&#xff08;论域为包含一切事物的合集&#xff09; &#xff08;2 分&#xff09;确诊者并不都有症状&#xff08;注&#xff1a;需给出两种形式表达, 一种用存在量词, 一种用全称…

ASP.NET小型证券术语解释及翻译系统的设计与开发

摘 要 在系统设计上&#xff0c;综合各种翻译类型网站优缺点&#xff0c;设计出具有任何使用者都可添加术语信息的且只有管理员能够实现术语修改及删除等独特方式的术语查看管理系统。此方式能够使术语量快速增大&#xff0c;并且便于使用者及管理员操作&#xff0c;满足相互…

J1019基于SpringBoot的护肤品推荐系统设计与实现(源码+包运行+技术指导)

项目描述 临近学期结束&#xff0c;开始毕业设计制作&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉的困难吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的护…

万用板是什么?和印刷电路板一样吗?

同学们大家好&#xff0c;今天我们继续学习杨欣的《电子设计从零开始》&#xff0c;这本书从基本原理出发&#xff0c;知识点遍及无线电通讯、仪器设计、三极管电路、集成电路、传感器、数字电路基础、单片机及应用实例&#xff0c;可以说是全面系统地介绍了电子设计所需的知识…

C/C++ 入门(10)list类(STL)

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;C 欢迎来指教&#xff01; 一、标准库中的list 1、了解 list&#xff1a;是一个双向带头循环链表&#xff0c;不支持随机访问&#xff08;即下标访问&#xff09;&#xff0c;任意位置的插入删除效率高。 …

python与java用途区别有哪些

区别&#xff1a; 1.Python比Java简单&#xff0c;学习成本低&#xff0c;开发效率高。 2.Java运行效率高于Python&#xff0c;尤其是纯Python开发的程序&#xff0c;效率极低。 3.Java相关资料多&#xff0c;尤其是中文资料。 4.Java版本比较稳定&#xff0c;Python2和3不…

《动手学深度学习》预备知识和安装环境

哈喽&#xff0c;欢迎来到自学深度学习小白的文章&#xff0c;本文将介绍anacoda是什么和有什么用&#xff0c;以及在win10环境下如何安装运行环境。 关于anaconda 1.环境 准备开始写代码了&#xff0c;教材总是先叫你配好环境&#xff0c;环境可以堪称一栋房子&#xff0c;…

如何给正弦信号添加12V直流偏置

一个有趣问题的探究&#xff1a; 运放在单电源的情况下只能输出正电压&#xff08;单方向的&#xff09;&#xff0c;这就使得有正负值的信号电压只能输出一半&#xff1a; 【单电源供电的运放如何增加直流偏置】&#xff08;电阻分压法&#xff09;&#xff1a; 单电源供电的…

【工具推荐定制开发】一款轻量的批量web请求命令行工具支持全平台:hey,基本安装、配置、使用

背景 在开发 Web 应用的过程中&#xff0c;作为开发人员&#xff0c;为了确认接口的性能能够达到要求&#xff0c;我们往往需要一个接口压测工具&#xff0c;帮助我们快速地对我们所提供的 Web 服务发起批量请求。在接口联调的过程中&#xff0c;我们通常会用 Postman 等图形化…

认识大模型提示词

一、写作助理 &#x1f4a5;最常使用的 prompt&#xff0c;用于优化文本的语法、清晰度和简洁度&#xff0c;提高可读性。 输入&#xff1a;作为一名写作改进助理&#xff0c;你的任务是改进所提供文本的拼写、语法、清晰、简洁和整体可读性&#xff0c;同时分解长句&#xff…