性能标准: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指数可以立即评估出网络中应用的用户满意度,应用的性能不再只是简单的快或者慢,也不再无规矩可遵循,这有些像酒店的***评定,标准是统一的。只是在网络世界中,如果某个应用达不到“五***”,那么你就要看看哪里出了什么问题了。

责任编辑:周立方 来源: 听云
相关推荐

2014-08-08 15:36:39

Apdex

2013-08-21 09:14:24

软件即服务SaaS Apdex方

2020-11-09 04:57:21

5G

2011-06-22 13:46:10

IT服务监理

2011-06-28 16:41:19

IT管理运维

2010-06-29 10:20:11

LEACH协议

2021-04-14 15:37:05

物联网标准和协议

2010-02-03 11:26:28

2009-08-03 09:15:39

JSP标准标记库JSTL

2010-03-01 18:07:53

Python语言

2018-07-24 12:38:40

2010-01-14 15:46:27

C++标准库

2010-06-12 14:57:34

IEEE 802协议

2009-07-07 14:33:44

JSP入门

2010-01-19 09:39:43

C++标准程序库

2010-01-19 09:39:43

C++标准程序库

2009-12-04 13:54:11

PHP JSON互转函

2021-09-11 21:02:24

监控Sentry Web性能

2009-04-22 18:26:55

高性能计算多核服务器

2009-07-14 16:28:34

光纤测试性能布线
点赞
收藏

51CTO技术栈公众号