性能标准:Apdex介绍
目前的应用程序性能测试工具有多方面的局限。每种工具都有其自己对性能的定义,产生太多混乱或矛盾的数值,并缺少简洁的结论。IT经理们无法深入了解性能,而这是软件与用户对关键应用的体验有关的事。
听云作为新一代应用性能监测平台,其性能标准原理来源于Apdex。
Apdex联盟,一个由众多网络分析技术公司和测量工业组成的联盟组织,它们联合起来开发了“应用性能指数”即“Apdex”(Application Performance Index),用一句话来概括,Apdex是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,第一次把最终用户的体验和应用性能联系在了一起。
在网络中运行的任何一个应用(Web、数据库、E-mail等等),它的响应时间决定了用户的满意程度。那么这个“响应时间”是什么?是一个请求数据包得到响应的时间吗?不,这样一个孤立的响应时间再短对用户来说也毫无意义。举一个Web应用的例子,当用户进行一次http链接时,客户端和服务器之间会产生很多个交互(一个交互指一次客户端的请求和服务器的响应),而不是只有一个。可以想象缺少了这其中的任何一个交互,打开的网页都是残缺不全的,http链接这一动作产生的所有交互完成之前,用户无法进行下一步的操作。
换一个角度来看这个过程,进行http链接是用户使用Web应用时发生的一个任务(Task),只有这个任务完成,用户才能进行下一个任务(再次进行http链接,或下载文件等等)。用户在网络上使用一个应用的过程,就是发生连续的一系列任务的过程。
任务的概念非常重要,它是应用性能和用户体验的结合点。在完成一个任务之前,用户是在等待其完成才行下一个任务,这个等待时间片的长短直接影响了用户对应用的满意程度。这才是对用户有真正的意义的“响应时间”,Apdex把完成这样一个任务所用的时间长短称为应用的“响应性”。
基于“响应性”,Apdex定义了3个用户满意度区间:
满意: 这样的响应时间让用户感到很愉快,例如少于3秒钟。
容忍: 慢了一点,但还可以接受,继续这一应用过程,例如3~12秒。
失望: 太慢了,受不了了,用户决定放弃这个应用,例如超过12秒。
“满意”、“容忍”、“失望”这三个区间通过响应时间数值“T”来划分,T值代表着用户对应用性能满意的响应时间界限或者说是“门槛”(Threshold),也就是第一个区间“满意”的底线,如3秒,满意区间就是0~3秒;响应时间超过T值用户就有些不满了,下一个区间“容忍”的界限值则是T和4T,即3~12秒之间为容忍区间;响应时间再长用户就开始考虑放弃了,最后一个区间“失望”的响应时间则大于4T,即多于12秒。
之后,Apdex对应用中发生的任务进行采样,并且按其响应时间把采样划分到相应的满意度区间,计数,再用一个公式计算Apdex指数:
实际上,这个公式的意义在于:
一个满意样本得分为:1
一个容忍样本得分为:0.5
一个失望样本得分为:0
因此公式也可以写成:
Apdex指数 =(1 × 满意样本 + 0.5 × 容忍样本)÷ 样本总数
这样,采样结果被量化为一个0到1之间的数值即“Apdex指数”,0代表没有满意用户,1则代表所有用户都满意。经过统计,Apdex把这个数值与用户满意程度细化对应,如下图所示,对于应用性能的Apdex评分与用户的体验紧密关联,为管理者提供了一种通过应用性能量化值来评估用户满意度的方法。
若对Apdex感兴趣,可以访问网站www.apdex.org获得更多信息。
WildPackets遇上Apdex
与其说WildPackets遇上Apdex,到不如说WildPackets“预谋”了与Apdex的相遇。事实上,WildPackets正是Apdex联盟的创始机构之一。现在,它旗下的所有系列产品,OmniAnalysis Platform、AiroPeek、EtherPeek针对网络上运行的应用,均提供行业标准的Apdex评分。
可以看到,在专家系统的统计里多出了一列“Apdex”,它是OmniPeek通过抓包分析对网络上运行的应用计算出的Apdex指数。在下面的截图中,Web应用得分为0.89,用户对此应用应该感到还不错(好);IM(即时消息)应用和TELNET应用得分分别为0.73和0.77,用起来感觉就一般了,不太满意,但是还可以接受。
Apdex在WildPackets的产品里如何工作?
在事件发现设置窗口(Expert EventFinder Settings)里可以看到,专家系统的事件里多了三个Apdex事件:
Apdex Score – Client Too Low
Apdex Task Ended – Tolerating User
Apdex Task Ended – Frustrated User
其中第一个事件的触发条件对应着Apdex得分,后两个事件的触发条件对应着Apdex任务(Task)的用户满意度区间:
对于这三个事件,当然是基于Apdex模型的,在WildPackets里Apdex的T值被称为“Apdex Threshold Duration”,默认为4.0秒,可以根据需求在事件发现设置窗口里改变这个值。例如,评估一个即时交易的应用,用户对响应时间要求较高,这个T值可以设置为3或者更小;评估一个E – mail的应用,T值则可以设置的稍微大一些,比如8秒。
对于事件“Tolerating User”和“Frustrated User”,触发机制分别是被采样任务的响应时间达到“Apdex Threshold Duration”的1~4倍和4倍以上。
对于事件“Apdex Score – Client Too Low”,除了可以设置“Apdex Threshold Duration”以外,还可以设置“Apdex Score Value”,它默认为0.5。这是它的触发条件,当Apdex的评分低于这个值时,此事件被触发。
抓包开始后,OmniPeek对在应用中产生的任务进行采样,若采样结果触发了某一Apdex事件,那么在Event Summary中会产生一条Apdex事件记录。
对于网络中的一个应用,当采样数量达到10个,OmniPeek就会根据公式计算出这个应用的Apdex的得分。
Apdex带来的是一种新的标准,一种容易让所有人认可的应用性能评估方式。管理者通过Apdex指数可以立即评估出网络中应用的用户满意度,应用的性能不再只是简单的快或者慢,也不再无规矩可遵循,这有些像酒店的星级评定,标准是统一的。只是在网络世界中,如果某个应用达不到“五星级”,那么你就要看看哪里出了什么问题了。
性能标准:Apdex介绍的更多相关文章
- JMeter性能监测插件介绍(三)
JMeter 性能监测插件介绍 压力测试过程中,能够随时对负载服务器的健康状况的把控是相当重要的,有了这些数据,我们才能准确分析出服务器负载瓶颈.JMeter 插件包现在能够支持服务器监控,可以在所有 ...
- 性能检测工具介绍-Linux系统命令行
本文介绍的关于Linux自带命令进行性能检测的介绍,详细介绍这些linux自带的工具的使用. 一.uptime uptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总 ...
- [原创]SpotLight性能监控工具使用介绍
[原创]SpotLight性能监控工具使用介绍 1 Spotlight工具是什么? SpotLight 是由Quest公司出品的一款第三方性能监控的图形化工具.SpotLight有一些的产品诸如可以 ...
- TMF SID性能相关实体介绍
TMF SID性能相关实体介绍 Copyright © TeleManagement Forum 2013. All Rights Reserved. This document and transl ...
- Python的标准库介绍与常用的第三方库
Python的标准库介绍与常用的第三方库 Python的标准库: datetime:为日期和时间的处理提供了简单和复杂的方法. zlib:以下模块直接支持通用的数据打包和压缩格式:zlib,gzip, ...
- 《挑战30天C++入门极限》C++的iostream标准库介绍(3)
C++的iostream标准库介绍(3) C语言提供了格式化输入输出的方法,C++也同样,但是C++的控制符使用起来更为简单方便,在c++下有两中方法控制格式化输入输出. 1.有流对象的成员函 ...
- 《挑战30天C++入门极限》C++的iostream标准库介绍(2)
C++的iostream标准库介绍(2) 接下来我们继续看一下C++风格的串流控制,C++引入了ostringstream.istringstream.stringstream这三个类,要使用 ...
- 《挑战30天C++入门极限》C++的iostream标准库介绍(1)
C++的iostream标准库介绍(1) 我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的stdio库不同 ...
- SQL Server调优系列基础篇 - 性能调优介绍
前言 关于SQL Server调优系列是一个庞大的内容体系,非一言两语能够分析清楚,本篇先就在SQL 调优中所最常用的查询计划进行解析,力图做好基础的掌握,夯实基本功!而后再谈谈整体的语句调优. 通过 ...
随机推荐
- 用cmd命令合并N个文件
今天早上朋友发我一篇小说(42个TXT文件),让我给他合并为一个文件.我首先想到的是“Copy”命令,它可以复制文件,也可以合并文件. 例如:合并1.txt和2.txt到12.txt(其为ASCII文 ...
- Liunx0000(初步认识)
都要放假了,学习一下吧,毕竟还有课设,虽然我真的懒得看Linux,不想接触这破玩意!各应人的东西! 一.发展趋势 1\无操作系统阶段20s60 2\简单操作系统阶段 3\试试操作系统阶段 4\面向In ...
- 盘点Windows 8.1中隐藏着的25个秘密功能
Windows 8.1正式版问世,带来了众多大家早已耳熟能详的“开始按钮”.“分屏显示”等功能.事实上,Windows 8.1贴心的设计细节有很多,多数细节隐藏于系统中某个不起眼的角落,科技网站PC ...
- jquery,js引入css文件,js引入头尾
jquery,js引入css文件,js引入头尾 今天在项目中,需要把20多个页面加上头和尾部,头和尾是我写的,所以小师傅把这个工作交给我了. 我开始往里面加,先引入common.css,在body开始 ...
- python 字典列表排序operator.itemgetter()
举例: import operator x = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}] sorted_x = sorted(x, ...
- 802.11 wireless 七
802.11 wireless 7Wireless Fundamentals : End-to-End Discovering the NetworkGetting Connect Clients i ...
- Linux sort --copy
Source: http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中 ...
- 委托、事件和Lambda
一.委托 delegate1.在.Net平台下,委托类型用来定义和响应应用程序中的回调.事实上,.Net委托类型是一个类型安全的对象,指向可以以后调用的其他方法,.Net委托是内置支持多路广播和异步方 ...
- .Net自带的委托类型—Func,Action 和 Predicate
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递. 与其他的类不同,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用. 一.自定义委托类型 1.语法结构:访问修 ...
- SQLSERVER中WITH(NOLOCK)详解
在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAST .有关 NOLOCK 和 READPAST的一些技术知识 ...