常见的软件系统性能测试指标

常见的软件系统性能测试指标

衡量一个软件系统性能的好坏,在性能测试中会使用一些性能指标来进行分析和描述,以下是一些最常用的性能指标。

1.2.1  响应时间

请求或者某个操作从发出的时间到收到服务器响应的时间的差值就是响应时间。在性能测试中,一般统计的是事务处理的响应时间。

图1-2-1是一次标准HTTP请求可能经过的处理路径和节点,那么响应时间的计算方式就是所有路径消耗的时间和每个服务器节点处理时间的累加,通常是网络时间+应用程序的处理时间。

1.2.2  TPS/QPS

事务是自定义的某个操作或者一组操作的集合。例如在一个系统的登录页面,输入用户名和密码,从单击“登录”按钮开始到登录完成跳转到页面,并且新的页面完全加载完成,这一个操作我们就可以定义为一个事务。

TPS是Transaction Per Second的缩写,即系统每秒能够处理的交易和事务的数量,一般统计的是每秒处理的事务数。

QPS是每秒查询率(Query Per Second)的缩写,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

1.2.3  并发用户

在真实的用户操作中,用户的每个相邻操作之间都会有一定的间隔时间(在性能测试中,我们称为用户思考时间),所以,并发用户一般有绝对并发和相对并发之分,绝对并发是指某个时间点同时一起向服务器发出请求的并发用户数,相对并发是指一段时间内向服务器发出请求的并发用户总数。单就性能指标而言,系统的并发用户数是指系统可以同时承载的、正常使用系统功能的用户总数量。

针对并发用户我们举例说明。在京东购物网站上购买一件商品的流程包括登录,浏览商品,把商品加入购物车,去购物车结算,确认商品清单,确认收货地址信息,最后提交订单去支付。如果200人同时按照这个流程购买一件商品,因为每个人购买商品的步骤有快有慢,所以在同一时间点向服务器发出请求的用户肯定不会有200人,会远远小于200人。如果我们假设为20人,那么上面说的200个用户就是相对并发用户数,而20个用户就是绝对并发用户数。

1.2.4  PV/UV

PV(Page View的简写)即页面的浏览量或者点击量。用户每次对系统或者网站中任何页面的访问均会被记录一次,用户如果对同一页面进行多次访问,那么访问量会进行累加。PV一般是衡量电子商务网站性能容量的重要指标。PV的统计可以分为全天PV、每个小时的PV以及峰值PV(高峰1小时的PV)。

UV(Unique Visitor的简写)指系统的独立访客。访问系统网站的一台电脑客户端会称为一个访客,每天00:00点到次日00:00点内相同的客户端只能被计算一次。同样UV的统计也可以分为全天UV、每个小时的UV以及峰值UV(高峰1小时的UV)。

PV和UV通常是衡量Web网站的两个非常重要的指标,PV/s一般是由TPS通过一定的模型转化为PV的,比如如果把每一个完整的页面都定义为一个事务,那么TPS就可以等同于PV/s。PV和UV之间一般存在一个比例,PV/UV可以理解为每个用户平均浏览访问的页面数,这个比值在不同的时间点会有所波动,比如双11电商大促销时,PV/UV的比重会比平时高很多。

1.2.5  点击率

每秒的页面点击数我们称为点击率(也就是通常说的hit),该性能指标反映了客户端每秒向服务端提交的请求数。通常一个hit对应了一次HTTP请求,在性能测试中,我们一般不发起静态请求(指的是对静态资源的请求,比如JS、CSS、图片文件等),所以hit通常是指的动态请求。在性能测试中,我们之所以不发起静态请求是因为静态请求一般是可以走缓存,比如CDN等,很多静态请求一般都不需要经过应用服务器的处理,要么直接走CDN缓存,要么直接请求到Web服务器就被处理完成了。

1.2.6  吞吐量

吞吐量是指系统在单位时间内处理客户端请求的数量。从不同的角度看,吞吐量的计算方式可以不一样。

  1. 从业务角度:吞吐量可以用请求数/s、页面数/s等来进行衡量计算。
  2. 从网络角度:吞吐量可以用字节/s来进行衡量计算。
  3. 从应用角度:吞吐量指标反映的是服务器承受的压力,即系统的负载能力。

一个系统的吞吐量一般与一个请求处理对CPU的消耗、带宽的消耗、IO和内存资源的消耗情况等紧密相连。

