專利名稱:用于預(yù)測(cè)多層計(jì)算機(jī)軟件系統(tǒng)的性能的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式計(jì)算。更具體地講,本發(fā)明涉及用于預(yù)測(cè)在分布式計(jì)算機(jī)系統(tǒng)上運(yùn)行的多層計(jì)算機(jī)軟件系統(tǒng)的性能的方法和設(shè)備。
背景技術(shù):
多層系統(tǒng)或架構(gòu)是ー種計(jì)算機(jī)軟件系統(tǒng),其功能通過(guò)在分布式計(jì)算機(jī)硬件上運(yùn)行 的幾個(gè)軟件組件的協(xié)作來(lái)實(shí)現(xiàn)。使用多層軟件架構(gòu)建立許多基于互聯(lián)網(wǎng)的軟件服務(wù),諸如商業(yè)、旅行、衛(wèi)生保健和金融場(chǎng)所。在這種架構(gòu)中,前端web服務(wù)器(例如,Apache服務(wù)器或Microsoft的IIS服務(wù)器)接受用戶請(qǐng)求并把它們轉(zhuǎn)發(fā)給處理請(qǐng)求的應(yīng)用層(例如,Tomcat或JBoss服務(wù)器),并且必要的信息存儲(chǔ)在存儲(chǔ)層(例如,MySQL、DB2或Oracle數(shù)據(jù)庫(kù))中。建立多層軟件服務(wù)的關(guān)鍵挑戰(zhàn)在于能夠滿足服務(wù)的性能要求。設(shè)計(jì)過(guò)程通常包括回答問(wèn)題,諸如“在每ー層中需要多少個(gè)服務(wù)器以便對(duì)于90%的請(qǐng)求提供50 ms的平均響應(yīng)時(shí)間”。一旦建立,設(shè)計(jì)者隨后經(jīng)常擔(dān)心當(dāng)前架構(gòu)是否能夠滿足未來(lái)的性能要求,例如,當(dāng)由于服務(wù)的流行或極端事件(諸如,Slashdot效應(yīng)或大規(guī)模DoS攻擊)而導(dǎo)致請(qǐng)求工作量增加吋。提高復(fù)雜多層應(yīng)用的性能是重要的任務(wù),但常見(jiàn)的第一嘗試解決方案是投入更多的硬件資源并分割工作量。云計(jì)算基礎(chǔ)設(shè)施(諸如,Amazon的EC2和Google的AppEngine)已使擴(kuò)展應(yīng)用可用的硬件資源變得既便宜又快速。例如,Animoto在三天內(nèi)把它的EC2實(shí)例從300擴(kuò)展至3000。這種彈性基礎(chǔ)設(shè)施允許應(yīng)用高度可擴(kuò)展,然而,設(shè)計(jì)者必須小心地決定在哪里放置這些可用資源以在應(yīng)用性能方面實(shí)現(xiàn)最大利益。為了回答這種問(wèn)題,關(guān)鍵的是知道當(dāng)擴(kuò)展分配給服務(wù)的資源時(shí)的性能提高(或性能缺乏,暗示瓶頸)。準(zhǔn)確地預(yù)測(cè)性能但并不實(shí)際按比例建立服務(wù)的能力能夠顯著地幫助這種服務(wù)的設(shè)計(jì)者提供高性能。然而,因?yàn)槎鄬酉到y(tǒng)的復(fù)雜性質(zhì),預(yù)測(cè)多層系統(tǒng)的性能是有挑戰(zhàn)性的。例如,典型的請(qǐng)求的處理需要不同層之間的復(fù)雜的相互作用。此外,這些應(yīng)用具有重要的內(nèi)部邏輯,例如,它們使用高速緩存并對(duì)最大線程的數(shù)量施加硬限制。最后,在擴(kuò)展部署中,可能出現(xiàn)新的相互作用或瓶頸,或者已有瓶頸可能在不同層之間移位。已提出許多統(tǒng)計(jì)方案(黑盒方案),這些統(tǒng)計(jì)方案試圖通過(guò)推斷隨后用于預(yù)測(cè)性能的請(qǐng)求的端到端處理路徑(諸如,遠(yuǎn)程過(guò)程調(diào)用(RPC)、系統(tǒng)調(diào)用或網(wǎng)絡(luò)日志文件)建立整個(gè)系統(tǒng)的概率模型。這些技術(shù)是通用的,但缺乏高準(zhǔn)確性。白盒方案或技術(shù)使用系統(tǒng)特定知識(shí)以通用性為代價(jià)提高準(zhǔn)確性。Magpie需要中間件、應(yīng)用和監(jiān)測(cè)工具的修改,以便產(chǎn)生能夠由Magpie理解并分析的事件日志。Pinpoint通過(guò)修改中間件利用ID標(biāo)記每個(gè)請(qǐng)求,且然后通過(guò)聚類和統(tǒng)計(jì)技術(shù)使失敗的請(qǐng)求與引起失敗的組件相關(guān)聯(lián)。Standust也通過(guò)修改中間件對(duì)于姆個(gè)請(qǐng)求使用ID,把所有日志放在數(shù)據(jù)庫(kù)中,并使用數(shù)據(jù)庫(kù)技術(shù)分析應(yīng)用行為?;液蟹桨柑峁┲虚g情況它們與白盒方案相比具有較小侵入性,但比黑盒方案更準(zhǔn)確。例如,vPath提出用于在多層系統(tǒng)中捕捉請(qǐng)求的端到端處理路徑的新方案。vpath的關(guān)鍵觀測(cè)在于分配単獨(dú)的線程用于處理多層應(yīng)用中的各請(qǐng)求。這允許vPath把線程關(guān)聯(lián)到與給定網(wǎng)絡(luò)活動(dòng)相關(guān)的系統(tǒng)調(diào)用,并因此準(zhǔn)確地鏈接與單個(gè)客戶端請(qǐng)求對(duì)應(yīng)的各種消
ο已有方法分別地建?;蚰M多層系統(tǒng)的每ー層。由于在不同層的處理高度相關(guān),所以這些方案在準(zhǔn)確性方面受到限制。因此,需要用于建?;虼_定多層系統(tǒng)的性能的改進(jìn)的方法和設(shè)備。
發(fā)明內(nèi)容
公開(kāi)了ー種用于預(yù)測(cè)在分布式計(jì)算機(jī)系統(tǒng)上工作的多層計(jì)算機(jī)軟件系統(tǒng)的性能的方法。在一個(gè)實(shí)施例中,該方法包括以時(shí)間選擇性方式把客戶端請(qǐng)求發(fā)送給多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的層;收集多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所有層之間的業(yè)務(wù)軌跡(trace);收集在多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件處的CPU時(shí)間;以及從收集的業(yè)務(wù)軌跡推斷多層計(jì)算機(jī)軟件系統(tǒng)的性能數(shù)據(jù)。還公開(kāi)了一種用于預(yù)測(cè)在分布式計(jì)算機(jī)系統(tǒng)上工作的多層計(jì)算機(jī)軟件系統(tǒng)的性能的系統(tǒng)。在一個(gè)實(shí)施例中,該系統(tǒng)包括請(qǐng)求產(chǎn)生器,用于以時(shí)間選擇性方式把客戶端請(qǐng)求發(fā)送給多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件;業(yè)務(wù)監(jiān)測(cè)器,用于收集多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所有層之間的業(yè)務(wù)軌跡;CPU監(jiān)測(cè)器,用于收集在多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件處的中央處理單元(CPU)時(shí)間;和處理器,執(zhí)行用于從收集的業(yè)務(wù)軌跡推斷多層計(jì)算機(jī)軟件系統(tǒng)的性能數(shù)據(jù)的指令。
圖I是用于確定多層計(jì)算機(jī)軟件系統(tǒng)或架構(gòu)(系統(tǒng))的關(guān)鍵性能特征的小規(guī)模受控環(huán)境的示例性實(shí)施例的方框圖。圖2是表示用于使用圖I的環(huán)境預(yù)測(cè)多層計(jì)算機(jī)軟件系統(tǒng)的性能的本發(fā)明的方法的流程圖。圖3是用于根據(jù)圖2的方法從收集的業(yè)務(wù)軌跡推斷多層計(jì)算機(jī)軟件系統(tǒng)的性能數(shù)據(jù)的設(shè)備的方框圖。圖4是用于使用圖3的設(shè)備推斷在多層計(jì)算機(jī)軟件系統(tǒng)的不同層處捕捉的消息軌跡的方法的流程圖。圖5是將根據(jù)圖2的方法確定層軟件組件的狀態(tài)的狀態(tài)機(jī)的示圖。圖6是能夠用于實(shí)現(xiàn)本發(fā)明的方法的計(jì)算機(jī)之一的示例性實(shí)施例的方框圖。
具體實(shí)施例方式本發(fā)明的方法試圖識(shí)別確定多層計(jì)算機(jī)軟件系統(tǒng)或架構(gòu)的性能特性的主要參數(shù)。、如早前所述,計(jì)算機(jī)軟件系統(tǒng)的各種功能通過(guò)在分布式計(jì)算機(jī)系統(tǒng)(例如,經(jīng)計(jì)算機(jī)網(wǎng)絡(luò)彼此通信的兩個(gè)或更多的服務(wù)器或計(jì)算機(jī))上運(yùn)行的幾個(gè)軟件組件(層)的協(xié)作來(lái)實(shí)現(xiàn)。這些性能參數(shù)包括軟件組件之間的相互作用、這些相互作用的時(shí)間相關(guān)性、用于完成請(qǐng)求的處理的這些部件的中央處理單元(CPU)時(shí)間和輸入/輸出(IO)等待時(shí)間。這些性能參數(shù)能夠用于通過(guò)已有方法(諸如,排隊(duì)理論或模擬)在新環(huán)境中預(yù)測(cè)多層計(jì)算機(jī)軟件系統(tǒng)的性能。本發(fā)明的方法通過(guò)利用小規(guī)模受控環(huán)境(即,包含比典型多層計(jì)算機(jī)軟件系統(tǒng)少很多的數(shù)量的軟件組件層的環(huán)境)經(jīng)黑盒方案確定多層計(jì)算機(jī)軟件系統(tǒng)的關(guān)鍵性能特征(包括軟件組件之間的計(jì)算機(jī)網(wǎng)絡(luò)業(yè)務(wù)相互作用及其時(shí)間相關(guān)性、在每個(gè)部件的CPU時(shí)間和在每個(gè)部件的IO等待時(shí)間)。在這種小規(guī)模受控環(huán)境中,能夠控制系統(tǒng)的輸入(請(qǐng)求),從而每個(gè)請(qǐng)求在時(shí)間上與其它請(qǐng)求分開(kāi)。由本發(fā)明產(chǎn)生的參數(shù)能夠由已有技術(shù)(諸如,排隊(duì)理論和模擬)使用以在未實(shí)際部署系統(tǒng)的情況下在新的可能很大的計(jì)算基礎(chǔ)設(shè)施中準(zhǔn)確地預(yù)測(cè)多層系統(tǒng)的性能。結(jié)果能夠用于資源供應(yīng)、容量規(guī)劃和問(wèn)題解決。該方法通常包括數(shù)據(jù)收集過(guò)程和推斷過(guò)程。數(shù)據(jù)收集過(guò)程收集每對(duì)軟件組件之間 的計(jì)算機(jī)網(wǎng)絡(luò)業(yè)務(wù)軌跡和在每個(gè)軟件組件的請(qǐng)求所需的CPU時(shí)間。推斷過(guò)程推斷軟件組件之間的相互作用業(yè)務(wù)的相關(guān)性和在部件處的每個(gè)請(qǐng)求的逗留時(shí)間。這種逗留時(shí)間包括CPU時(shí)間和盤IO等待時(shí)間。然后,通過(guò)提取CPU時(shí)間,獲得盤IO等待時(shí)間。圖I是用于預(yù)測(cè)多層計(jì)算機(jī)軟件系統(tǒng)或架構(gòu)(系統(tǒng))的性能特征的小規(guī)模受控環(huán)境100的示例性實(shí)施例的方框圖。環(huán)境100包括多個(gè)層軟件組件(例如,多個(gè)Apache web服務(wù)器、Tomcat服務(wù)器和諸如MySQL的數(shù)據(jù)庫(kù)服務(wù)器)10も、1022、102n,它們形成多層計(jì)算機(jī)軟件系統(tǒng)。每個(gè)層軟件組件10A、1022、102n在単獨(dú)的物理機(jī)器(服務(wù)器計(jì)算機(jī))上和/或在単獨(dú)的虛擬機(jī)(即,在主機(jī)計(jì)算機(jī)的軟件層上面工作的計(jì)算機(jī)的軟件實(shí)現(xiàn)方式)上運(yùn)行。層軟件組件的數(shù)量顯著小于典型多層計(jì)算機(jī)軟件系統(tǒng)中的軟件組件的數(shù)量。圖I的環(huán)境100還包括用于以受控的速率向系統(tǒng)產(chǎn)生客戶端請(qǐng)求的請(qǐng)求產(chǎn)生器110。非限制性地,請(qǐng)求產(chǎn)生器110能夠是在與服務(wù)器或主機(jī)計(jì)算機(jī)分開(kāi)的計(jì)算機(jī)上運(yùn)行的Hewlett-Packard的HP LoadRunner系統(tǒng)。姆個(gè)請(qǐng)求穿過(guò)所有層軟件組件102” 1022、102n并且能夠通過(guò)層軟件組件10 進(jìn)入和離開(kāi)該系統(tǒng)。請(qǐng)求產(chǎn)生器110用作多層系統(tǒng)的客戶端計(jì)算機(jī)或者模擬多層系統(tǒng)的客戶端計(jì)算機(jī)。請(qǐng)求通常由請(qǐng)求產(chǎn)生器110以用戶選擇的速率自動(dòng)發(fā)送。選擇發(fā)送請(qǐng)求的速率,從而前ー請(qǐng)求的執(zhí)行不干擾當(dāng)前請(qǐng)求的執(zhí)行,或者換句話說(shuō),從而請(qǐng)求在時(shí)間上彼此分開(kāi)。提供多個(gè)業(yè)務(wù)監(jiān)測(cè)器IU1UU2UUn(每個(gè)業(yè)務(wù)監(jiān)測(cè)器用于每個(gè)層軟件組件)用于捕捉朝向它們各自的層軟件組件的所有數(shù)據(jù)業(yè)務(wù)以及來(lái)自它們各自的層軟件組件的所有數(shù)據(jù)業(yè)務(wù)。每個(gè)業(yè)務(wù)監(jiān)測(cè)器記錄數(shù)據(jù)的發(fā)送時(shí)間和接收時(shí)間。提供多個(gè)CPU監(jiān)測(cè)器每個(gè)CPU監(jiān)測(cè)器用于每個(gè)層軟件組件)用于記錄在它們各自的層軟件組件使用的CPU周期。業(yè)務(wù)和CPU監(jiān)測(cè)器可實(shí)現(xiàn)于硬件、軟件或者它們的任何組合中。例如,但非限制性地,業(yè)務(wù)監(jiān)測(cè)器能夠是常規(guī)的包分析器(諸如,tcpdump),并且CPU監(jiān)測(cè)器能夠是常規(guī)的資源監(jiān)測(cè)器應(yīng)用。提供多個(gè)時(shí)鐘Iie1Uie2.Ii6n(每個(gè)時(shí)鐘用于每個(gè)層軟件組件)用于通過(guò)從數(shù)據(jù)包推斷獲得發(fā)送和接收定吋。每個(gè)層的時(shí)鐘彼此同歩。發(fā)送和接收定時(shí)隨后用于在它們各自的層軟件組件處的數(shù)據(jù)包的時(shí)間相關(guān)性。圖2是表示用于確定多層計(jì)算機(jī)軟件系統(tǒng)的性能參數(shù)的使用圖I的環(huán)境執(zhí)行的方法的流程圖。在塊202中,請(qǐng)求產(chǎn)生器以能夠由用戶控制的速率產(chǎn)生發(fā)送給系統(tǒng)的客戶端請(qǐng)求。當(dāng)請(qǐng)求被系統(tǒng)處理時(shí),業(yè)務(wù)監(jiān)測(cè)器在塊204中收集所有層軟件組件之間的網(wǎng)絡(luò)業(yè)務(wù)軌跡,而CPU監(jiān)測(cè)器在塊206中收集在所有軟件組件處的CPU時(shí)間。在圖2的塊208中,從在塊204和206中收集的業(yè)務(wù)軌跡205和CPU時(shí)間207推斷多層計(jì)算機(jī)軟件系統(tǒng)的性能參數(shù)。這些性能參數(shù)能夠包括層軟件組件之間的相互作用(例如,不同層之間的一系列消息交換)209、相互作用的時(shí)間相關(guān)性210和在每個(gè)層軟件組件的逗留時(shí)間211。逗留時(shí)間211是CPU時(shí)間207和盤IO完成時(shí)間213之和。在圖2的塊212中,從在塊208中獲得的逗留時(shí)間211減去CPU時(shí)間207,以獲得在每個(gè)層軟件組件的盤IO完成時(shí)間213。 圖3是用于執(zhí)行圖2的方法的塊208和212的過(guò)程的“推斷”計(jì)算機(jī)300的方框圖。計(jì)算機(jī)300包括CPU 304和存儲(chǔ)器306。CPU 304接收由圖I的業(yè)務(wù)監(jiān)測(cè)器11も、1122、112n收集的數(shù)據(jù)作為輸入,該數(shù)據(jù)包括發(fā)送給對(duì)應(yīng)的層軟件組件以及來(lái)自對(duì)應(yīng)的層軟件組件的數(shù)據(jù)包。CPU 304還接收來(lái)自時(shí)鐘Iie1Uie2Uien的時(shí)鐘數(shù)據(jù)作為輸入,該時(shí)鐘數(shù)據(jù)記錄包何時(shí)被發(fā)送并由它們的對(duì)應(yīng)業(yè)務(wù)監(jiān)測(cè)器捕捉。CPU 304提取每個(gè)捕捉的包的源、目的地和大小信息,且執(zhí)行層軟件組件狀態(tài)推斷并輸出在層軟件組件的請(qǐng)求的逗留時(shí)間。存儲(chǔ)器306存儲(chǔ)由CPU 304產(chǎn)生的中間和最后推斷數(shù)據(jù)。圖4是用于使用圖3的推斷計(jì)算機(jī)推斷多層計(jì)算機(jī)軟件系統(tǒng)的性能特征的方法的流程圖。在塊402中,CPU 304使用由業(yè)務(wù)監(jiān)測(cè)器1121、1122、11211收集的業(yè)務(wù)數(shù)據(jù)和由時(shí)鐘116ρ1162、116η提供的時(shí)鐘數(shù)據(jù)提取捕捉的包的源、目的地和大小信息。在塊404中,CPU304使用層軟件組件的地址把包分為下面的種類之一來(lái)自客戶端的請(qǐng)求;對(duì)客戶端的響應(yīng);對(duì)服務(wù)器(即,運(yùn)行層軟件組件的物理機(jī)器或虛擬機(jī))的請(qǐng)求;和對(duì)服務(wù)器的響應(yīng)??蛻舳舜矶鄬酉到y(tǒng)的最終用戶或下游層中的節(jié)點(diǎn)(例如,對(duì)于層I軟件組件102i,層2軟件組件1022將會(huì)是下游層并且請(qǐng)求產(chǎn)生器110將會(huì)是上游層。類似地,對(duì)于層2軟件組件1022,層η軟件組件102η將會(huì)是下游層,而層I軟件組件10 將會(huì)是上游層)。服務(wù)器代表上游層中的節(jié)點(diǎn)。種類將會(huì)根據(jù)推斷線程活動(dòng)的在圖3的CPU 304上運(yùn)行的狀態(tài)機(jī)確定層軟件組件的狀態(tài)。更具體地講,為每個(gè)層軟件組件創(chuàng)建在CPU 304上運(yùn)行的狀態(tài)機(jī)以推斷在CPU和盤I/O等待中花費(fèi)的時(shí)間,如圖2中的塊211和212所示。CPU監(jiān)測(cè)器提供關(guān)于由每個(gè)請(qǐng)求消耗的CPU資源的數(shù)據(jù)。在“繁忙”狀態(tài)下花費(fèi)的總時(shí)間由狀態(tài)機(jī)使用業(yè)務(wù)監(jiān)測(cè)數(shù)據(jù)推斷。通過(guò)從在“繁忙”狀態(tài)下花費(fèi)的總時(shí)間減去CPU時(shí)間獲得I/O等待時(shí)間。圖5是層的狀態(tài)機(jī)500的示圖。該狀態(tài)機(jī)包括空閑狀態(tài)502、繁忙狀態(tài)504和繁忙/空閑狀態(tài)506??臻e狀態(tài)502指示在對(duì)應(yīng)的層軟件組件中沒(méi)有請(qǐng)求或者當(dāng)前未在這個(gè)組件處服務(wù)請(qǐng)求。繁忙狀態(tài)504指示當(dāng)前在對(duì)應(yīng)的層軟件組件服務(wù)請(qǐng)求。繁忙/空閑狀態(tài)506指示正在對(duì)應(yīng)的層軟件組件處被服務(wù)的請(qǐng)求將會(huì)由下一包確定。感興趣的層軟件組件的初始狀態(tài)設(shè)置為空閑。這個(gè)層軟件組件的狀態(tài)將會(huì)根據(jù)捕捉的包和狀態(tài)機(jī)500而改變。例如,當(dāng)層軟件組件處于空閑狀態(tài)502并且來(lái)自客戶端的請(qǐng)求到達(dá)時(shí),它的狀態(tài)將會(huì)改變?yōu)榉泵顟B(tài)504。當(dāng)層軟件組件處于繁忙/空閑狀態(tài)506吋,當(dāng)前層軟件組件狀態(tài)由下一包確定。如果下ー包是對(duì)服務(wù)器的請(qǐng)求,則當(dāng)前狀態(tài)將會(huì)被確定為繁忙狀態(tài)504。如果下ー包是來(lái)自服務(wù)器的響應(yīng)或來(lái)自客戶端的請(qǐng)求,則當(dāng)前狀態(tài)將會(huì)被確定為空閑狀態(tài)502。
通過(guò)其配置在現(xiàn)有技術(shù)中公知的合適地編程的計(jì)算機(jī)可執(zhí)行本發(fā)明的方法??蛻舳?、服務(wù)器和推斷計(jì)算機(jī)能夠各自例如使用公知的計(jì)算機(jī)CPU、存儲(chǔ)器單元、存儲(chǔ)裝置、計(jì)算機(jī)軟件和其它模塊實(shí)現(xiàn)。計(jì)算機(jī)(客戶端或服務(wù)器計(jì)算機(jī))的非限制性實(shí)施例的方框圖顯示在圖6中并由標(biāo)號(hào)600表示。計(jì)算機(jī)600非限制性地包括處理器604,處理器604通過(guò)執(zhí)行與本發(fā)明的方法對(duì)應(yīng)的計(jì)算機(jī)程序指令(例如,層組件軟件以及服務(wù)器或主機(jī)計(jì)算機(jī)的CPU和業(yè)務(wù)監(jiān)測(cè)器或者客戶端計(jì)算機(jī)的請(qǐng)求產(chǎn)生器)控制計(jì)算機(jī)600的總體操作。計(jì)算機(jī)程序指令能夠存儲(chǔ)在存儲(chǔ)裝置608 (例如,磁盤)中并且在希望執(zhí)行計(jì)算機(jī)程序指令時(shí)被加載到存儲(chǔ)器612中。計(jì)算機(jī)600還包括用于(例如,在本地或者經(jīng)網(wǎng)絡(luò))與其它裝置(諸如,客戶端、服務(wù)器和/或推斷計(jì)算機(jī))通信的一個(gè)或多個(gè)接口 616。計(jì)算機(jī)600還包括輸A /輸出620,輸入/輸出620代表允許與計(jì)算機(jī)600的用戶交互的裝置(例如,顯示器、鍵盤、鼠標(biāo)、揚(yáng)聲器、按鈕等)。
本領(lǐng)域技術(shù)人員將會(huì)意識(shí)到,執(zhí)行與本發(fā)明的方法對(duì)應(yīng)的計(jì)算機(jī)程序指令的計(jì)算機(jī)的實(shí)際實(shí)現(xiàn)方式能夠還包括其它元件,并且圖6是用于說(shuō)明性目的的計(jì)算機(jī)的一些元件的高級(jí)表示。另外,執(zhí)行與本發(fā)明的方法對(duì)應(yīng)的計(jì)算機(jī)程序指令的計(jì)算機(jī)能夠是更大的設(shè)備或系統(tǒng)的部件。另外,本領(lǐng)域技術(shù)人員將會(huì)意識(shí)到,本文描述的方法也可以使用專用硬件實(shí)現(xiàn),所述專用硬件的電路被具體地配置為執(zhí)行該方法。另一方面,可使用硬件和軟件的各種組合實(shí)現(xiàn)該方法。盡管已在本文描述并表示了示例性附圖和特定實(shí)施例,但應(yīng)該理解,本發(fā)明的范圍不限于討論的特定實(shí)施例。因此,實(shí)施例應(yīng)該被視為是說(shuō)明性的而非限制性的,并且應(yīng)該理解,在不脫離如下面的權(quán)利要求及其結(jié)構(gòu)和功能等同物所闡述的本發(fā)明的范圍的情況下,可由本領(lǐng)域技術(shù)人員在這些實(shí)施例中做出修改。
權(quán)利要求
1.一種用于預(yù)測(cè)在分布式計(jì)算機(jī)系統(tǒng)上工作的多層計(jì)算機(jī)軟件系統(tǒng)的性能的方法,該方法包括 以時(shí)間選擇性方式,把客戶端請(qǐng)求發(fā)送給在中央處理單元(CPU)上執(zhí)行的多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的ー個(gè)或多個(gè)層; 利用業(yè)務(wù)監(jiān)測(cè)器收集多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所有的所述ー個(gè)或多個(gè)層之間的業(yè)務(wù)軌跡; 利用CPU監(jiān)測(cè)器收集在多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件處的CPU時(shí)間;以及 在計(jì)算機(jī)過(guò)程中,從收集的業(yè)務(wù)軌跡推斷多層計(jì)算機(jī)軟件系統(tǒng)的性能數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的方法,還包括在發(fā)送客戶端請(qǐng)求之前,利用請(qǐng)求產(chǎn)生器產(chǎn)生客戶端請(qǐng)求。
3.根據(jù)權(quán)利要求I所述的方法,其中所述業(yè)務(wù)軌跡和CPU時(shí)間被同時(shí)收集。
4.根據(jù)權(quán)利要求I所述的方法,其中當(dāng)客戶端請(qǐng)求被發(fā)送給多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所述ー個(gè)或多個(gè)層時(shí),所述業(yè)務(wù)軌跡和CPU時(shí)間被同時(shí)收集。
5.根據(jù)權(quán)利要求I所述的方法,其中所述時(shí)間選擇性方式使客戶端請(qǐng)求在時(shí)間上彼此分開(kāi),從而由多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所述ー個(gè)或多個(gè)層對(duì)客戶端請(qǐng)求的執(zhí)行彼此不干擾。
6.根據(jù)權(quán)利要求I所述的方法,其中推斷的性能數(shù)據(jù)包括多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所述ー個(gè)或多個(gè)層之間的相互作用。
7.根據(jù)權(quán)利要求6所述的方法,其中推斷的性能數(shù)據(jù)包括多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所述ー個(gè)或多個(gè)層之間的相互作用的時(shí)間相關(guān)性。
8.根據(jù)權(quán)利要求I所述的方法,其中推斷的性能數(shù)據(jù)包括在多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所述ー個(gè)或多個(gè)層中的每個(gè)層的逗留時(shí)間。
9.根據(jù)權(quán)利要求8所述的方法,還包括從逗留時(shí)間確定盤輸入/輸出等待時(shí)間。
10.根據(jù)權(quán)利要求I所述的方法,還包括從推斷的性能數(shù)據(jù)確定盤輸入/輸出等待時(shí)間。
11.一種用于預(yù)測(cè)在分布式計(jì)算機(jī)系統(tǒng)上工作的多層計(jì)算機(jī)軟件系統(tǒng)的性能的系統(tǒng),該系統(tǒng)包括 請(qǐng)求產(chǎn)生器,用于以時(shí)間選擇性方式把客戶端請(qǐng)求發(fā)送給多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的ー個(gè)或多個(gè)層; 業(yè)務(wù)監(jiān)測(cè)器,用于收集多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所有的所述ー個(gè)或多個(gè)層之間的業(yè)務(wù)軌跡; (PU監(jiān)測(cè)器,用于收集在多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件處的中央處理單元(CPU)時(shí)間;和 處理器,執(zhí)行用于從收集的業(yè)務(wù)軌跡推斷多層計(jì)算機(jī)軟件系統(tǒng)的性能數(shù)據(jù)的指令。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述業(yè)務(wù)軌跡和CPU時(shí)間被同時(shí)收集。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其中當(dāng)客戶端請(qǐng)求被發(fā)送給多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所述ー個(gè)或多個(gè)層時(shí),所述業(yè)務(wù)軌跡和CPU時(shí)間被同時(shí)收集。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述時(shí)間選擇性方式使客戶端請(qǐng)求在時(shí)間上彼此分開(kāi),從而由多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所述ー個(gè)或多個(gè)層對(duì)客戶端請(qǐng)求的執(zhí)行彼此不干擾。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其中推斷的性能數(shù)據(jù)包括多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所述ー個(gè)或多個(gè)層之間的相互作用。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中推斷的性能數(shù)據(jù)還包括多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所述ー個(gè)或多個(gè)層之間的相互作用的時(shí)間相關(guān)性。
17.根據(jù)權(quán)利要求11所述的系統(tǒng),其中推斷的性能數(shù)據(jù)包括在多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所述ー個(gè)或多個(gè)層中的每個(gè)層的逗留時(shí)間。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),還包括從逗留時(shí)間確定盤輸入/輸出等待時(shí)間。
19.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述處理器執(zhí)行另外的用于從推斷的性能數(shù)據(jù)確定盤輸入/輸出等待時(shí)間的指令。
全文摘要
一種用于預(yù)測(cè)在分布式計(jì)算機(jī)系統(tǒng)上工作的多層計(jì)算機(jī)軟件系統(tǒng)的性能的方法和系統(tǒng)以時(shí)間選擇性方式把客戶端請(qǐng)求發(fā)送給多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的一個(gè)或多個(gè)層;收集多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件的所有的所述一個(gè)或多個(gè)層之間的業(yè)務(wù)軌跡;收集在多層計(jì)算機(jī)軟件系統(tǒng)的軟件組件處的CPU時(shí)間;從收集的業(yè)務(wù)軌跡推斷多層計(jì)算機(jī)軟件系統(tǒng)的性能數(shù)據(jù);以及從推斷的性能數(shù)據(jù)確定盤輸入/輸出等待時(shí)間。
文檔編號(hào)G06F15/16GK102696013SQ201180006016
公開(kāi)日2012年9月26日 申請(qǐng)日期2011年1月13日 優(yōu)先權(quán)日2010年1月13日
發(fā)明者A.辛赫, G.蔣, K.潘, Y.古 申請(qǐng)人:美國(guó)日本電氣實(shí)驗(yàn)室公司