常用性能指标、性能指标评估及性能测试通过标准

news2024/11/22 22:25:17

一、常用性能指标

1、并发用户数

指同一时间点对系统进行操作的用户数。准确说为"同时向服务器发送服务请求,给服务器产生压力的用户数量"

并发用户数和注册用户数、在线用户数的概念不同:

并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,不一定对服务器不产生压力,注册用户数一

般指的是数据库中存在的用户数。

2、 吞吐量(Throughput)

指的是单位时间内处理的客户端请求数量。

1). 从业务角度来看,吞吐量指每秒事务数。单位:“Requests/Second”

2). 从网络角度来看,吐量量指每秒字节数,用来衡量网络的流量。单位:“Bytes/Second”

3、每秒事务数(TPS)/每秒查询率(QPS)

3.1、TPS(Transactions Per Second):每秒事务事,单位时间内处理的事务数量,它表示系统的处理能力。

事务是一个或者多个操作的集合,可以一个接口、多个接口、一个业务流程、多个业务流程等等。

3.2、QPS(Queries Per Second):每秒查询率,是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询sql的次数)

3.3、区别:

如果一个事务,调了1个接口,且这个接口内部不会再去请求其它接口,那么tps=qps,否则,tps≠qps

4、响应时间(RT)

指客户端发起服务请求到服务器处理完服务请求并返回结果给客户端的时间

所谓响应时间的“2-5-8原则”,简单说,就是

当用户能够在2秒以内得到响应时,会感觉系统的响应很快;

当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;

当用户在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;

而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点

二、性能指标评估

一、背景

做性能测试之前,最好先定义清楚性能指标。这样我们才能评估测试结果是否满足预期。最理想的情况是,开发、产品、

项目经理已经提前定义好性能指标。但是理想和现实的差距非常大。

二、获取性能指标

如果用户有明确的性能指标,直接使用即可;如果没有,首先要进行需求分析,以获取满足要求的性能指标,

如通过业务调研、日志信息等获取系统最大在线用户数、业务分布、业务高峰时间段、业务高峰期业务量等

三、性能指标计算/统计方式

1、性能测试范围:通过业务分布来确定性能测试的范围

2、并发用户数

(1)、通过TPS来估算并发用户数

并发用户数 = TPS*(RT+Think Time) 备注:TPS根据业务调研、需求分析可以计算

(2)、通过在线活动用户数来估算并发用户数

平均并发用户数:C=nL / T

备注:n是平均每天访问用户数(login session的数量),L是一天内用户从登录到退出的平均

时长(login session的平均时间),T是考察时间长度(一天内多长时间有用户使用系统)

并发用户数峰值:
在这里插入图片描述
C是平均并发用户数,该公式遵循泊松分布理论。

举例,假设系统A,该系统有3000个用户,平均每天大概有400个用户要访问该系统(可以从系统

日志从获得),对于 一个典型用户来说,一天之内用户从登陆到退出的平均时间为4小时,而在一天

之内,用户只有在8小时之内会使用该系统。

平均并发用户数为:C = 400*4/8 = 200

并发用户数峰值为:C‘ = 200 + 3*根号200 = 243

(3)、通用公式

对绝大多数场景,我们用(用户总量/统计时间)*影响因子(一般为3)来进行估算并发量。

比如,以乘坐地铁为例子,每天乘坐人数为5万人次,每天早高峰是7到9点,晚高峰是6到7点,

根据8/2原则,80%的乘客会在高峰期间乘坐地铁,则每秒到达地铁检票口的人数为:

50000*80%/(3*60*60)=3.7

约4人/S,考虑到安检,入口关闭等因素,实际堆积在检票口的人数肯定比这个要大,假定每个人

需要3秒才能进站,那实际并发应为4人/s*3s=12,当然影响因子可以根据实际情况增大!

(4)、根据系统在线用户数计算

并发用户数 = 系统最大在线用户数的8%到12%

在进行并发用户数评估的时候,不仅要满足当前的性能需求,还要满足未来2~3年不断增长的业务量和用户量的需求。所以评估时候要考虑未来几年的业务增长率。

3、TPS(每秒事务数):通过某时间段业务量的峰值来确定TPS(峰值才能真实反映服务器的最大处理能力),TPS=总的事务数/总的时间 ,中间会用到二八法则:指80%的业务量在20%的时间里完成。

4、响应时间

(1).响应时间2-5-8原则

当用户能够在2秒以内得到响应时,会感觉系统的响应很快;

当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;

当用户在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;

而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站

点,或者发起第二次请求。

(2).通过公式:并发用户数 = TPS*(RT+Think Time),来计算响应时间

5、事务成功率

单位时间内系统可以成功完成多少个定义的事务,在一定程度上反应了系统的处理能力,一般事务成功率要求100%或大于99%

6、系统资源使用率

(1).CPU使用率:指用户进程与系统进程消耗的CPU百分比,长时间情况下,一般不超过80%~85%;

(2).内存利用率:内存利用率=(1-空闲内存/总内存大小)*100%,内存使用率一般不超过80%~85%;

