应用性能指数(APDEX)是如何计算出来的?
应用性能指数(APDEX)是如何计算出来的?
在应用性能管理领域聚合指标是一种常见手段,主要是用来把成百上千的指标通过某种计算方法聚合成一个或几个指标,用来反映应用的整体健康状态。在这些聚合指标中,比较常见的是:APDEX应用性能指数。
应用性能指数”即“Apdex”(Application Performance Index),用一句话来概括,Apdex是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,第一次把最终用户的体验和应用性能联系在了一起。基于“响应性”,Apdex定义了3个用户满意度区间:
满意: 这样的响应时间让用户感到很愉快,例如少于3秒钟。
容忍: 慢了一点,但还可以接受,继续这一应用过程,例如3~12秒。
失望: 太慢了,受不了了,用户决定放弃这个应用,例如超过12秒。
“满意”、“容忍”、“失望”这三个区间通过响应时间数值“T”来划分,T值代表着用户对应用性能满意的响应时间界限或者说是“门槛”(Threshold),也就是第一个区间“满意”的底线,如3秒,满意区间就是03秒;响应时间超过T值用户就有些不满了,下一个区间“容忍”的界限值则是T和4T,即312秒之间为容忍区间;响应时间再长用户就开始考虑放弃了,最后一个区间“失望”的响应时间则大于4T,即多于12秒。
之后,Apdex对应用中发生的任务进行采样,并且按其响应时间把采样划分到相应的满意度区间,计数,再用一个公式计算Apdex指数:
实际上,这个公式的意义在于:
一个满意样本得分为:1
一个容忍样本得分为:0.5
一个失望样本得分为:0
因此公式也可以写成:
Apdex指数 =(1 × 满意样本 + 0.5 × 容忍样本)÷ 样本总数
这样,采样结果被量化为一个0到1之间的数值即“Apdex指数”,0代表没有满意用户,1则代表所有用户都满意。经过统计,Apdex把这个数值与用户满意程度细化对应,如下图所示,对于应用性能的Apdex评分与用户的体验紧密关联,为管理者提供了一种通过应用性能量化值来评估用户满意度的方法。
而RealSight APM的聚合指标除了Apdex以外,还有“健康度”。
通过上面的介绍我们可以了解到,Apdex主要是反应用户体验相关的指标,那么我们希望有另外一个指标来反映应用周边环境,偏重硬件资源如CPU、内存等信息,所以我们使用了“健康度”,其基本原理同Apdex一样,划分不同的满意区间,然后计算得来的。
RealSight APM致力于一站式解决企业应用性能管理问题
应用性能指数(APDEX)是如何计算出来的?的更多相关文章
- 【宇哥带你玩转MySQL】索引篇(一)索引揭秘,看他是如何让你的查询性能指数提升的
场景复现,一个索引提高600倍查询速度? 首先准备一张books表 create table books( id int not null primary key auto_increment, na ...
- 如何用 OneAPM 优化你的 Node.js 应用?
本文主要讲解如何使用 OneAPM 提供的信息从内存.CPU 使用.响应速度等方面优化 Node.js 应用.适用于定位于刚刚使用 Node.js 开发后台的读者.本文系 OneAPM 用户投稿,本网 ...
- Jmeter(四十八)_动态线程分析HTML测试报告
概述 jmeterGUI模式下,性能测试的结果往往误差很大,因为GUI本身就会消耗一部分资源.所以我们常常用命令行去跑性能脚本,得出结果 同时,jmeter在命令行下还可以生成多维度的测试报告,里面包 ...
- 性能标准:Apdex介绍
目前的应用程序性能测试工具有多方面的局限.每种工具都有其自己对性能的定义,产生太多混乱或矛盾的数值,并缺少简洁的结论.IT经理们无法深入了解性能,而这是软件与用户对关键应用的体验有关的事. 听云作为新 ...
- 【阿里云产品公测】利用PTS服务优化网站数据库读写性能
[阿里云产品公测]利用PTS服务优化网站数据库读写性能 作者:阿里云用户千鸟 写这个帖子主要也是因为在用PTS测试网站的时候,手动访问网站进入报错页面,主要原因是数据库连接对象存在问题,导致并发多的时 ...
- 如何使用 APM 搞定 PHP 应用的性能优化?
APM 究竟是什么? 很多人都是第一次听说 APM 的概念,本文主要阐述如何使用 APM 的解决方案来实现 PHP 应用性能的优化.首先先介绍一下 APM (Application Performan ...
- PHP码农在Golang压力下的生存之道-PHP性能优化实践
随着国内Golang的火爆,phper的生存压力越来越大,在一次内部技术讨论中,gopher甚至提出,要什么php,写php的全部开掉,唉,码农何苦为难码农. 本文试图寻找一种有效实践,减少php w ...
- .NET性能排查
概述 1,性能参数 2,性能排查方式 3,.NET的性能分析工具 1,性能指标 一个系统的性能排查或者性能设计的前提就是要有明确的性能指标:常见的性能参数 1.响应时间(处理任务时的延迟,简称 RT, ...
- OneAPM 云监控部署与试用体验
作为 Zabbix 骨灰级粉丝,一直以来对第三方监控(APM)都是拒绝的.一来觉得收费,二来担心数据被人所知,三来觉得 Zabbix 牛逼到无可取代.但是,随着 APM 市场的火爆,我决定「放下身段」 ...
随机推荐
- for循环注意案例
1.在for循环中,三个表达式都可以省略,但是分号必须编写,但会出现死循环(无限循环) 2.在for循环中,省略表达式1,则出现编译错误,解决办法:在表达式1编写在for循环上面 3.在for循环中, ...
- Navicat Premium v12.0.23.0 破解教程x86,x64通用,手动破解
教程来源于:吾爱破解网站 ----------更新线----------- 2018.01.23 Navicat Premium v12.0.23.0 测试破解依然有效 ----------更新线-- ...
- matlab遍历文件制作自己的数据集 .mat文件
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9115788.html 看到深度学习里面的教学动不动就是拿MNIST数据集,或者是IMGPACK ...
- Python 递归返回树形菜单JSON串 <flask>
需求:菜单管理功能(增.删.改),多级树形菜单展示 数据库表设计 create table if not exists Menu( id serial primary key , title ) no ...
- 深入理解JavaScript系列(2):揭秘命名函数表达式
前言 网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点. 简单的说,命名函数表 ...
- 关于JVM
Java 中通过多线程机制使得多个任务同时执行处理,所有的线程共享JVM内存区域main memory,而每个线程又单独的有自己的工作内存,当线程与内存区域进行交互时,数据从主存拷贝到工作内存,进而交 ...
- Hibernate=====HQL实用技术
Hibernate支持三种查询语言:HQL查询.Criteria查询和原生SQL查询 HQL(hibernate Query Language,hibernate查询语言)是一种面向对象查询语言,其中 ...
- 重构指南 - 移除重复内容(Remove Duplication)
在项目中或多或少的都存在着重复的或者功能相似的代码,如果要对代码做改动,就要修改多个地方,所以我们需要将多处重复的代码提取到一个公共的地方供统一调用,以减少代码量,提高代码可维护性. 重构前代码 pu ...
- Python进阶篇四:Python文件和流
摘要: Python对于文件和流的操作与其他编程语言基本差不多,甚至语句上比其他语言更为简洁.文件和流函数针对的对象除了这两者之外还有,类文件(file-like),即python中只支持读却不支持写 ...
- show与ShowDialog substring
substring public String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串.该子字符串从指定的 beg ...