1.2.7  资源开销

每个请求或者事务对系统资源的消耗,用来衡量请求或者事务对资源的消耗程度,例如对CPU的消耗可以用占用CPU的秒数或者核数来衡量,对内存的消耗可以用内存使用率来衡量,对IO的消耗可以用每秒读写磁盘的字节数来衡量。在性能测试中,资源的开销是一个可以量化的概念,资源的开销情况对性能指标有着重要的影响,我们一般做性能优化时,都是尽可能让每一个请求或者事务对系统资源的消耗减少到最小。

本文节选自《软件性能测试、分析与调优实践之路(第2版)》,获作者和出版社授权发布。

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

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

相关文章

sqllab第二十三关通关笔记

知识点: mysqli_query() 返回值为资源型或布尔型如果内容为查询语句则返回资源型数据;如果内容为插入、更新、删除等语句则返回布尔类型结果mysql_fetch_array() 从结果集中取出一行作为关联数组或数字数组输入内容为指定查询的结果集单引号闭合绕过联…

位运算#蓝桥杯

位运算#蓝桥杯 文章目录 位运算#蓝桥杯1、小蓝学位运算2、异或森林3、位移4、笨笨的机器人5、博弈论 1、小蓝学位运算 #include<bits/stdc.h> using namespace std; using LL long long; const LL N 1e97; template<int kcz> struct ModInt { #define T (*this)…

C# Chart曲线控件专题

1.控件基本设置 chart1.ChartAreas[0].AxisY.IsStartedFromZero false; //设置Y轴自适应chart1.Series["瞬时值"].BorderWidth 2; // 设置曲线宽度为2个像素&#xff0c;注意[]中写入的Series的Namechart1.Series["瞬时值"].Color Color.Red; // 设置曲…

解决:黑马webpack视频中出现的问题总结

问题 1 ERROR in main Module not found: Error: Can‘t resolve ‘./src‘ 解决 Webpack 中 ERROR in main Module not found: Error: Can‘t resolve ‘./src‘ 问题 黑马AJAX-Node.js-Webpack教学视频&#xff08;BV1MN411y7pw 其中P98&#xff09;中webpack部分&#xff0c…

OCP NVME SSD规范解读-12.Telemetry日志要求

以NVME SSD为例&#xff0c;通常大家想到的是观察SMAR-log定位异常&#xff0c;但是这个信息在多数情况下无法只能支撑完整的定位链路。 定位能力的缺失和低效是数据中心问题解决最大的障碍。 为了解决这个问题&#xff0c;Meta的做法是推进OCP组织加入延迟记录页面。同时NVME协…

设计模式——结构型模式

结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式&#xff0c;前者采用继承机制来组织接口和类&#xff0c;后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低&#xff0c;满足“合成复用原则”&#xff0…

Laravel Class ‘Facade\Ignition\IgnitionServiceProvider‘ not found 解决

Laravel Class Facade\Ignition\IgnitionServiceProvider not found 问题解决 问题 在使用laravel 更新本地依赖环境时&#xff0c;出现报错&#xff0c;如下&#xff1a; 解决 这时候需要更新本地的composer&#xff0c;然后在更新本地依赖环境。 命令如下&#xff1a; co…

【高通camera hal bug分析】高通自带相机镜像问题

首先打了两个log&#xff0c;一个是开启镜像的log&#xff0c;还有一个是没有开启镜像的log&#xff0c;如果我们开启镜像以后&#xff0c;观察开启镜像log发现 , 这段代码走的没有任何问题&#xff0c;因为Flip的值等于1了。 关闭镜像log如下&#xff1a; 如果我们不开启镜像…

腾讯地图的(地图选点|输入模糊匹配)

1.支持用户输入框输入进行模糊匹配获取详细地址以及经纬度2.支持用户模糊匹配后点击选点获取详细地址以及经纬度 1.支持用户输入框输入进行模糊匹配获取详细地址以及经纬度2.支持用户模糊匹配后点击选点获取详细地址以及经纬度 <template><div class"tencentMap-…

lua脚本的基础内容

官方地址&#xff1a;http://luajit.org/ 官方wiki地址&#xff1a;http://wiki.luajit.org/Home 推荐书籍&#xff1a; OpenResty 最佳实践&#xff1a;https://moonbingbing.gitbooks.io/openresty-best-practices/content/ lua基础文档&#xff1a;https://www.runoob.com/l…

