【服务端性能测试】性能测试指标!

接触过性能测试的小伙伴一定都听过响应时间(Response Time)、TPS、CPU资源利用率等术语,它们都属于性能测试的指标。本文对性能测试中涉及到的指标做了较为详细的整理。

性能测试指标一般可以分为系统性能指标、资源指标、应用指标:

  • 系统性能指标:如并发用户数、TPS(系统每秒处理事务数)、成功率、响应时间。
  • 资源指标:如CPU资源利用率、内存利用率、I/O、内核参数(信号量、打开文件数)等。
  • 应用指标:如空闲线程数、数据库连接数、GC/FULL GC次数、函数耗时等。

1. 系统性能指标

1.1 响应时间(Response Time, RT)

指标说明

响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。在性能测试中一般以压力发起端到被压测服务器返回处理结果的时间为计量,单位一般为毫秒。

平均响应时间指系统稳定运行时间段内,同一接口多次请求的平均响应时间。通常性能指标中的响应时间都是指平均响应时间。

如下图所示,以一个简单的客户端-服务器-数据库的应用架构来看,响应时间可以被分解为网络传输时间(N1+N2+N3+N4)和应用延迟时间(A1+A2+A3),而应用延迟时间又可以分解为数据库延迟时间(A2)和应用服务器延迟时间(A1+A3)。对响应时间进行分解使得我们能够更有效率得定位性能瓶颈。

Web应用的响应时间分解

参考标准

不同行业不同业务可接受的响应时间是不一样的,需要根据自身情况设定合适的符合用户使用要求的响应时间。

一般情况,对于在线实时交易:

  • 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。
  • 金融企业:1秒以下为佳,部分复杂业务3秒以下。
  • 保险企业:3秒以下为佳。
  • 制造业:5秒以下为佳。

1.2 成功率(Success Rate, SR)

指标说明

成功率指系统在负载情况下,失败成功的概率。可以根据交易数或请求数直接计算得出。对于稳定性较好的系统,其错误大概率由超时引起,即为超时率。

成功率=(失败成功数/交易总数)×100%。

参考标准

不同的系统对成功率的要求不同,但通常会要求成功率不低于99.4%,即错误率不超过千分之六。

1.3 并发用户数

指标说明

性能测试当然要模拟真实的用户访问,那该模拟多少用户来访问系统呢?从服务端承受的压力来考虑,系统毫无疑问是在大量用户同时访问(操作)系统时,承受了最大的压力。服务端在某一时刻承受最大并发访问数时的用户数就是“并发用户数”。在一些性能测试工具中,一般称为虚拟用户数(Virutal User, VUser)

与并发用户数相关的概念还包括系统注册用户数和在线用户数。以记账应用为例,该系统有1000个注册用户,最高峰时一共有500个用户是登录状态,此时有50个用户在页面点击了查看年度账单Tab,100个用户点击了记一笔的提交按钮,80个用户点击了明细页的日期切换查看账单列表,其他用户无操作可能在任意界面查看或填写表单。那么系统注册用户数为1000,在线用户数为500,并发用户数为50+100+80=230。

并发用户数概念说明

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

标准

一般情况下,性能测试不会测试并发用户数,而是将系统处理能力容量测出来。除了服务器长连接可能影响并发用户数外,系统处理能力不受并发用户数影响,可以用最小的用户数将系统处理能力容量测试出来,也可以用更多的用户将系统处理能力容量测试出来。

1.4 吞吐量

指标说明

吞吐量直接体现软件系统的性能承载能力,是指单位时间内系统处理的用户请求的数量。在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值。一般来说,吞吐量可以用以下几个更具体的指标来衡量:

  • RPS(Request per Second):系统每秒处理请求次数,单位是次/秒。
  • TPS(Transaction per Second):系统每秒处理事务数,单位是笔/秒。

事务是用户某一步或几步操作的集合,这些操作共同构成一个有意义的业务场景。比如用户对某一个页面的一次请求,用户对某系统的一次登录,商场用户对商品的一次确认支付过程。这些我们都可以看作一个事务。

参考标准