(3).磁盘I/O: 磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写

IO操作,取数据的时候对应的是是读IO操作,一般使用磁盘用于读写操作所占用的时间百分比度量磁盘

读写性能;如:Linux命令:iostat -d -x # -d 显示磁盘使用情况,-x 显示详细信息

%util: 一秒中有百分之多少的时间用于 I/O

如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷

(4).网络带宽:一般使用计数器Bytes Total/sec来度量,其表示为发送和接收字节的速率,包括帧字符在内;判断网络连

接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较;

对于新项目、还未上线的项目:

建议:可以不要管什么性能指标,直接开始测试,测试完成后,将测试结果发送给相关人员进行评估,最终决定测试结果

是否满足系统性能要求。

三、性能测试通过标准(参考)
性能测试通过标准包括服务端性能、前端性能和用户体验性能,常规通过标准如表所示:

一.通用互联网服务端性能

1.TPS(每秒事务数)大于期望值

2.响应时间小于期望值

3.错误率小于0.5%(事务成功率大于99.5%)

4.CPU使用率小于75%

5.JVM内存使用率小于80%

二.用户感知正常响应时间的标准

2-5-8原则:

1.如果响应时间在2s内,用户会觉得系统很快

2.如果响应时间在2~5秒之间,用户会觉得系统的响应速度还可以

3.如果响应时间在2~8秒之间,用户会觉得系统的响应速度很慢,但还可以勉强接受

4.而当超过8秒后仍无法得到响应时,用户会觉得系统糟糕透了,或认为系统已经失去响应

三.用户感知特殊响应时间的标准

1.普通业务操作响应时间:5秒内

2.万级数据量查询响应时间:8秒内

3.百万级数据量查询响应时间:10秒内

4.千万级别数据量查询响应时间:20秒内

四.中间件的一些标准

1.当前正在运行的线程数不能超过设定的最大值

2.当前运行的JDBC连接数不能超过设定的最大值

3.GC频率不能频繁,特别是FULL GC更不能频繁,FullGC频率大于半小时每次。

五.全栈性能修炼宝典中的标准(借鉴):
在这里插入图片描述
六、其它说明:

为什么要减少FullGC频率:FullGC会产生应用程序停顿,整个应用程序线程都会被暂停,没有任何响应,有点像卡死的感觉。

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

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

相关文章

Mac FortiClient VPN一直连接不上?正确的安装步骤来了!

Mac FortiClient完整版安装 1、下载FortiClient 这里使用FortiClient 7.0.7的版本。登录fortiClient 7.x 网站下载FortiClient_7.0.7.0245_macosx.dmg。 2、当然要是不想注册,也可以点击这里! 3、或者安装我这里的固定版本【百度网盘】提取码&#xff…

极狐GitLab as Code,全面升级你的 GitOps 体验

💡 近日,由微软和英特尔联合发起的第二届开源云原生开发者日(Open Source Cloud Native Developer Day)上海站顺利落幕。极狐(GitLab) 资深云原生架构师郭旭东在会上进行了《深度探索 GitOps 平台的更多可能》主题演讲&#xff0c…

关于wxapkg路径的一些问题

1 下载安装夜神模拟器。 官网地址:https://www.yeshen.com在模拟器中安装微信,可以下载apk后拖进去,也可在里面下载。不需要RE文件管理器,目前夜神自带Amaze文件管理器,一样的。路径地址为: /data/data/c…

Ubuntu16.04布置CenterFusion记录

安装细节 CenterFusion/src/tools/convert_nuScenes.py内容修改 如果你用的是nuscenes数据集中的Mini部分,那就把convert_nuScenes.py第27行内容中的其他部分注释掉 convert_nuScenes.py在56行处,将数量修改为3 nuscenes-devkit下载 将nuscenes-dev…

计算机网络实验(ensp)-实验1:初识eNSP仿真软件

目录 实验报告: 实验操作 1.建立网络拓扑图并开启设备 2.配置路由器 1.输入命名:sys 从用户视图切换到系统视图 2.输入命名:sysname 姓名 修改路由器名字 3.输入命名:interface g0/0/0 进入端口视图g0…

开源同城跑腿系统(PHP版)

同城跑腿系统的优点在于,它可以为用户提供方便快捷的服务,避免了用户自己跑腿的麻烦和时间成本,同时也为跑腿人员提供了一种灵活的兼职方式 此系统是一款基于likeadmin-php开发的跑腿小程序系统,提供全部前后台无加密源代码&…

知乎高赞回答|只需5分钟,一文教你理解结构化和非结构化数据!

什么是结构化数据? 结构化数据:指关系模型数据,即以关系数据库表形式管理的数据,结合到典型场景中更容易理解,比如企业ERP、OA、HR里的数据。 什么是非结构化数据? 非结构化数据:指数据结构不…

el-tree饿了么elementUI tree树结构插件设置全部展开折叠