力扣大厂热门面试算法题 33-35

33. 搜索旋转排序数组&#xff0c;34. 在排序数组中查找元素的第一个和最后一个位置 &#xff0c;35. 搜索插入位置&#xff0c;每题做详细思路梳理&#xff0c;配套Python&Java双语代码&#xff0c; 2024.03.15 可通过leetcode所有测试用例。 目录 33. 搜索旋转排序数组…

SpringController返回值和异常自动包装

今天遇到一个需求&#xff0c;在不改动原系统代码的情况下。将Controller的返回值和异常包装到一个统一的返回对象中去。 例如原系统的接口 public String myIp(ApiIgnore HttpServletRequest request);返回的只是一个IP字符串"0:0:0:0:0:0:0:1"&#xff0c;目前接口…

一款比 K8S 更好用的编排工具——Nomod

今天给笔友们推荐一款最近发现的服务编排工具Nomad。综合感觉就是功能很强大&#xff0c;姿势很优雅&#xff0c;相比 K8S 更加轻量级&#xff0c;相比 Docker-Compose 能轻松支持分布式。 Nomad 能做什么&#xff1f; Nomad 采用统一的工作流程&#xff0c;既可以轻松部署和管…

20 OpenCV像素重映

文章目录 像素重映remap 重映算子代码示例 像素重映 简单点说就是把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去&#xff0c;形成一张新的图像。 g(x,y)是重映射之后的图像&#xff0c;h(x,y)是功能函数&#xff0c;f是源图像 remap 重映算子 Remap…

高效备考2025年AMC8竞赛:吃透2000-2024年600道真题(免费送题)

我们继续来随机看五道AMC8的真题和解析&#xff0c;根据实践经验&#xff0c;对于想了解或者加AMC8美国数学竞赛的考生来说&#xff0c;吃透AMC8历年真题是备考更加科学、有效的方法之一。 即使不参加AMC8竞赛&#xff0c;吃透了历年真题600道和背后的知识体系&#xff0c;那么…

阳光保险MySQL数据库平稳迁移OceanBase,稳定运营超700天

作者简介&#xff1a; 车东兴&#xff1a;于阳光保险就职&#xff0c;深耕保险行业的 IT 领域长达12 年&#xff0c;对保险领域的基础架构实践有深刻的理解与掌握。熟悉多款数据库&#xff0c;具有丰富的数据库运维经验。 王华城&#xff1a;于阳光保险就职&#xff0c;10多年一…

线性表——单链表的增删查改

本节复习链表的增删查改 首先&#xff0c; 链表不是连续的&#xff0c; 而是通过指针联系起来的。 如图&#xff1a; 这四个节点不是连续的内存空间&#xff0c; 但是彼此之间使用了一个指针来连接。 这就是链表。 现在我们来实现链表的增删查改。 目录 单链表的全部接口…

Swift:.ignoresSafeArea():自由布局的全方位掌握

ignoresSafeArea(_ regions : edges:)修饰符的说明 SwiftUI布局系统会调整视图的尺寸和位置&#xff0c;以避免特定的安全区域。这就确保了系统内容&#xff08;比如软件键盘&#xff09;或设备边缘不会遮挡您的视图。要将您的内容扩展到这些区域&#xff0c;您可以通过应用该修…

Python - 应用篇 :ChatGPT +Pycharm 序列号自动生成

前言&#xff1a; 客户要求在产品外壳上新增可追溯的二维码贴花&#xff0c;二维码信息内容如下&#xff1a; 编码格式&#xff1a;SBD 零部件代码 控制盒序列号 控制盒厂家 例如&#xff1a;[)>06P725-18428S24031410001ZJL SBD 零部件代码&#xff1a;[)>06P725-184…

【办公类-40-02】20240311 python模仿PPT相册功能批量插入照片,更改背景颜色 (家长会系列二)

作品展示——用Python插入PPT相册 背景需求&#xff1a; 马上就要家长会&#xff0c;我负责做会议前的照片滚动PPT&#xff0c;通常都是使用PPT的相册功能批量导入照片&#xff0c; 生成给一个新的PPT文件 更改背景颜色 设置4秒间隔&#xff0c;应用到全部 保存&#xff0c;改…