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

上一篇:IDL绘制黑体辐射曲线


下一篇:.Netcore 默认认证授权