效果如上图↑ // 折叠所有节点 foldAllNodes(type) {let treeNodes this.$refs[type _tree].store._getAllNodes()for (var i 0; i < treeNodes.length; i) {treeNodes[i].expanded false;} }, // 展开所有节点 expandAllNodes(type) {let treeNodes this.$refs[type …

Centos7使用for循环语句批量修改文件名

O、前言 虽然单个文件更名&#xff0c;我们可以使用mv命令进行更名。那几百个文件更改&#xff0c;这个工程量比较大&#xff0c;下面介绍一下如何使用for循环语句来批量修改文件名。 一、环境介绍 1.Centos版本:Centos7-X86_64-Eeverything2009 二、命令介绍 这里主要用到ba…

企业电子商务系统 b2b2c o2o 多商家入驻商城 直播带货商城 电子商务

一个好的SpringCloudSpringBoot b2b2c 电子商务平台涉及哪些技术、运营方案&#xff1f;以下是我结合公司的产品做的总结&#xff0c;希望可以帮助到大家&#xff01; 搜索体验小程序&#xff1a;海哇 1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家…

语音常识与基本概念

img { margin: auto; display: block } 数字信号 连续时间信号&#xff1a;在连续时间范围内定义的信号&#xff0c;信号的幅度可以是连续的(模拟信号)&#xff0c;也可以是离散的 离散时间信号&#xff1a;时间为离散变量的信号&#xff0c;即独立变量时间被量化了&#xff0c…

时钟同步-注意客户端和服务端都需要开启123端口 udp协议

确认时钟源 chronyc sources -v chronyc tracking Linux ❉ Chronyd时间同步服务器详解_wangjie722703的博客-CSDN博客 local stratum 10: 即使自己未能通过网络时间服务器同步到时间,也允许将本地时间作为标准时间授时给其它客户端 确认 端口是否打开 Nmap -sU -p 123 192…

创客匠人5月产品升级,功能更新(上)

创客匠人致力为老师们打造更好的知识付费平台&#xff0c;如今&#xff0c;又迎来一波超厉害产品功能升级&#xff0c;有没有你期待的功能上线呢&#xff1f;我们一起来看看吧&#xff01; 正式升级迭代时间&#xff1a;2023年5月18日 一、公众号店铺支持支付宝支付 微信公…

Redis的五大数据类型

一、String数据类型 概述&#xff1a;String是redis最基本的类型&#xff0c;最大能存储512MB的数据&#xff0c;String类型是二进制安全的&#xff0c;即可以存储任何数据、比如数字、图片、序列化对象等 1. SET/GET/APPEND/STRLEN: append命令&#xff1a;append key valu…

log4cplus: 一个好用的日志模块。编译以及使用

log4cplus 日志 介绍 log4cplus 是一个 C 版本的日志库&#xff0c;它是 Apache 组织的 log4j 日志库的一个开源实现。log4cplus 提供了一个灵活的、高性能的日志系统&#xff0c;支持多线程、本地化和分层结构。 log4cplus 的主要特点如下&#xff1a; 灵活性&#xff1a;…

jetson nx 用windows远程连接

VNC Viewer远程连接 一、jetson nx配置vnc 1、安装客户端 sudo apt-get install xrdp vnc4server xbase-clients2、进入nano/nx桌面&#xff0c;打开“Setting–>Desktop sharing”&#xff0c;没反应&#xff0c;据说是bug&#xff0c;我试过nano和nx都一样。首先输入下…

研发效能管理中的经典度量——DORA 指标

有一个组织&#xff0c;每年都会基于对相关从业者的调研和分析&#xff0c;发布一份《DevOps 行业状态报告》&#xff0c;揭秘研发团队的 DevOps 健康状况和平均效能水平&#xff0c;至今已持续了 9 年。目前&#xff0c;全球有超过三万名专业人士参与该调研&#xff0c;而它也…

前端路由+原生JS实现SPA

●前端路由 ●路由: 就是一一对应关系的集合 ●前端路由: 就是一个 url 地址, 对应哪个组件(页面) ●前端路由的本质 ○根据地址栏变化(不重新想服务器发送请求), 去局部更新不同的页面内容, 完成前端业务场景切换 ●前端路由的思路 ○URL 地址栏中的 Hash 值发生了变化 ○前端…

[JAVA] 图书管理系统

前言 1. 基本情况 2. 基本思路 3. 类的创建 Book包底下类有实现 &#xff08;1&#xff09;Book类 - 图书类 &#xff08;2&#xff09;BookList - 书架类 operation包底下类的实现(包含7个类,一个接口) &#xff08;1&#xff09;IOperation接口 - 功能接口 &…

蓝精灵协会每周社区会议|延长水晶铸造期限以及游戏重启计划

蓝精灵协会每周社区会议来啦&#xff01;我们已经把活动名称从「AMA」改为「市政会议厅」&#xff0c;因为该会议的目的是倾听社区反馈和进行讨论。当然&#xff0c;我们仍然非常欢迎你提出问题&#xff01; 本次市政会议厅涵盖四个主题&#xff1a; 延长水晶铸造时间的投票结果…