无论TPS、QPS、HPS,此指标是衡量系统处理能力非常重要的指标,越大越好,具体数值还是要根据系统自身业务情况确定。

  • 金融行业:1000 TPS~50000 TPS,不包括互联网化的活动。
  • 保险行业:100 TPS~100000 TPS,不包括互联网化的活动。
  • 制造行业:10 TPS~5000 TPS。
  • 互联网电子商务:10000 TPS~1000000 TPS。
  • 互联网中型网站:1000 TPS~50000 TPS。
  • 互联网小型网站:500 TPS~10000 TPS。

1.5 VUser和TPS的关系

TPS是系统每秒处理事务数,这些事务要靠VUser触发的:

  • 假如某个业务响应时间是1秒,那么1个VUser在1秒内能完成1个事务,TPS为1。要想达到 1000 TPS至少需要1000个用户。
  • 如果某个业务响应时间是1毫秒,那么1个VUser在1秒内能完成1000个事务,TPS为1000。

因此根据响应时间的快慢,1个用户可以产生 1000 TPS,1000个用户也可以产生1000 TPS。

由此我们可以得出几个结论:

  • 系统的性能由TPS决定,跟并发用户数没有多大关系。
  • 系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。

2. 资源指标

2.1 CPU

CPU指标主要指的CPU使用率、利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。CPU使用率、利用率要低于业界警戒值范围之内,即小于或者等于75%、CPU sys%小于或者等于30%,CPU wait%小于或者等于5%。单核CPU也需遵循上述指标要求。

2.2 内存

现代的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会引起系统性能低下。

2.3 磁盘

磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的重要依据,一般情况下,磁盘繁忙率要低于70%。

2.4 网络I/O

网络吞吐量指标主要有每秒有多少兆流量进出,一般情况下不能超过设备或链路最大传输能力的70%。

3. 数据库指标

常用的数据库例如MySQL指标主要包括SQL、吞吐量、缓存命中率、连接数等,具体如下:

MySQL指标

  • SQL耗时越小越好,一般情况下微秒级别。
  • 命中率越高越好,一般情况下不能低于95%。
  • 锁等待次数越低越好,等待时间越短越好。

END点赞关注不迷路! 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【路径穿越】vulfocus/apache-cve_2021_41773

1.1漏洞描述 漏洞编号cve_2021_41773漏洞类型路径穿越漏洞等级高危漏洞环境vulfocus攻击方式 1.2漏洞等级 高危 1.3影响版本 Apache HTTP Server 2.4.49、2.4.50 1.4漏洞复现 1.4.1.基础环境 靶场VULFOCUS工具BurpSuite 1.4.2.前提 1.5深度利用 1.5.1漏洞点 利用网上爆出…

Nginx 可视化管理平台:nginx-proxy-manager

本心、输入输出、结果 文章目录 Nginx 可视化管理平台:nginx-proxy-manager前言nginx-proxy-managernginx-proxy-manager 特性快速开始使用 Docker 网络开启 Docker 健康检查相关可视化页面相关链接弘扬爱国精神Nginx 可视化管理平台:nginx-proxy-manager 编辑:简简单单 Onl…

打开文件 和 文件系统的文件产生关联

补充1:硬件级别磁盘和内存之间数据交互的基本单位 OS的内存管理 内存的本质是对数据临时存/取,把内存看成很大的缓冲区 物理内存和磁盘交互的单位是4KB,磁盘中未被打开的文件数据块也是4KB,所以磁盘中页帧也是4KB,内存…

【AI视野·今日CV 计算机视觉论文速览 第277期】Fri, 27 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Fri, 27 Oct 2023 Totally 93 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers A Coarse-to-Fine Pseudo-Labeling (C2FPL) Framework for Unsupervised Video Anomaly Detection Authors Anas Al lahham…

Xrdp+Cpolar实现远程访问Linux Kali桌面

XrdpCpolar实现远程访问Linux Kali桌面 文章目录 XrdpCpolar实现远程访问Linux Kali桌面前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于…

【Spring Cloud】黑马头条 用户服务创建、登录功能实现

点击去看上一篇 一、创建用户 model 1.创建用户数据库库 leadnews_user 核心表 ap_user 建库建表语句 这里一定要使用 navicat,执行SQL 文件,以防止 cmd 中的编码问题 先将 SQL 语句,保存在电脑中,再使用 navicat 打开 CREATE…

