專利名稱:用于監(jiān)視客戶端-服務器架構的性能的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及用于監(jiān)視客戶端-服務器架構的性能的技術。更具體地說,本發(fā)明涉及用于監(jiān)視包括基于web的事務服務器或者其他事務服務器的客戶端-服務器架構的操作的方法和系統(tǒng)。
背景技術:
存在不同的方法來幫助公司測試其基于web的事務服務器和相關聯(lián)應用的性能和功能。
文獻US 2003-0131052描述了一種用于收集頁面停留時間(time-on-page)的統(tǒng)計信息的方法、系統(tǒng)、設備和計算機程序產(chǎn)品。當服務器接收到對Web頁面的請求時,服務器生成或者檢索出該Web頁面,然后通過向該Web頁面插入腳本來指示該Web頁面收集頁面停留時間的度量,之后將該Web頁面返回進行請求的客戶端。瀏覽器處理該Web頁面,解析嵌入的腳本;該腳本限定當瀏覽器確定加載不同Web頁面時被評估的函數(shù)。然后瀏覽器呈現(xiàn)該Web頁面,但是,當卸載該Web頁面時,調用所述函數(shù);該函數(shù)計算表示瀏覽器呈現(xiàn)所述Web頁面的時間量的時間值。隨后該函數(shù)將計算出的時間值返回給服務器作為頁面停留時間的度量值。
文獻US-B-6,449,739描述了一種使得用戶可以監(jiān)視基于web的事務服務器或者其他事務服務器的后期部署(post-deployment)性能的監(jiān)視系統(tǒng)。該系統(tǒng)包括代理部件(“代理”),其可以安裝在可以訪問事務服務器的計算機(“代理計算機”)上,所述計算機包括事務服務器的實際用戶的計算機。所述代理對事務服務器的實際用戶的行為進行模擬,同時監(jiān)視服務器的性能。通過利用控制器部件(“控制器”)而調配給代理計算機的測試例來指定代理計算機要進行的特定事務。當各個代理計算機執(zhí)行測試例時,其將執(zhí)行結果(性能數(shù)據(jù))實時地報告給基于web的報告服務器,該報告服務器將所述結果存儲在中央數(shù)據(jù)庫中。得到授權的人員可以使用標準網(wǎng)絡瀏覽器來訪問報告服務器以查看由一系列定制報告收集的性能數(shù)據(jù)。
此外,文獻US-B-6,411,998描述了一種確定與來自可連接到Web服務器的Web客戶端的請求相關聯(lián)的因特網(wǎng)延遲的方法。該方法響應于第一HTTP請求而在Web服務器處啟動。具體來說,Web服務器提供對于第一HTTP請求的響應,并記錄與提供該響應相關聯(lián)的服務器處理時間。在將響應送回發(fā)起請求的Web客戶端之后,在Web客戶端處計算與第一HTTP請求相關聯(lián)的最終用戶響應時間。在新HTTP請求(通常為下一個HTTP請求)時,此時從Web客戶端以小甜餅(cookie)形式將與第一HTTP請求相關聯(lián)的最終用戶響應時間傳送到Web服務器。然后,通過從最終用戶響應時間中減去服務器處理時間來計算與第一HTTP請求相關聯(lián)的因特網(wǎng)延遲。
此外,在“Web log analysis for performance troubleshooting”EuroCMG-2002 Proceedings,2002年6月中,描述了一種Web性能日志分析(WPLA)行為,其使得可以從web服務器的日志文件中提取一組對于性能分析有用的信息。Web服務器日志可以被配置為記錄對于性能分析非常有用的可選值,即,花費時間字段,該字段測量從服務器開始管理請求的時刻直到客戶端確認了接收到最末字節(jié)所花費的時間。作者已發(fā)現(xiàn)存儲在花費時間字段中的值是各個用戶等待完成各個命中(hit)的時間(即,命中的端到端響應時間)的良好近似。
發(fā)明內容
申請人已經(jīng)觀察到,通過將網(wǎng)絡相關問題與服務器相關問題區(qū)分開來、甚至與客戶端相關問題區(qū)分開來,對客戶端-服務器架構的性能的監(jiān)視存在問題(例如,在服務器執(zhí)行時間和端到端響應時間方面)。
申請人進一步觀察到,對客戶端-服務器架構的性能的監(jiān)視因避免以下情況而存在其他問題
-安裝客戶端側代理;-修改最終用戶請求的代碼;以及-增加網(wǎng)絡通信量。
實質上,本申請人已經(jīng)發(fā)現(xiàn),通過如下的結構可以解決這些問題,所述結構一起采用如下部件-代理部件,安裝在客戶端-服務器架構的服務器側部分,用于模擬客戶端-服務器架構的實際客戶端的請求,并且測量服務器執(zhí)行時間,所述服務器執(zhí)行時間表示在服務器部件接收到模擬最終用戶請求(也稱為命中)與在所述服務器部件處生成所述模擬最終用戶請求的結果之間經(jīng)過的時間;-存儲在服務器日志文件中的關于命中端到端(e2e)響應時間的信息,即,最終用戶向服務器部件發(fā)送請求的時刻與請求結果到達最終用戶的時刻之間經(jīng)過的時間;根據(jù)服務器執(zhí)行時間和命中e2e響應時間,可以確定由于將客戶端-服務器架構的服務器側部分連接到客戶端側部分的網(wǎng)絡而造成的延遲。然后,使用網(wǎng)絡延遲和服務器執(zhí)行時間,通過將網(wǎng)絡相關問題與服務器相關問題區(qū)分開來、甚至與客戶端相關問題區(qū)分開來,從而監(jiān)視客戶端-服務器架構的性能。
除了其他方面之外,本申請人已經(jīng)確定,通過在位于服務器部件附近的代理部件中模擬實際客戶端的請求、并且基于服務器部件提供給代理部件的實際響應來測量服務器執(zhí)行時間,可以按不侵入的方式(即,在不改變服務器部件的軟件的情況下)來監(jiān)視服務器執(zhí)行性能。
更具體地說,本申請人已經(jīng)發(fā)現(xiàn),可以通過一種用于監(jiān)視客戶端-服務器架構的性能的方法來解決該問題,所述客戶端-服務器架構包括經(jīng)由網(wǎng)絡連接在一起的客戶端側部分和服務器側部分,所述客戶端側部分包括至少一個最終用戶終端,所述服務器側部分至少包括服務器部件,所述方法包括以下步驟-通過安裝在所述服務器側部分中的代理部件來模擬至少一個最終用戶終端請求并將其發(fā)送給所述服務器部件;
-在所述服務器部件處對所述至少一個被模擬請求進行處理并生成對應的結果;-測量服務器執(zhí)行時間,其表示在所述服務器部件處接收到所述被模擬最終用戶請求與在所述服務器部件處生成所述被模擬最終用戶請求的結果之間經(jīng)過的時間;-從保存在所述服務器部件中的日志文件中提取包含如下項的條目,所述項表示在最終用戶終端向所述服務器部件發(fā)送請求與所述請求的結果到達所述最終用戶終端之間經(jīng)過的命中e2e響應時間;-根據(jù)所述服務器執(zhí)行時間和所述命中e2e響應時間,對于所述至少一個被模擬請求確定由網(wǎng)絡引起的網(wǎng)絡延遲。
本發(fā)明的另一方面涉及一種用于監(jiān)視客戶端-服務器架構的性能的系統(tǒng),所述客戶端-服務器架構包括經(jīng)由網(wǎng)絡連接在一起的客戶端側部分和服務器側部分,所述客戶端側部分包括至少一個最終用戶終端,所述服務器側部分至少包括服務器部件,所述系統(tǒng)包括-至少一個代理部件,其安裝在所述服務器側部分中,所述代理部件被配置成進行以下操作-模擬至少一個最終用戶終端請求并將其發(fā)送給所述服務器部件,所述至少一個被模擬請求在所述服務器部件處得到處理以生成對應的結果;-測量服務器執(zhí)行時間,所述服務器執(zhí)行時間表示在所述服務器部件處接收到所述被模擬最終用戶請求與在所述服務器部件處生成所述被模擬最終用戶請求的結果之間經(jīng)過的時間;-至少一個日志提取器,其被配置成利用所述服務器部件來產(chǎn)生包括如下條目的日志文件,所述條目包含表示在最終用戶終端向所述服務器部件發(fā)送請求與所述請求的結果到達所述最終用戶終端之間經(jīng)過的命中e2e響應時間的項;-至少一個控制器,其被配置成進行以下操作-根據(jù)所述服務器執(zhí)行時間和所述命中e2e響應時間,對于所述至少一個被模擬請求確定由網(wǎng)絡引起的網(wǎng)絡延遲。
根據(jù)本發(fā)明的另一方面,提供了一種用于監(jiān)視客戶端-服務器架構的性能的方法,所述客戶端-服務器架構包括經(jīng)由網(wǎng)絡連接在一起的客戶端側部分和服務器側部分,所述客戶端側部分包括至少一個最終用戶終端,所述服務器側部分至少包括服務器部件,所述方法包括以下步驟-向所述服務器部件發(fā)送至少一個最終用戶終端請求;-在所述服務器部件處對所述至少一個請求進行處理并生成對應的結果;-通過安裝在所述服務器側部分中的代理部件來測量服務器執(zhí)行時間,所述服務器執(zhí)行時間表示在所述服務器部件處接收到所述最終用戶請求與在所述服務器部件處生成所述最終用戶請求的結果之間經(jīng)過的時間;-從保存在所述服務器部件中的日志文件中提取包含如下項的條目,所述項表示在最終用戶終端向所述服務器部件發(fā)送請求與所述請求的結果到達所述最終用戶終端之間經(jīng)過的命中e2e響應時間;-根據(jù)所述服務器執(zhí)行時間和所述命中e2e響應時間,對于所述至少一個請求確定由網(wǎng)絡引起的網(wǎng)絡延遲。
在本發(fā)明的另一方面中,提供了一種用于監(jiān)視客戶端-服務器架構的性能的系統(tǒng),所述客戶端-服務器架構包括經(jīng)由網(wǎng)絡(10)連接在一起的客戶端側部分和服務器側部分,所述客戶端側部分(1a)包括至少一個最終用戶終端(20),所述服務器側部分(1b)至少包括服務器部件(40a),所述系統(tǒng)包括-至少一個代理部件(70a),其安裝在所述服務器側部分(1b)中,所述代理部件(70a)被配置成進行以下操作-向所述服務器部件(40a)發(fā)送至少一個最終用戶終端請求,所述至少一個最終用戶終端請求在所述服務器部件(40a)處得到處理以生成對應的結果;
-測量服務器執(zhí)行時間(Te),所述服務器執(zhí)行時間(Te)表示在所述服務器部件(40a)處接收到所述最終用戶請求與在所述服務器部件(40a)處生成所述最終用戶請求的結果之間經(jīng)過的時間;-至少一個日志提取器(70b),其被配置成利用所述服務器部件(40a)來產(chǎn)生包括如下條目的日志文件,所述條目包含表示在最終用戶終端(20)向所述服務器部件(40a)發(fā)送請求與所述請求的結果到達所述最終用戶終端(20)之間經(jīng)過的命中e2e響應時間(208)的項(124);至少一個控制器(70c),其被配置成進行以下操作-根據(jù)所述服務器執(zhí)行時間(Te)和所述命中e2e響應時間(208),對于所述至少一個請求確定由網(wǎng)絡(10)引起的網(wǎng)絡延遲(Tn)。
本發(fā)明的另一方面涉及包括這種系統(tǒng)的客戶端-服務器架構、以及計算機程序產(chǎn)品,所述計算機程序產(chǎn)品可以加載到至少一個計算機的存儲器中并且包括軟件代碼部分,當在計算機上運行該產(chǎn)品時,所述軟件代碼部分執(zhí)行本發(fā)明的方法的步驟。如在此所使用的,提到這種計算機程序產(chǎn)品旨在等同于提到包含用于控制計算機以配合執(zhí)行本發(fā)明的方法的指令的計算機可讀介質。提到“至少一個計算機”顯然旨在強調按分布式/模塊化方式來實現(xiàn)本發(fā)明的可能性。
在從屬權利要求和以下說明中描述了本發(fā)明的進一步優(yōu)選的方面。
現(xiàn)在參照附圖僅以示例的方式來描述本發(fā)明,在附圖中圖1示出了本文所述的本發(fā)明的實施例的框架;圖2示出了web服務器日志文件格式的示例;圖3示出了web服務器日志文件格式的另一示例;圖4是例示出如何計算命中e2e響應時間與web服務器日志文件的花費時間字段之間的關系的簡化時序圖;圖5示出了命中e2e響應時間、網(wǎng)絡時間和服務器執(zhí)行時間相對于時間的示例;圖6是本文所述的本發(fā)明使用的監(jiān)視方法的流程圖;圖7是圖6的監(jiān)視方法的一部分的流程圖;圖8是圖6的監(jiān)視方法的另一部分的流程圖;以及圖9示出了本文所述的本發(fā)明的示例性實施例。
具體實施例方式
以下的說明闡述了監(jiān)視系統(tǒng)及相關方法的多個實現(xiàn)具體細節(jié)。提供這些細節(jié)是為了例示本發(fā)明的優(yōu)選實施例,而不是限制本發(fā)明的范圍。
在整個說明書中,假設被監(jiān)視的事務服務器是基于web的系統(tǒng),可以通過因特網(wǎng)對其進行訪問。然而,應該認識到,本發(fā)明的方法也可以用于監(jiān)視其他類型的事務服務器,包括使用專有協(xié)議的或者只能由特定組織的內部用戶訪問的事務服務器。
圖1示出了客戶端-服務器架構1的示例性實施例,其包括通過第一網(wǎng)絡10(即,因特網(wǎng))連接在一起的客戶端側部分1a和服務器側部分1b。
客戶端側部分1a包括至少一個、通常是多個最終用戶終端20,例如個人計算機、個人數(shù)字助理(PDA)、無線電話等。各個最終用戶終端20支持相應的網(wǎng)絡瀏覽器30(代表性瀏覽器可以包括MicrosoftInternet Explorer、NetscapeNavigator等)。
在本發(fā)明的優(yōu)選實施例中,服務器側部分1b包括通過第二網(wǎng)絡50(例如LAN)連接到后端數(shù)據(jù)庫(在圖1中,用標為60的單塊來表示)的事務服務器40。
對于本說明書,術語“事務服務器”表示對至少來自用戶的對于執(zhí)行一個或更多個任務或者“事務”(例如查看帳戶信息,下訂單,進行搜索、查看和發(fā)送電子郵件,從網(wǎng)絡門戶下載數(shù)據(jù)(例如mp3文件、視頻等))的請求進行響應的系統(tǒng)。
如圖1所示,事務服務器40可以包括web服務器部件40a以及一個或更多個應用服務器40b。應用服務器40b例如可以提供用于實現(xiàn)一個或更多個商業(yè)處理(例如建立用戶帳號、下訂單等)的功能。應用服務器40b通常向用戶提供對一個或更多個后端數(shù)據(jù)庫60的訪問。
web服務器部件40a包括web服務器日志文件40c,web服務器部件40a將與最終用戶終端20接收到的web頁面相關聯(lián)的每一個請求(也稱為命中)按照web服務器日志文件40c中的每一個條目表示單個命中的方式存儲在web服務器日志文件40c中。由于web頁面是由多個“對象”(例如文本、圖片、腳本代碼等)組成的,所以在完全下載web頁面之前,將分別與單個對象相關聯(lián)的若干個后續(xù)請求發(fā)送到web服務器部件40a。這意味著下載web頁面的操作在web服務器日志文件40c上產(chǎn)生多于一個的條目。對于web服務器日志文件,存在標準的公共格式。圖2所示的示例性格式對于每一個條目可以包括以下字段-IP地址110,-URL(如果記入日志)112,-日期114,-時間116,-行為(通常是獲取(GET)或者張告(POST)行為)118,-Html錯誤碼120,以及-大小122。
參照圖3,通過對其配置文件進行修改,web服務器部件40a可以被定制為向web服務器日志文件40c的每個條目添加另一字段,稱為花費時間字段124。如在下文中更佳說明的,存儲在花費時間字段124中的值是對命中e2e響應時間(即,最終用戶終端20向web服務器部件40a發(fā)送請求的時刻與請求的結果到達最終用戶終端20的時刻之間經(jīng)過的時間)的很好近似。
回到圖1,用于監(jiān)視客戶端-服務器架構1的性能的系統(tǒng)70與事務服務器40相關聯(lián)。
具體來說,系統(tǒng)70至少包括代理部件70a,日志提取器70b和控制器70c。
具體來說,代理部件70a是根據(jù)本發(fā)明的適于安裝在位于服務器側部分1b中且在web服務器部件40a附近的主計算機上(或者,對于復雜的架構,安裝在諸如反向代理的其他網(wǎng)絡器件上)的模塊。
這里,表述“附近”表示代理部件70a在其中運行的主計算機與web服務器部件40a具有高速(和/或專用)鏈路,從而無論這兩個計算機之間的物理距離怎樣,都可以按固定且短暫的延遲(優(yōu)選為小于50ms的延遲)在它們之間交換信息。
另選地,代理部件70a可以直接安裝在web服務器部件40a上。
代理部件70a包括以下的基本功能模擬事務服務器40的實際最終用戶終端20的請求,并且對于各個被模擬請求測量服務器執(zhí)行時間,即,代理部件70a向所述web服務器部件(40a)發(fā)送被模擬請求的時刻與代理部件(70a)接收到被模擬請求的結果的時刻之間經(jīng)過的時間。
由于代理部件70a位于web服務器部件40a附近,所以代理部件70a測得的服務器執(zhí)行時間不受網(wǎng)絡延遲的影響,因此,該服務器執(zhí)行時間與真實的服務器執(zhí)行時間基本相等,即,web服務器部件(40a)接收到最終用戶終端請求與web服務器部件(40a)生成最終用戶終端請求的結果之間經(jīng)過的時間。
對于本說明書,以上句子中的表述“基本相等”表示代理部件70a測得的服務器執(zhí)行時間與真實服務器執(zhí)行時間之間的差在50ms以下。
在本發(fā)明的優(yōu)選實施例中,代理部件70a基于所謂的“記錄和再現(xiàn)”范例。
具體來說,在主計算機上運行與安裝在各個最終用戶終端20上的web瀏覽器相同類型的web瀏覽器,以模擬由事務服務器40的實際最終用戶終端20發(fā)送到web服務器部件40a的請求序列。
可以由控制器70c使用在下文中更佳地描述的準則來選擇要由代理部件70a模擬的請求序列。
代理部件70a將由安裝在主計算機上的網(wǎng)絡瀏覽器模擬的每一個請求記錄在例如腳本中。然后在監(jiān)視處理的開始時使用該腳本來再現(xiàn)所記錄的請求。也可以由代理管理員來手動地修改該腳本以概括其參數(shù)。當代理部件70a“再現(xiàn)”該腳本時,它也測量與各個被模擬請求相關聯(lián)的服務器執(zhí)行時間,并將其記錄在主計算機的存儲器(例如硬盤)中。
日志提取器70b是能夠讀取并提取存儲在web服務器日志文件40c中的字段的模塊。具體地說,對于來自最終用戶終端20的每一個請求,日志提取器70b都從web服務器日志文件40c中提取字段的子集,例如IP地址、日期、時間、URL、錯誤碼、尺寸(大小)和花費時間。
如在上面已經(jīng)提到的,存儲在花費時間字段124中的值是對命中e2e響應時間(即,最終用戶終端20向web服務器部件40a發(fā)送請求的時刻與請求的結果到達最終用戶終端20的時刻之間經(jīng)過的時間)的很好近似。
為了便于理解上述內容,在圖4中例示了一時序圖,其中-標號200表示從最終用戶終端20產(chǎn)生的請求到達web服務器部件40a所花費的時間(GETt)。
-標號202表示該請求可能從web服務器部件40a傳播到應用服務器40b之一、以及檢索到的結果從該應用服務器40b傳回web服務器部件40a分別花費的時間的總和(WEB SERVERt);-標號204表示該請求從應用服務器40b到達所請求結果的源(例如,后端數(shù)據(jù)庫60之一)所花費的時間、以及檢索到的結果從后端數(shù)據(jù)庫60到達應用服務器40b所花費的時間的總和(BACKENDt)。(數(shù)據(jù)庫60在圖4中應該在長方形40的外部,長方形40在其內部僅包含塊40a和40b,以便與圖1相符)。時間202和204之和對應于真實的服務器執(zhí)行時間。
-標號206表示檢索到的結果從web服務器部件40a到達最終用戶終端20所花費的時間(DOWNLOADt)。
-標號208表示命中e2e響應時間(HITe2e)。具體地說,命中e2e響應時間是由下式給出的HITe2e=GETt+WEB SERVERt+BACKENDt+DOWNLOADt-標號210表示來自最終用戶終端20的確認到達web服務器部件40a所需要的時間(ACKt)。最終用戶終端20在成功下載了web服務器部件40a發(fā)送的結果之后發(fā)送確認。
此外,花費時間240是從web服務器部件40a接收到請求開始、直到web服務器部件40a從最終用戶終端20接收到關于該請求的結果已經(jīng)到達最終用戶終端20的事實的確認為止所經(jīng)過的時間。具體地說,標號220表示評估花費時間的開始操作,標號230表示結束操作。具體地說,描述花費時間的公式是TIME TAKEN=WEB SERVERt+BACKENDt+DOWNLOADt+ACKt花費時間與命中e2e響應時間208之差為TIME TAKEN-HITe2e=GETt-ACKt由于獲得操作和確認操作都是從最終用戶終端20到web服務器部件40a的簡單短消息,所以它們很可能經(jīng)歷相同(或者近似相同)的路由并花費相似的時間而到達目的地。結果是GETt≈ACKt因此TIME TAKEN-HITe2e≈0TIME TAKEN≈HITe2e即,存儲在花費時間字段124中的值是命中e2e響應時間208的良好近似。
再參照圖1,控制器70c是一引擎,其通過配置其他兩個部件70a、70b的行為來管理這兩個部件,還收集并處理來自這兩個部件70a、70b的數(shù)據(jù)以表征客戶端-服務器架構1的性能??刂破?0c還包括管理控制臺,用于配置其他兩個部件70a、70b,實質上在數(shù)據(jù)收集調度的角度來配置。具體地說,該管理控制臺能夠分析通過日志提取器40b從web服務器日志文件40c提取的字段的子集,并基于該分析而向代理部件70a傳送要模擬的請求序列。具體地說,如果一請求具有特定特征并且尚未被代理部件70a模擬,則選擇該請求以添加在代理列表中并且隨后對其進行模擬。
優(yōu)選地,控制器70c使用以下準則來選擇要模擬的請求(命中)-命中的大小(如在字節(jié)方面的大小)例如,控制器70c可以選擇大小大于30KB的命中,因為它們有可能具有擴大了可能的網(wǎng)絡瓶頸的較高命中e2e響應時間。實際上,這些命中通常傳送得較慢,對網(wǎng)絡延遲產(chǎn)生很大影響;-處理時間以存儲在花費時間字段124中的高時間值(例如大于等于8秒)進行命中較有可能具有高的服務器響應時間,因此它們被控制器70c選擇;以及-沒有存在于web服務器部件40a的高速緩存中的命中。
相反,控制器70c可能排除在web服務器部件40a的高速緩存中存在的命中,因為其服務器執(zhí)行時間不重要。
選擇要模擬的請求是控制器70c啟動對代理部件70a的測量的初始步驟,但是它也是控制器70c執(zhí)行的被調度的周期性行為(例如一星期一次),從而跟蹤用戶訪問、服務器修改等的變化。事務服務器管理員也可以選擇要模擬的請求或者向代理列表添加其他相關請求。
代理列表的大小通常是有限的,以避免必須處理被模擬請求的web服務器部件40a上的高計算負擔。為此,每次向代理列表添加新的相關請求時,都刪除相關性較小的請求。例如,可以由服務器管理員對于各個特定情況來限定代理列表的大小。例如,代理列表可以包括數(shù)量為10與20之間的請求,通常是在與被最多請求的web頁面或者被服務器管理員認為重要的頁面相關聯(lián)的請求中選擇的。
接下來,控制器70c詢問代理部件70a和日志提取器70b以對每一個被模擬請求收集在其腳本再現(xiàn)期間由代理部件70a測得的服務器執(zhí)行時間Te、以及從web服務器日志文件40c提取的花費時間字段124??刂破?0c按由事務服務器管理員限定的采樣周期(例如每分鐘)詢問代理部件70a和日志提取器70b。然后處理代理部件70a和日志提取器70b獲得的數(shù)據(jù),以對每一個被模擬請求確定網(wǎng)絡時間Tn,即,第一網(wǎng)絡將請求從web服務器部件40a發(fā)送到最終用戶終端20所花費的時間。對于長距離連接,該時間可能強烈影響命中e2e響應時間208。通常,網(wǎng)絡時間根據(jù)以下方面而上升/增加-命中的尺寸(按字節(jié))(命中越大,延遲就越長);-連接的速度(連接越快,延遲就越短)。
具體地說,對于各個被模擬請求,可以通過從存儲在花費時間字段124中的命中e2e響應時間208中減去代理部件70a測得的服務器執(zhí)行時間Te來計算網(wǎng)絡時間Tn。
在圖5中對此進行圖形說明。具體地說,網(wǎng)絡時間Tn是用標號310和320表示的兩條曲線之間的區(qū)域,這兩條曲線分別是在一天中命中e2e響應時間208和服務器執(zhí)行時間Te的可能時間特性的示例(橫軸為小時)。
例如,對于給定的IP地址、日子和命中,控制器70c可以將一個小時內的平均網(wǎng)絡時間Tn確定為日志提取器70b在該小時內提取的所有花費時間字段124的平均值減去在該小時內代理部件70a測得的所有服務器執(zhí)行時間Te的平均值。
網(wǎng)絡時間Tn和服務器響應時間Te是客戶端-服務器架構1的性能的指標,控制器70c可以使用這些指標來將網(wǎng)絡相關問題與服務器相關問題區(qū)分開來,甚至與客戶端相關問題區(qū)分開來,如在圖6至8所示的流程圖中所更好地說明的。
參照圖6的流程圖,在步驟400,由控制器70c識別要模擬的請求序列,啟動代理部件測量。在步驟402,控制器70c詢問代理部件70a和日志提取器70b,以分別為每一個所模擬的請求收集測得的服務器執(zhí)行時間Te和花費時間字段124。
在步驟404,確定(例如一個小時內的)平均網(wǎng)絡時間Tn特性,并且評估網(wǎng)絡性能(如在下文中更好地說明的)。
在步驟406,確定(例如一個小時內的)平均服務器執(zhí)行時間Te特性趨勢,并且評估服務器性能(如在下文中更好地說明的)。
在步驟408,分析網(wǎng)絡性能和服務器性能。如果網(wǎng)絡性能和服務器性能良好,則方法繼續(xù)到步驟410,否則方法繼續(xù)到步驟412。
在步驟410,向事務服務器管理員給出總體性能良好的信息。
在步驟412,向事務服務器管理員給出總體性能不佳的信息存在網(wǎng)絡或/和服務器問題。
在這兩種情況下,該方法都可繼續(xù)到步驟414。在該步驟,控制器70c可以使用上述準則來提煉(refine)所識別的請求序列,并回到開始處。
圖7詳細示出了將網(wǎng)絡時間Tn可能用于監(jiān)視網(wǎng)絡相關問題或者與不良應用訪問鏈路或單個最終用戶終端20相關的問題。具體地說,在步驟416,計算與具有同類請求的所有IP地址相關的網(wǎng)絡時間Tn。在步驟418,驗證是否所有(或者實質性部分)的被監(jiān)視IP地址都具有最佳性能。例如,可以通過將對于各個被監(jiān)視IP地址計算出的網(wǎng)絡時間Tn與閾值(例如2秒)進行比較來驗證所有(或者實質性一部分)的被監(jiān)視IP地址的最佳性能。如果所有(或者實質性部分)的被監(jiān)視IP地址的相關網(wǎng)絡時間Tn都在所述閾值以下,則該方法繼續(xù)到步驟420,否則該方法繼續(xù)到步驟422。在步驟420,向事務服務器管理員給出網(wǎng)絡性能良好的信息。在步驟422,例如,通過將針對各個被監(jiān)視IP地址計算出的網(wǎng)絡時間Tn與閾值進行比較,來驗證是否所有的被監(jiān)視IP地址性能不佳。如果所有(或者實質性部分)的被監(jiān)視IP地址的相應網(wǎng)絡時間Tn都在所述閾值以上,則在步驟424向事務服務器管理員給出應用訪問鏈路不佳的信息。
如果該條件并不是對于所有IP地址都滿足,則該方法繼續(xù)到步驟426。在步驟426,驗證在性能不佳的IP地址附近是否存在性能同樣不佳(即,相應的網(wǎng)絡時間Tn在閾值之上)的IP地址。對于本發(fā)明,表述“附近”表示IP可以位于性能不佳的IP地址的相同子網(wǎng)或網(wǎng)絡或LAN中。
如果不滿足該條件,則方法繼續(xù)到步驟428,在步驟428辨認出單個最終用戶終端問題,并向事務服務器管理員發(fā)送通知消息。
如果性能不佳的“附近”IP地址的條件成立,則該方法繼續(xù)到步驟430。在步驟430,向事務服務器管理員給出關于網(wǎng)絡問題的信息。
圖8詳細示出了將服務器響應時間Te可能用于監(jiān)視服務器相關問題。在步驟432,由代理部件70a測量特定被模擬請求的服務器執(zhí)行時間Te。在步驟434,驗證服務器執(zhí)行時間Te是否在閾值(例如8秒)之上。如果該條件不滿足,則該方法繼續(xù)到步驟436,否則該方法繼續(xù)到步驟438。在步驟436,向事務服務器管理員給出服務器執(zhí)行響應時間良好的信息。
在步驟438,驗證在web服務器部件40a/應用服務器40b或者后端數(shù)據(jù)庫60上的硬件/軟件資源利用是否存在瓶頸。如果該條件不滿足,則該方法繼續(xù)到步驟440,否則該方法繼續(xù)到步驟442。在步驟440,向事務服務器管理員給出關于服務器(應用)問題的信息(例如可能出現(xiàn)了錯誤配置)。在步驟442,驗證表示硬件/軟件資源利用和相應的命中分布的曲線是否具有相同的特性。如果該條件不滿足,則該方法繼續(xù)到步驟440,否則該方法繼續(xù)到步驟444。在步驟444,向事務服務器管理員給出指示升級事務服務器40的硬件并優(yōu)化其軟件配置。
這里描述的設置具有以下優(yōu)點。
首先,其使得可以在不增加網(wǎng)絡通信量的情況下監(jiān)視客戶端-服務器架構的性能。
此外,通過簡單地將代理部件安裝在要監(jiān)視的事務服務器附近,可以按不侵入且容易的方式(如,不修改任何客戶端請求碼)持續(xù)地詳細監(jiān)視所有的客戶端-服務器架構,包括詳細監(jiān)視使用事務服務器的所有客戶端的性能。
最后,很明顯,可以對本文所述的設置進行多種修改和變化,它們全部落入如所附權利要求限定的本發(fā)明概念的范圍內。
例如,本發(fā)明也可以應用于不是基于web的服務器,只要它們與格式同圖3所示的日志記錄基本相似的日志文件相關聯(lián)即可。
此外,最終用戶可以對各個請求設置服務級別協(xié)議(SLA),如果不滿足SLA就選擇相關動作(如發(fā)送電子郵件等)。可以對命中e2e響應時間或者網(wǎng)絡時間或者服務器執(zhí)行時間設置SLA。在這種情況下,監(jiān)視系統(tǒng)向相關最終用戶發(fā)送不滿足SLA的信息。
這里所述的設置也可以用于更一般的數(shù)據(jù)中心監(jiān)視系統(tǒng)(如圖9所示),以識別出服務器相關問題并將其與網(wǎng)絡相關問題區(qū)分開來。
該數(shù)據(jù)中心監(jiān)視系統(tǒng)可以基于如下的管理員/服務器架構其中由管理員控制臺501監(jiān)視服務器500,管理員控制臺501能夠收集關于服務器500的特性的數(shù)據(jù)(硬件資源利用、網(wǎng)絡連接、可用性)以提供對服務器架構性能的深度分析。
根據(jù)本發(fā)明,可以將系統(tǒng)70安裝在要監(jiān)視的一個或更多個服務器500附近。
借助其功能,系統(tǒng)70能夠進行以下操作-如果e2e響應時間超過限定的警告閾值,則發(fā)送警告(在HW電力不足、網(wǎng)絡問題、網(wǎng)絡過載和服務器過載之間進行辨別);-如果網(wǎng)絡時間(內聯(lián)網(wǎng)/外聯(lián)網(wǎng))在閾值(例如8秒)之上,則發(fā)送警告;-與用戶負載相關地提供關于服務器性能特性的更詳細信息。
權利要求
1.一種用于監(jiān)視客戶端-服務器架構(1)的性能的方法,所述客戶端-服務器架構(1)包括經(jīng)由網(wǎng)絡(10)連接在一起的客戶端側部分(1a)和服務器側部分(1b),所述客戶端側部分(1a)包括至少一個最終用戶終端(20),所述服務器側部分(1b)至少包括服務器部件(40a),所述方法包括以下步驟-通過安裝在所述服務器側部分(1b)中的代理部件(70a)來模擬至少一個最終用戶終端請求并將其發(fā)送給所述服務器部件(40a);-在所述服務器部件(40a)處對所述至少一個被模擬請求進行處理并生成對應的結果;-測量服務器執(zhí)行時間(Te),其表示在所述服務器部件(40a)處接收到所述被模擬最終用戶請求與在所述服務器部件(40a)處生成所述被模擬最終用戶請求的結果之間經(jīng)過的時間;-從保存在所述服務器部件(40a)中的日志文件中提取包含如下項(124)的條目,所述項(124)表示在最終用戶終端(20)向所述服務器部件(40a)發(fā)送請求與所述請求的結果到達所述最終用戶終端(20)之間經(jīng)過的命中e2e響應時間(208);-根據(jù)所述服務器執(zhí)行時間(Te)和所述命中e2e響應時間(208),對于所述至少一個被模擬請求確定由網(wǎng)絡(10)引起的網(wǎng)絡延遲(Tn)。
2.根據(jù)權利要求1所述的方法,其特征在于,對每一個被模擬請求確定網(wǎng)絡延遲(Tn)的所述步驟包括以下步驟使用所述網(wǎng)絡延遲(Tn)和所述服務器執(zhí)行時間(Te),通過區(qū)分網(wǎng)絡相關問題與服務器相關問題,來監(jiān)視所述客戶端-服務器架構(1)的性能。
3.根據(jù)權利要求1或2所述的方法,其特征在于,由所述代理部件(70a)測得的所述服務器執(zhí)行時間(Te)是代理部件(70a)向所述服務器部件(40a)發(fā)送被模擬請求的時刻與所述代理部件(70a)接收到所述被模擬請求的結果的時刻之間經(jīng)過的時間。
4.根據(jù)權利要求2或3中的任一項所述的方法,其特征在于,使用所述網(wǎng)絡延遲(Tn)和所述服務器執(zhí)行時間(Te)來監(jiān)視所述客戶端-服務器架構(1)的性能的所述步驟包括以下步驟-提供第一閾值;-將所述網(wǎng)絡延遲(Tn)與所述第一閾值進行比較;以及-如果所述網(wǎng)絡延遲(Tn)在所述第一閾值之上,則給出關于網(wǎng)絡相關問題的信息。
5.根據(jù)權利要求2至4中的任一項所述的方法,其特征在于,使用所述網(wǎng)絡延遲(Tn)和所述服務器執(zhí)行時間(Te)來監(jiān)視所述客戶端-服務器架構(1)的性能的所述步驟包括以下步驟-提供第二閾值;-將所述服務器執(zhí)行時間(Te)與所述第二閾值進行比較;以及-如果所述服務器執(zhí)行時間(Te)在所述第二閾值之上,則給出關于服務器相關問題的信息。
6.根據(jù)前述權利要求中的任一項所述的方法,其特征在于,模擬最終用戶終端請求的所述步驟包括以下步驟將所述代理部件(70a)安裝在位于所述服務器部件(40a)附近的主計算機中。
7.根據(jù)權利要求1至5中的任一項所述的方法,其特征在于,模擬最終用戶終端請求的所述步驟包括以下步驟將所述代理部件(70a)安裝在所述服務器部件(40a)上。
8.根據(jù)前述權利要求中的任一項所述的方法,其特征在于,模擬最終用戶終端請求的所述步驟包括以下步驟按照與各個請求相關聯(lián)的大小、服務器執(zhí)行時間和結果的高速緩存位置中的至少一個,識別一組要模擬的最終用戶終端請求。
9.一種用于監(jiān)視客戶端-服務器架構(1)的性能的系統(tǒng),所述客戶端-服務器架構(1)包括經(jīng)由網(wǎng)絡(10)連接在一起的客戶端側部分(1a)和服務器側部分(1b),所述客戶端側部分(1a)包括至少一個最終用戶終端(20),所述服務器側部分(1b)至少包括服務器部件(40a),所述系統(tǒng)包括-至少一個代理部件(70a),其安裝在所述服務器側部分(1b)中,所述代理部件(70a)被配置成進行以下操作-模擬至少一個最終用戶終端請求并將其發(fā)送給所述服務器部件(40a),所述至少一個被模擬請求在所述服務器部件(40a)處得到處理以生成對應的結果;-測量服務器執(zhí)行時間(Te),所述服務器執(zhí)行時間(Te)表示在所述服務器部件(40a)處接收到所述被模擬最終用戶請求與在所述服務器部件(40a)處生成所述被模擬最終用戶請求的結果之間經(jīng)過的時間;-至少一個日志提取器(70b),其被配置成利用所述服務器部件(40a)來產(chǎn)生包括如下條目的日志文件,所述條目包含表示在最終用戶終端(20)向所述服務器部件(40a)發(fā)送請求與所述請求的結果到達所述最終用戶終端(20)之間經(jīng)過的命中e2e響應時間(208)的項(124);-至少一個控制器(70c),其被配置成進行以下操作-根據(jù)所述服務器執(zhí)行時間(Te)和所述命中e2e響應時間(208),對于所述至少一個被模擬請求確定由網(wǎng)絡(10)引起的網(wǎng)絡延遲(Tn)。
10.根據(jù)權利要求9所述的系統(tǒng),其特征在于,所述控制器(70c)被配置成使用所述網(wǎng)絡延遲(Tn)和所述服務器執(zhí)行時間(Te),通過區(qū)分網(wǎng)絡相關問題與服務器相關問題,來監(jiān)視所述客戶端-服務器架構(1)的性能。
11.一種客戶端-服務器架構(1),其包括經(jīng)由網(wǎng)絡(10)連接在一起的客戶端側結構(1a)和服務器側結構(1b),所述客戶端側結構(1a)包括多個最終用戶終端(20),所述服務器側結構(1b)包括服務器部件(40a),其特征在于,所述客戶端-服務器架構(1)與根據(jù)權利要求9至10中的任一項所述的系統(tǒng)相關聯(lián)。
12.一種計算機程序產(chǎn)品,其可以加載在至少一個計算機的存儲器中,并且包括用于執(zhí)行根據(jù)權利要求1至8中的任一項所述的方法的軟件代碼部分。
13.一種用于監(jiān)視客戶端-服務器架構(1)的性能的方法,所述客戶端-服務器架構(1)包括經(jīng)由網(wǎng)絡(10)連接在一起的客戶端側部分(1a)和服務器側部分(1b),所述客戶端側部分(1a)包括至少一個最終用戶終端(20),所述服務器側部分(1b)至少包括服務器部件(40a),所述方法包括以下步驟-向所述服務器部件(40a)發(fā)送至少一個最終用戶終端請求;-在所述服務器部件(40a)處對所述至少一個請求進行處理并生成對應的結果;-通過安裝在所述服務器側部分(1b)中的代理部件(70a)來測量服務器執(zhí)行時間(Te),所述服務器執(zhí)行時間(Te)表示在所述服務器部件(40a)處接收到所述最終用戶請求與在所述服務器部件(40a)處生成所述最終用戶請求的結果之間經(jīng)過的時間;-從保存在所述服務器部件(40a)中的日志文件中提取包含如下項(124)的條目,所述項(124)表示在最終用戶終端(20)向所述服務器部件(40a)發(fā)送請求與所述請求的結果到達所述最終用戶終端(20)之間經(jīng)過的命中e2e響應時間(208);-根據(jù)所述服務器執(zhí)行時間(Te)和所述命中e2e響應時間(208),對于所述至少一個請求確定由網(wǎng)絡(10)引起的網(wǎng)絡延遲(Tn)。
14.一種用于監(jiān)視客戶端-服務器架構(1)的性能的系統(tǒng),所述客戶端-服務器架構(1)包括經(jīng)由網(wǎng)絡(10)連接在一起的客戶端側部分(1a)和服務器側部分(1b),所述客戶端側部分(1a)包括至少一個最終用戶終端(20),所述服務器側部分(1b)至少包括服務器部件(40a),所述系統(tǒng)包括-至少一個代理部件(70a),其安裝在所述服務器側部分(1b)中,所述代理部件(70a)被配置成進行以下操作-向所述服務器部件(40a)發(fā)送至少一個最終用戶終端請求,所述至少一個最終用戶終端請求在所述服務器部件(40a)處得到處理以生成對應的結果;-測量服務器執(zhí)行時間(Te),所述服務器執(zhí)行時間(Te)表示在所述服務器部件(40a)處接收到所述最終用戶請求與在所述服務器部件(40a)處生成所述最終用戶請求的結果之間經(jīng)過的時間;-至少一個日志提取器(70b),其被配置成利用所述服務器部件(40a)來產(chǎn)生包括如下條目的日志文件,所述條目包含表示在最終用戶終端(20)向所述服務器部件(40a)發(fā)送請求與所述請求的結果到達所述最終用戶終端(20)之間經(jīng)過的命中e2e響應時間(208)的項(124);至少一個控制器(70c),其被配置成進行以下操作-根據(jù)所述服務器執(zhí)行時間(Te)和所述命中e2e響應時間(208),對于所述至少一個請求確定由網(wǎng)絡(10)引起的網(wǎng)絡延遲(Tn)。
全文摘要
本發(fā)明涉及共同地采用以下部件的結構代理部件,安裝在客戶端-服務器架構的服務器側部分,用于模擬客戶端-服務器架構的實際客戶端的請求,并且測量服務器執(zhí)行時間,所述服務器執(zhí)行時間表示在服務器部件接收到模擬的最終用戶請求與所述服務器部件生成所述模擬最終用戶請求的結果之間經(jīng)過的時間;存儲在服務器日志文件中的關于命中端到端(e2e)響應時間的信息,即,最終用戶向服務器部件發(fā)送請求的時刻與請求結果到達最終用戶的時刻之間經(jīng)過的時間;根據(jù)服務器執(zhí)行時間和命中e2e響應時間,可以確定由于將客戶端-服務器架構的服務器側部分連接到客戶端側部分的網(wǎng)絡而造成的延遲。然后,使用網(wǎng)絡延遲和服務器執(zhí)行時間,通過將網(wǎng)絡相關問題與服務器相關問題區(qū)分開來、甚至與客戶端相關問題區(qū)分開來,從而監(jiān)視客戶端-服務器架構的性能。
文檔編號G06F11/34GK101044463SQ200480044270
公開日2007年9月26日 申請日期2004年10月20日 優(yōu)先權日2004年10月20日
發(fā)明者安托尼奧·納蘇托, 吉塞普·卡桑尼, 達尼羅·戈塔 申請人:意大利電信股份公司