目前的应用程序性能测试工具有多方面的局限。每种工具都有其自己对性能的定义,产生太多混乱或矛盾的数值,并缺少简洁的结论。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介绍的更多相关文章

  1. JMeter性能监测插件介绍(三)

    JMeter 性能监测插件介绍 压力测试过程中,能够随时对负载服务器的健康状况的把控是相当重要的,有了这些数据,我们才能准确分析出服务器负载瓶颈.JMeter 插件包现在能够支持服务器监控,可以在所有 ...

  2. 性能检测工具介绍-Linux系统命令行

    本文介绍的关于Linux自带命令进行性能检测的介绍,详细介绍这些linux自带的工具的使用. 一.uptime uptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总 ...

  3. [原创]SpotLight性能监控工具使用介绍

    [原创]SpotLight性能监控工具使用介绍 1  Spotlight工具是什么? SpotLight 是由Quest公司出品的一款第三方性能监控的图形化工具.SpotLight有一些的产品诸如可以 ...

  4. TMF SID性能相关实体介绍

    TMF SID性能相关实体介绍 Copyright © TeleManagement Forum 2013. All Rights Reserved. This document and transl ...

  5. Python的标准库介绍与常用的第三方库

    Python的标准库介绍与常用的第三方库 Python的标准库: datetime:为日期和时间的处理提供了简单和复杂的方法. zlib:以下模块直接支持通用的数据打包和压缩格式:zlib,gzip, ...

  6. 《挑战30天C++入门极限》C++的iostream标准库介绍(3)

        C++的iostream标准库介绍(3) C语言提供了格式化输入输出的方法,C++也同样,但是C++的控制符使用起来更为简单方便,在c++下有两中方法控制格式化输入输出. 1.有流对象的成员函 ...

  7. 《挑战30天C++入门极限》C++的iostream标准库介绍(2)

        C++的iostream标准库介绍(2) 接下来我们继续看一下C++风格的串流控制,C++引入了ostringstream.istringstream.stringstream这三个类,要使用 ...

  8. 《挑战30天C++入门极限》C++的iostream标准库介绍(1)

        C++的iostream标准库介绍(1) 我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的stdio库不同 ...

  9. SQL Server调优系列基础篇 - 性能调优介绍

    前言 关于SQL Server调优系列是一个庞大的内容体系,非一言两语能够分析清楚,本篇先就在SQL 调优中所最常用的查询计划进行解析,力图做好基础的掌握,夯实基本功!而后再谈谈整体的语句调优. 通过 ...

随机推荐

  1. 用cmd命令合并N个文件

    今天早上朋友发我一篇小说(42个TXT文件),让我给他合并为一个文件.我首先想到的是“Copy”命令,它可以复制文件,也可以合并文件. 例如:合并1.txt和2.txt到12.txt(其为ASCII文 ...

  2. Liunx0000(初步认识)

    都要放假了,学习一下吧,毕竟还有课设,虽然我真的懒得看Linux,不想接触这破玩意!各应人的东西! 一.发展趋势 1\无操作系统阶段20s60 2\简单操作系统阶段 3\试试操作系统阶段 4\面向In ...

  3. 盘点Windows 8.1中隐藏着的25个秘密功能

    Windows 8.1正式版问世,带来了众多大家早已耳熟能详的“开始按钮”.“分屏显示”等功能.事实上,Windows 8.1贴心的设计细节有很多,多数细节隐藏于系统中某个不起眼的角落,科技网站PC ...

  4. jquery,js引入css文件,js引入头尾

    jquery,js引入css文件,js引入头尾 今天在项目中,需要把20多个页面加上头和尾部,头和尾是我写的,所以小师傅把这个工作交给我了. 我开始往里面加,先引入common.css,在body开始 ...

  5. python 字典列表排序operator.itemgetter()

    举例: import operator x = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}] sorted_x = sorted(x, ...

  6. 802.11 wireless 七

    802.11 wireless 7Wireless Fundamentals : End-to-End Discovering the NetworkGetting Connect Clients i ...

  7. Linux sort --copy

    Source: http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中 ...

  8. 委托、事件和Lambda

    一.委托 delegate1.在.Net平台下,委托类型用来定义和响应应用程序中的回调.事实上,.Net委托类型是一个类型安全的对象,指向可以以后调用的其他方法,.Net委托是内置支持多路广播和异步方 ...

  9. .Net自带的委托类型—Func,Action 和 Predicate

    委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递. 与其他的类不同,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用. 一.自定义委托类型 1.语法结构:访问修 ...

  10. SQLSERVER中WITH(NOLOCK)详解

    在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAST .有关 NOLOCK 和 READPAST的一些技术知识 ...