代码静态测试工具之cppcheck

cppcheck简介 Cppcheck is an analysis tool for C/C code. It provides unique code analysis to detect bugs and focuses on detecting undefined behaviour and dangerous coding constructs. The goal is to detect only real errors in the code, and generate as few f…

数据库期末考前复习题(单选+多选+判断+解答)

文章目录 #数据库考前复习题一、 选择1.单选题2.多选题 二、判断题三、解答请描述数据库中的三大范式关系型数据库ACID特性 #数据库考前复习题 一、 选择 1.单选题 1.使用limit进行分页查询,其中每页10条数据,查询第5页应该写为? SELECT *…

java: 程序包XXX.XXX.XXX不存在解决方法

背景介绍: com.DXG.bean 来源于同一个项目底下的另一个包 问题所在: 明明已经引入了相关包 但是编译的时候报错:java: 程序包com.DXG.bean不存在 问题分析: 怀疑是拆模块以后引入相关包没有将相关包下载到本地maven仓库中 所以…

Qt QLable 字符过长省略

前言: 项目中常用到字符过长问题,Qt默认的省略并不好用,不是自己想要的; QFontMetri 可使用 QFontMetri 当text的像素宽度超过width,将返回字符串的一个省略版本取决于mode。否则将返回原字符串; mode…

C++面向对象编程(3)——常用关键字介绍(TODO)

本篇会逐步添加一些C的关键字,持续更新... 一. default 1.1 场景 如果对构造函数进行了重载,则编译器不会隐式的生成一个默认的构造函数,此时如果调用了默认构造函数会在编译时报错,但是很多时候我们是需要默认构造函数的。如何…

基于IDEA创建Maven工程及注意事项

Java全能学习面试指南:https://javaxiaobear.cn 1. 概念梳理Maven工程的GAVP Maven工程相对之前的项目,多出一组gavp属性,gav需要我们在创建项目的时候指定,p有默认值,我们先行了解下这组属性的含义: Ma…

Mac电脑VSCode配置PHP开发环境

1.安装 PHP 首先,打开终端,安装 Homebrew,输入如下命令: $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装了 Homebrew 之后,你可以使用下面的…

Apache Airflow (八) :DAG任务依赖设置

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…

User parameters自定义用户参数 (zabbix监控)

1、介绍和用法 ① 介绍 自定义用户参数,也就是自定义key 有时,你可能想要运行一个代理检查,而不是Zabbix的预定义 你可以编写一个命令来检索需要的数据,并将其包含在代理配置文件("UserParameter"配置参数)的用户参数中…

LabVIEW关于USRPRIO的示例代码

LabVIEW关于USRPRIO的示例代码 USRPRIO 通常以两种方式使用: 1 基于 FPGA 的编程 对于希望修改USRP上的底层FPGA代码以添加自定义DSP模块的应用,请使用USRP示例项目。它可作为构建 USRP RIO 流式处理应用程序的起点,可从“创建项目”对话框…

服务注册发现 springcloud netflix eureka

文章目录 前言角色(三个) 工程说明基础运行环境工程目录说明启动顺序(建议):运行效果注册与发现中心服务消费者: 代码说明服务注册中心(Register Service)服务提供者(Pro…

基于JavaWeb+SSM+社区居家养老服务平台—颐养者端微信小程序系统的设计和实现

基于JavaWebSSM社区居家养老服务平台—颐养者端微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 在复杂社会化网络中,灵活运用社会生活产生的大数据&am…

Shopee买家号有什么作用?如何才能拥有大量的虾皮买家号?

对于卖家而言,用shopee买家号进行测评有以下几点好处: 1、随时随地可以给自己店铺下单、评价、点星 2、成本很低:都是自己准备一些资料进行注册的,因此成本也是比较可控的。 3、自己管理更加安全可控:每个账号都是独…

03-关系和非关系型数据库对比

关系和非关系型数据库对比 关系型数据库(RDBMS):MySQL、Oracl、DB2、SQLServer 非关系型数据库(NoSql):Redis、Mongo DB、MemCached 插入数据结构的区别 传统关系型数据库是结构化数据,向表中插入数据时都需要严格的约束信息(如字段名,字段数据类型,字…