性能標準:Apdex介紹
聽云作為新一代應用性能監(jiān)測平臺,其性能標準原理來源于Apdex。
Apdex聯(lián)盟,一個由眾多網(wǎng)絡分析技術公司和測量工業(yè)組成的聯(lián)盟組織,它們聯(lián)合起來開發(fā)了“應用性能指數(shù)”即“Apdex”(Application Performance Index),用一句話來概括,Apdex是用戶對應用性能滿意度的量化值。它提供了一個統(tǒng)一的測量和報告用戶體驗的方法,***次把最終用戶的體驗和應用性能聯(lián)系在了一起。
在網(wǎng)絡中運行的任何一個應用(Web、數(shù)據(jù)庫、E-mail等等),它的響應時間決定了用戶的滿意程度。那么這個“響應時間”是什么?是一個請求數(shù)據(jù)包得到響應的時間嗎?不,這樣一個孤立的響應時間再短對用戶來說也毫無意義。舉一個Web應用的例子,當用戶進行一次http鏈接時,客戶端和服務器之間會產(chǎn)生很多個交互(一個交互指一次客戶端的請求和服務器的響應),而不是只有一個。可以想象缺少了這其中的任何一個交互,打開的網(wǎng)頁都是殘缺不全的,http鏈接這一動作產(chǎn)生的所有交互完成之前,用戶無法進行下一步的操作。
換一個角度來看這個過程,進行http鏈接是用戶使用Web應用時發(fā)生的一個任務(Task),只有這個任務完成,用戶才能進行下一個任務(再次進行http鏈接,或下載文件等等)。用戶在網(wǎng)絡上使用一個應用的過程,就是發(fā)生連續(xù)的一系列任務的過程。
任務的概念非常重要,它是應用性能和用戶體驗的結合點。在完成一個任務之前,用戶是在等待其完成才行下一個任務,這個等待時間片的長短直接影響了用戶對應用的滿意程度。這才是對用戶有真正的意義的“響應時間”,Apdex把完成這樣一個任務所用的時間長短稱為應用的“響應性”。
基于“響應性”,Apdex定義了3個用戶滿意度區(qū)間:
滿意: 這樣的響應時間讓用戶感到很愉快,例如少于3秒鐘。
容忍: 慢了一點,但還可以接受,繼續(xù)這一應用過程,例如3~12秒。
失望: 太慢了,受不了了,用戶決定放棄這個應用,例如超過12秒。
“滿意”、“容忍”、“失望”這三個區(qū)間通過響應時間數(shù)值“T”來劃分,T值代表著用戶對應用性能滿意的響應時間界限或者說是“門檻”(Threshold),也就是***個區(qū)間“滿意”的底線,如3秒,滿意區(qū)間就是0~3秒;響應時間超過T值用戶就有些不滿了,下一個區(qū)間“容忍”的界限值則是T和4T,即3~12秒之間為容忍區(qū)間;響應時間再長用戶就開始考慮放棄了,***一個區(qū)間“失望”的響應時間則大于4T,即多于12秒。
之后,Apdex對應用中發(fā)生的任務進行采樣,并且按其響應時間把采樣劃分到相應的滿意度區(qū)間,計數(shù),再用一個公式計算Apdex指數(shù):
實際上,這個公式的意義在于:
一個滿意樣本得分為:1
一個容忍樣本得分為:0.5
一個失望樣本得分為:0
因此公式也可以寫成:
Apdex指數(shù) =(1 × 滿意樣本 + 0.5 × 容忍樣本)÷ 樣本總數(shù)
這樣,采樣結果被量化為一個0到1之間的數(shù)值即“Apdex指數(shù)”,0代表沒有滿意用戶,1則代表所有用戶都滿意。經(jīng)過統(tǒng)計,Apdex把這個數(shù)值與用戶滿意程度細化對應,如下圖所示,對于應用性能的Apdex評分與用戶的體驗緊密關聯(lián),為管理者提供了一種通過應用性能量化值來評估用戶滿意度的方法。
若對Apdex感興趣,可以訪問網(wǎng)站www.apdex.org獲得更多信息。
WildPackets遇上Apdex
與其說WildPackets遇上Apdex,到不如說WildPackets“預謀”了與Apdex的相遇。事實上,WildPackets正是Apdex聯(lián)盟的創(chuàng)始機構之一。現(xiàn)在,它旗下的所有系列產(chǎn)品,OmniAnalysis Platform、AiroPeek、EtherPeek針對網(wǎng)絡上運行的應用,均提供行業(yè)標準的Apdex評分。
可以看到,在專家系統(tǒng)的統(tǒng)計里多出了一列“Apdex”,它是OmniPeek通過抓包分析對網(wǎng)絡上運行的應用計算出的Apdex指數(shù)。在下面的截圖中,Web應用得分為0.89,用戶對此應用應該感到還不錯(好);IM(即時消息)應用和TELNET應用得分分別為0.73和0.77,用起來感覺就一般了,不太滿意,但是還可以接受。
Apdex在WildPackets的產(chǎn)品里如何工作?
在事件發(fā)現(xiàn)設置窗口(Expert EventFinder Settings)里可以看到,專家系統(tǒng)的事件里多了三個Apdex事件:
Apdex Score – Client Too Low
Apdex Task Ended – Tolerating User
Apdex Task Ended – Frustrated User
其中***個事件的觸發(fā)條件對應著Apdex得分,后兩個事件的觸發(fā)條件對應著Apdex任務(Task)的用戶滿意度區(qū)間:
對于這三個事件,當然是基于Apdex模型的,在WildPackets里Apdex的T值被稱為“Apdex Threshold Duration”,默認為4.0秒,可以根據(jù)需求在事件發(fā)現(xiàn)設置窗口里改變這個值。例如,評估一個即時交易的應用,用戶對響應時間要求較高,這個T值可以設置為3或者更小;評估一個E – mail的應用,T值則可以設置的稍微大一些,比如8秒。
對于事件“Tolerating User”和“Frustrated User”,觸發(fā)機制分別是被采樣任務的響應時間達到“Apdex Threshold Duration”的1~4倍和4倍以上。
對于事件“Apdex Score – Client Too Low”,除了可以設置“Apdex Threshold Duration”以外,還可以設置“Apdex Score Value”,它默認為0.5。這是它的觸發(fā)條件,當Apdex的評分低于這個值時,此事件被觸發(fā)。
抓包開始后,OmniPeek對在應用中產(chǎn)生的任務進行采樣,若采樣結果觸發(fā)了某一Apdex事件,那么在Event Summary中會產(chǎn)生一條Apdex事件記錄。
對于網(wǎng)絡中的一個應用,當采樣數(shù)量達到10個,OmniPeek就會根據(jù)公式計算出這個應用的Apdex的得分。
Apdex帶來的是一種新的標準,一種容易讓所有人認可的應用性能評估方式。管理者通過Apdex指數(shù)可以立即評估出網(wǎng)絡中應用的用戶滿意度,應用的性能不再只是簡單的快或者慢,也不再無規(guī)矩可遵循,這有些像酒店的***評定,標準是統(tǒng)一的。只是在網(wǎng)絡世界中,如果某個應用達不到“五***”,那么你就要看看哪里出了什么問題了。