專利名稱:用于通過優(yōu)化性能模型提高軟件執(zhí)行時間的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種用于根據(jù)軟件片段可用的資源來管理該軟件片段的行為的方法和系統(tǒng)。
背景技術:
根據(jù)設計階段認可的功能測試(FVT)案例的結果來預測在客戶生產(chǎn)環(huán)境中的應用的確切行為是極其具有挑戰(zhàn)性的,即使其合并在軟件開發(fā)實驗室中普遍使用的附加測試 (容量規(guī)劃、系統(tǒng)測試)中。最可能的是這種測試案例從功能的觀點鑒別有意義的測試,但是其是在與生產(chǎn)階段的確切客戶執(zhí)行環(huán)境不可能匹配的操作條件下執(zhí)行的。大量應用解決此問題的廣泛使用的方法是所謂的“容量規(guī)劃”或“性能負載”測試,其中應用的一些特定 (例如準確的硬件資源需求)和有關的(例如可靠性)方面在不同的場景中測試。在這些場景中,操作環(huán)境與“理想”測試案例不同,因為在客戶端生產(chǎn)期間對于軟件應用可用的計算資源量不可預知在真實條件下,應用經(jīng)常部署在大群集數(shù)據(jù)中心中,且其調度與其他并發(fā)應用一起發(fā)生,這樣可用資源中可發(fā)生相當大的改變。這些是應用可用的計算資源相比于理想的單機系統(tǒng)或模擬測試可能改變的一部分原因。期望“容量規(guī)劃”比當前可能的提供更精確的預測當前最好的實踐是容量規(guī)劃階段的結果是應用在最壞條件下正確操作所需的硬件需求的定義。換句話說,“性能負載”或“容量規(guī)劃”工具經(jīng)常提供正確運行所需的操作資源的測量,即從功能的觀點在“最壞情況”下。US5655074描述了一種用于大型軟件系統(tǒng)的系統(tǒng)工程的軟件工具。該處理開始于步驟針對每個可唯一識別的軟件組件,收集關于軟件系統(tǒng)的大量特征的觀測數(shù)據(jù)(包括歷史的和計劃的系統(tǒng)調節(jié))。還收集的是關于每個軟件組件的缺陷或問題的歷史數(shù)據(jù)。缺陷數(shù)據(jù)統(tǒng)計地映射至軟件的測量特征,以建立風險指數(shù)。風險指數(shù)可用作建立預測軟件性能的軟件特征的預測工具,或者備選的,風險指數(shù)可用于為組件排序,以確定哪些組件在努力節(jié)省資源的情況下需要較少測試。
發(fā)明內容
如所討論的,致力于識別最小系統(tǒng)需求的現(xiàn)有技術的測試技術是靜態(tài)的方式。本發(fā)明的目的在于當應用在客戶端環(huán)境中執(zhí)行時,動態(tài)地提供關于應用的預期性能的信息。根據(jù)本發(fā)明,提供了一種如所附獨立權利要求1的優(yōu)化軟件執(zhí)行的方法,如所附權利要求12的設備、如所附權利要求13的計算機程序、如所附權利要求14的性能模型以及如所附權利要求15的計算機可讀介質。進一步優(yōu)選的實施例在從屬權利要求中定義。通過查閱附圖和詳細描述,本發(fā)明的優(yōu)點對于技術人員將變得清晰。其用意在于任何附加的優(yōu)點也包含于此。
本發(fā)明的實施例現(xiàn)將通過參照附圖的示例的方式描述,在附圖中相似的標記表示相似的元件,其中圖1示出了本發(fā)明的第一實施例的步驟;圖2示出了形式為多維空間200的性能模型的示例;圖3示出了形式為多維空間300的性能模型的另一示例;圖4示出了本發(fā)明的第二實施例的步驟;圖5示出了本發(fā)明的第三實施例的步驟;以及圖6示出了適于實施某些實施例的計算機環(huán)境。
具體實施例方式提議結合性能模型將應用構建(設計、實施和組裝)以及部署到操作環(huán)境中。該性能模型可以利用具有附加測量的應用測試過程來實現(xiàn),其中附加測量專注于以關于該應用的特定范圍優(yōu)選為不可知的方式使得執(zhí)行環(huán)境可用的資源,從而使其可應用于最大可能數(shù)量的應用。圖1示出了本發(fā)明的第一實施例的步驟。如圖所示,該過程開始于步驟100,繼續(xù)進行至步驟110,在該步驟110提供了例如以下將進一步詳細描述的性能模型。在步驟120, 執(zhí)行與性能模型相關的應用,在步驟130,從例如操作系統(tǒng)或其他監(jiān)測軟件或硬件接收用于定義該模型的系統(tǒng)資源測量。在步驟140,該測量用于從性能模型中提取對應于所述測量的性能值。在步驟150,確定該應用是否已結束,在這種情況下該過程在步驟160結束、或者該過程返回至步驟130,使得只要該應用可運行,過程就繼續(xù)根據(jù)監(jiān)測的系統(tǒng)資源的可用性來監(jiān)測軟件的性能水平。相應地,提供了一種在執(zhí)行軟件的系統(tǒng)中優(yōu)化所述軟件的執(zhí)行的方法,包括以下步驟提供代表不同系統(tǒng)條件下所述軟件的性能的性能模型,其中系統(tǒng)條件以一個或多個預定系統(tǒng)資源來描述,接收給定時刻的每個預定系統(tǒng)資源的測量,以及從所述性能模型中提取對應于所述測量的性能值。在本說明書中使用的短語“性能”可以反映軟件應用的任意期望行為。根據(jù)優(yōu)選實施例,討論中的性能標準為軟件的可靠性。舉例來說,例如作為操作環(huán)境的WebSphere應用服務器、Tomcat, JBoss等的應用服務器,和作為應用的J2EE應用,資源(cpu、存儲器、磁盤空間、虛擬存儲器等)將被識別并在形式上定義,因為資源也可與硬件資源在邏輯上且非直接地相關,例如由應用服務器使得對于J2EE應用可用的那些資源以及可以以編程方式使得可用的那些資源。一組固定的可用計算資源(例如IGB RAM、100GB磁盤空間、400套接字等)可以視為NR維空間中的應用操作點,其中NR是指與性能測量有關的選定計算資源(在托管 (hosting)環(huán)境中定義的計算資源的子集或全集)的數(shù)量?!靶阅苣P汀备鶕?jù)應用的每個功能測試案例來計算,使得其將允許每個應用操作點提供應用性能的數(shù)字形式測量(與相同軟件的其他版本或相同軟件的其他部署可比較)這是如何獲得的將在實施部分詳細解釋。表達性能模型信息的人為結果可以是一個或多個矩陣,經(jīng)常為稀疏矩陣,其中每個軸將與用于性能計算的一個計算資源相關聯(lián),并且每個單元將表示在正?;院罄缢罊C、服務質量的失誤、異常、超時等“問題”發(fā)生的概率。每個這種“問題”優(yōu)選地在形式上定義為條件,例如依照日志文件中文字的匹配、CIM信息模型上的布爾表達式等。根據(jù)某些實施例,性能模型可包括一組匪個不同矩陣,每個矩陣與特定定義的問題相關或根據(jù)附加標準甚至不同,例如涉及相同“問題”定義但針對不同平臺。根據(jù)某些實施例,性能模型通過對軟件測試而進行填充。此軟件的測試可包括在配置了系統(tǒng)資源的每個預期組合的系統(tǒng)中重復執(zhí)行該軟件,以及匯編與在該配置下發(fā)生的行為有關的統(tǒng)計數(shù)據(jù)??扇绱藴y試的系統(tǒng)資源的一個示例為系統(tǒng)存儲器,系統(tǒng)或應用死機的發(fā)生可以用作用于統(tǒng)計數(shù)據(jù)基礎的正式測量,其例如使用監(jiān)聽windows事件日志的日志監(jiān)測軟件來確定??梢栽诙喾N存儲器條件中測試單個測試案例以將關于計算資源利用率的、軟件程序的存儲器消耗量“個性”或非功能性“方面”簡檔進行分類,在此示例中,計算資源是存儲器,但是相同的方法可應用至套接字、cpu單元等??深A料的是,當可用存儲器下降至某水平以下時測試案例將易于失敗,這在真實環(huán)境下可能發(fā)生,因為其他應用正在消耗存儲器。有利的是,通過允許經(jīng)由程序接口來配置其計算資源的操作/執(zhí)行環(huán)境,可以執(zhí)行重復的測試。一個示例可以為虛擬機,其可以利用不同的資源參數(shù)順序地重啟。在這種環(huán)境中,根據(jù)要測試的參數(shù)重新定義存儲器、處理器的數(shù)量或可用套接字的數(shù)量非常簡單。 從多個測試執(zhí)行得到的全部結果可以用于估計失敗的平均概率,例如依照壞執(zhí)行的測試案例的數(shù)量比上全部測試案例的數(shù)量,和/或其發(fā)生率的方差。如果測試條件由多維空間中的點來標識,其中每個坐標軸為一個計算資源。最后, 對于每個測試條件,可以估計具有平均參數(shù)值和方差參數(shù)值的概率密度分布(Pdf)并可與每個點相關。當測試案例重復的數(shù)量超過閾值(閾值本身可以使用顯著性測試分析來計算)時,例如1000,可假設正態(tài)(高斯)Pdf。估計的平均中值和方差可在運行時應用,以用于動態(tài)估計在根據(jù)可用計算資源的當前操作條件下,相同應用發(fā)生應用失敗的概率。圖2示出了形式為多維空間200的性能模型的示例。具體如所示,X軸210和Y軸 220對應于可用CPU和可用存儲器,原點在左下方。同時ζ軸230表示錯誤的可能性。錯誤的可能性優(yōu)選為正態(tài)化,從而在標準條件下給出錯誤的可能性,其中錯誤的可能性可表示錯誤在預定周期、循環(huán)次數(shù)、迭代次數(shù)等內發(fā)生的百分比機會。如圖2中所示,定義了由對應于值的密集矩陣的一系列點241構成的表面M0,使得對于一組定義的規(guī)律間隔的X和Y 軸值的每個組合,存在一個錯誤的可能性值。X軸值和Y軸值之間的間隔可以選擇以對應于來自操作系統(tǒng)或其他系統(tǒng)監(jiān)測軟件應用的測量的粒度,使得檢測軟件的輸出可以直接被映射到錯誤的可能性值。X軸值和Y軸值之間的間隔可以選擇成比來自操作系統(tǒng)或其他系統(tǒng)監(jiān)測軟件應用的測量的粒度小得多,以使對于來自監(jiān)測軟件的任意輸出來說,都將有一個與測量值只有非常短距離的x_y組合,其可以直接地用于提供錯誤的可能性值的接近近似值。此方法的優(yōu)點在于其不取決于特定的操作系統(tǒng)或監(jiān)測軟件,使得該模型可以用于很廣的不同環(huán)境范圍。X軸值和Y軸值之間的間隔可以選擇在任意便利值,例如使得任意兩個臨近點之間的ζ軸值的變化不超過預定余量。當來自操作系統(tǒng)或其他系統(tǒng)監(jiān)測軟件應用的測量落入一些x_y值組合之間時,可以對附近的點進行插值以估計用于所測量值的值。根據(jù)某些實施例,不是將表面存儲為一組點,而是整個表面的形狀可以被插值以能夠推導出描述該整個表面的函數(shù),從該函數(shù)可以根據(jù)需要推導出對于任意χ-y組合的錯誤的可能性值。此方法的優(yōu)點在于其可以需要更少的存儲空間。圖3示出了形式為多維空間300的性能模型的另一示例。X軸210、Y軸220和ζ 軸230與參照圖2描述的對應。如圖3所示,其定義了表面340,其由對應于值的稀疏矩陣的一系列點341組成,使得對于選定的X和Y軸值的組合具有錯誤的可能性值。一般地,與圖2的方法相比,根據(jù)圖2的實施例的性能模型將包含用于相似信息量的更少的數(shù)據(jù),或者用于等量數(shù)據(jù)的更多的信息。每個點之間的距離可以選擇成比來自操作系統(tǒng)或其他系統(tǒng)監(jiān)測軟件應用的測量的粒度小得多,以使對于來自監(jiān)測軟件的任意輸出來說,都將有一個與測量值只有非常短距離的x_y組合,其可以直接地用于提供錯誤的可能性值的接近近似值。此方法的優(yōu)點在于其不取決于特定的操作系統(tǒng)或監(jiān)測軟件,使得該模型可以用于很廣的不同環(huán)境范圍。X軸值和Y軸值之間的距離可以選擇在任意便利值,例如使得任意兩個臨近點之間的ζ軸值的變化不超過預定余量。當來自操作系統(tǒng)或其他系統(tǒng)監(jiān)測軟件應用的測量落入一些x_y值組合之間時,可以對附近的點進行插值以估計用于所測量值的值。根據(jù)某些實施例,不是將表面存儲為一組點,而是整個表面的形狀可以被插值以能夠推導出描述該整個表面的函數(shù),從該函數(shù)可以根據(jù)需要推導出對于任意χ-y組合的錯誤的可能性值。雖然圖2和圖3示出了表示用于兩個系統(tǒng)條件變量的組合的錯誤可能性率的三維表面,但將意識到的是以上討論的所有方面可擴展至任意數(shù)量的系統(tǒng)條件變量,即具有多于三維的空間。因此,該模型可包含多組不同的性能值,每組與所述測量的一些或全部有關。預定系統(tǒng)資源可包括可用系統(tǒng)CPU容量、可用系統(tǒng)存儲器、可用系統(tǒng)磁盤或可用網(wǎng)絡套接字中的至少一個。如上參照圖2和圖3所述,可提供確定性能模型是否包括精確對應于所述測量的性能值的步驟,并且在性能模型不包括精確對應于所述測量的性能值的情況下,從所述性能模型中提取出分別對應于一個或多個最接近可用測量值的一個或多個鄰近性能值?;蛘?,可以提供進一步地步驟以根據(jù)所述鄰近性能值對性能值進行插值?!獋€重要的優(yōu)點在于“性能模型”可以是針對應用的超出其常規(guī)功能方面的行為方面的正式且科學的(因此在應用和系統(tǒng)間可比較)文件。此改變打開了本公開的大量可能應用領域。可意識到的是,根據(jù)本發(fā)明的性能模型可促進相似產(chǎn)品能力的比較。為了使其可行,不同的產(chǎn)品理論上應當使用共享的用于測量性能的性能語句(statement)的定義以及組成空間的軸的資源定義。這應當至少在相同產(chǎn)品的不同版本之間是可能的,甚至不同品牌之間也是可能的。圖4示出了本發(fā)明的第二實施例的步驟。圖4的過程與圖3的相同,但是詳細闡述了提供性能模型的步驟Iio的某些示例性子步驟。更具體地,圖4示出了一種創(chuàng)建這種性能模型的可能的方法。如所示,在子步驟110中定義的過程開始于步驟411,由此測試系統(tǒng)的資源被配置用于測試執(zhí)行的目的。如上討論的,其可以以多種方式實現(xiàn),取決于測試系統(tǒng)本身的性質,例如通過適當?shù)嘏渲锰摂M機、應用服務器等。接下來,該過程進行至步驟 413,在該步驟期間監(jiān)測應用并且記錄任何錯誤。一旦該應用已經(jīng)運行至結束、或者通過預定的測試序列、或者經(jīng)過預定時間周期,過程進行至步驟415,在該步驟處考慮應用是否已經(jīng)在匯編性能模型所需的每個不同測試系統(tǒng)配置下執(zhí)行過。如果沒有,則該過程返回至步驟411,在該步驟測試系統(tǒng)被設置為下一個所需的配置,以使該過程在每個所需的配置中依次循環(huán)。如果該應用已經(jīng)在匯編性能模型所需的每個不同測試系統(tǒng)配置下執(zhí)行過,則該過程進行至步驟416,在該步驟處由步驟415的每個迭代所記錄的錯誤連同針對每個相應錯誤的系統(tǒng)配置一起被大批處理,以如上所討論的來匯編性能模型。一旦性能模型被及時匯編,則其可與應用的拷貝一起、或者以其他方式分發(fā)給應用的用戶,于是過程如上所述的在步驟120重新開始。優(yōu)選地,按如下產(chǎn)生性能模型計算借助于迭代式改變由應用服務器使得可用于每個應用的資源并通過簡單地計數(shù)在該點通過的成功測試(其為通過一些質量標準的執(zhí)行測試)來追蹤該點的“性能”,從而(利用開發(fā)組中廣泛可用的測試自動化技術)自動執(zhí)行大數(shù)量的測試。作為應用服務器的替換方式,相同的過程可以應用于每個托管環(huán)境中,在該托管環(huán)境中,專用于應用的資源可以以編程方式設置或控制。此過程將推導在不同操作條件下該應用的行為圖。根據(jù)圖4的步驟的進一步改進,或者以其他方式,可以實現(xiàn)以下步驟來定義性能模型1)識別覆蓋應用功能的測試案例列表2)識別要考慮的邏輯資源列表,例如cpu單元、存儲器、磁盤、套接字等3)識別質量定義列表“問題”被定義為不滿意的質量測量(在系統(tǒng)或應用日志中、來自內部/外部監(jiān)測的性能結果中、性能指令等中遇到某些關鍵字)。至少此定義可與利用商用平臺中的商用監(jiān)測軟件可監(jiān)測的內容相匹配(細節(jié)可在列舉軟件包和平臺時提供)。4)識別并編纂邏輯資源如何被綁定至物理和操作系統(tǒng)資源(在最簡化的情況中可以為一對一),這是為了更好地與監(jiān)測軟件交互操作,最好的是基于一組從商用資源監(jiān)測包直接可用的測量、以其原本的形式計算性能測量。應用可以公開幾個用于一種預測“失敗 /問題”的矩陣(例如用于不同平臺、或用于所支持的不同監(jiān)測軟件)。5)將每個資源視為多維空間r(l. . . NR)的軸。每個單元從0開始。6)在多維的每個軸上以某粒度水平選擇一些采樣點,并將采樣空間以整數(shù)值失敗 _空間[il][i2]··· [iNR]的NR維稀疏矩陣表示。7)將由此得到的測試點匯編成列表,其中每個點來源于步驟1)中的單個測試案例,并通過用于每個給定單個測試場景的應用輸入?yún)?shù)的蒙特卡羅變體來獲得。8)對在步驟6)選擇的所有的采樣點執(zhí)行步驟7)所匯編的每個由此得到的測試點,每次根據(jù)由采樣點和收集的結果(失敗或沒有失敗)所識別的資源矢量來改變可用于應用的資源(資源上下文矢量)每個失敗/問題結果使對應的矩陣單元(從0開始)中的值增加。在第1)點為每個測試案例重復該過程。9)估計由此得到的失敗模型參數(shù),其用于“失敗空間”的每個點,根據(jù)如下過程估計失敗的概率遞增地對在每個測試案例在失敗空間[il][i2]... [iN]的單元中的某個資源條件(資源上下文)中運行時發(fā)生的失敗/臨界條件/漏洞的數(shù)量求和(從0開始),該失敗空間表示測試案例執(zhí)行的資源上下文。優(yōu)選地,由此得到的性能模型在分發(fā)之前填充,該性能模型與軟件一起分發(fā),例如通過封裝在與其所提到的應用一起部署的文檔中。或者該模型可通過單獨的通道發(fā)送,例如通過網(wǎng)絡等下載。然后,性能模型在執(zhí)行時間時使用,例如與資源監(jiān)測或資源預測(借助于歷史數(shù)據(jù))軟件一起使用。執(zhí)行環(huán)境加載該應用,并獲取其可靠性模型,執(zhí)行環(huán)境的一組計算資源被指定為將由選定的資源預測/監(jiān)測軟件所預測/監(jiān)測。然后,這組被預測/監(jiān)測的資源用于將對應于資源空間中的點的值的矢量進行組合,其可以用作資源上下文矢量。通過讀取模型中的值或者從模型中最接近的可用點進行插值,資源管理器訪問可靠性模型并取回對資源上下文矢量所識別的點可用的可靠性值。圖5示出了本發(fā)明的第三實施例的步驟。圖5的處理與圖3的相同,但是其詳細地闡述了步驟140和150之間的某些進一步的步驟。更具體地,圖5示出了一種使用在步驟140從性能模型提取出的性能值的方式。如所示,在步驟140之后不是直接進行至步驟 150,而是該過程進行至步驟M1,在該步驟,確定在步驟140提取出的性能值是否降低至預定閾值以下。根據(jù)本實施例,此預定閾值表示可接受的性能水平。此閾值可以為與該應用、特定用戶賬戶、特定機器、該應用執(zhí)行的一天中的時間等特別關聯(lián)的值。也可定義應用的層級,這樣用于特定應用的閾值由其在該層級中的位置所定義,這樣更重要或緊急的應用可以考慮為更不容忍錯誤,因此為這些應用設置更低的閾值。如果發(fā)現(xiàn)性能水平在閾值之上,則表示根據(jù)性能模型,該應用在當前操作條件下表現(xiàn)應當令人滿意,則該過程如上所述地進行至步驟150。另一方面,如果發(fā)現(xiàn)性能水平低于或等于該閾值,則表示根據(jù)性能模型,該應用在當前操作條件下表現(xiàn)不令人滿意,例如死機的可能性大于某個值,則過程進行至步驟M2。在步驟M2,該過程執(zhí)行步驟以減輕與應用預期的不良性能關聯(lián)的問題。舉例來說,例如通過彈出窗口、郵件等,系統(tǒng)可以自動向應用的用戶、系統(tǒng)管理員或其他個體報警預期的不良性能。系統(tǒng)也可以通過尋找以獲得另外的資源,例如通過重新定義操作環(huán)境本身、或關閉不太重要的應用或過程,從而自動采取步驟來重新調整情形。相應地,提供了當所述性能值下降至預定閾值以下時向用戶報警的步驟,或者在所述性能值下降至預定閾值以下時,嘗試自動地協(xié)商用于所述軟件的來自所述系統(tǒng)的增長的資源分配。作為以上的進一步發(fā)展,可以想象系統(tǒng)可能正在執(zhí)行多個與根據(jù)本發(fā)明的性能模型相關聯(lián)的應用。在此情況下,系統(tǒng)可以嘗試以優(yōu)化整體性能的方式將系統(tǒng)資源分配至不同的應用。2)然后,這組被預測/監(jiān)測的資源用于將對應于資源空間中的點的值的矢量進行組合,其可用作上下文資源矢量3)給定預測的上下文資源矢量和性能模型,針對該給定的上下文可以獲得失敗/ 問題的概率。4)在此階段,管理員可固定一閾值,使得如果該系統(tǒng)超過該值,則資源管理員可發(fā)起一些動作以阻止那些可能的問題,包括a)通知管理員b)例如通過與供應系統(tǒng)交互,再分配/提高可用于應用的資源(移動至不同的群集節(jié)點)c)自動提高系統(tǒng)記日志的頻率,和/或多樣性(如果信息類型被記錄)。根據(jù)另一實施例,提供了一種性能或可靠性模型,其表示應用在不同系統(tǒng)資源條件下的行為。此模型可采用一個或多個稀疏矩陣的形式,其提供了針對不同條件組合的可靠性或性能值。此模型被分發(fā)給應用的用戶,并在應用執(zhí)行期間參照由操作系統(tǒng)或其他監(jiān)測軟件提供的系統(tǒng)資源信息,咨詢該模型以提供在當前操作條件下對應用的預期性能的指示。例如在該指示落入滿意操作的預定界限之外時,該指示可以通知給用戶。該系統(tǒng)也可嘗試重新協(xié)商所分配的系統(tǒng)資源以提高性能??勺⒁獾降氖?,在某些真實世界中,在不同的操作條件下的應用性能可能變化。根據(jù)某些實施例,測試不同的測試情景可以設計為測試軟件性能的不同方面。這種情景可重新產(chǎn)生一般的系統(tǒng)事件,例如“向系統(tǒng)注冊新用戶”。同樣地,性能模型也可被構造為使其包括分別與軟件性能的不同方面有關、或與不同的使用情景對應的多個子部分。有利地,這些方面和/或使用情景可對應于在測試階段中使用的諸方面/測試情景。這些方面可以表示為獨立的性能空間。當由此構造性能模型時,通過例如可描述情景或者情景的子部分的“標簽”,可以期望將性能模型的不同方面與不同的情景相關聯(lián)。因此描述情景或情景的子部分的一種方式可以依照與其關聯(lián)的工作負荷,因為不同的工作負荷水平將導致獨立的性能“空間”。如下表中所示,性能模型包含對應于系統(tǒng)事件“向系統(tǒng)注冊新用戶”的性能空間,以及對應于1-20個用戶連接至系統(tǒng)的情況的性能子空間、以及對應于21至100個用戶連接至系統(tǒng)的另一種情況的性能子空間,這是基于該系統(tǒng)在這兩種負載情景下將具有不同的行為。
權利要求
1.一種在執(zhí)行軟件的系統(tǒng)中優(yōu)化所述軟件的執(zhí)行的方法,所述方法包括步驟提供性能模型,所述性能模型表示所述軟件在不同的選定系統(tǒng)條件下的性能,所述系統(tǒng)條件以一個或多個預定系統(tǒng)資源來描述;接收給定時刻的每個所述預定系統(tǒng)資源的測量;以及從所述性能模型中提取出對應于所述測量的性能值。
2.根據(jù)前述任一權利要求所述的方法,包括進一步的步驟通過測試所述軟件來填充所述性能模型。
3.根據(jù)權利要求2所述的方法,其中所述測試所述軟件包括在配置了選定系統(tǒng)資源的每個組合的系統(tǒng)中反復執(zhí)行所述軟件,以及匯編與在所述配置下應用的行為有關的統(tǒng)計數(shù)據(jù)。
4.根據(jù)權利要求3所述的方法,其中所述軟件針對系統(tǒng)資源的給定組合多次執(zhí)行。
5.根據(jù)權利要求4所述的方法,其中對于所述軟件在系統(tǒng)資源的給定組合下的每次執(zhí)行,對所述執(zhí)行所需的輸入數(shù)據(jù)的不同值以隨機或偽隨機的方式或借助于其蒙特卡洛變體來定義。
6.根據(jù)權利要求3所述的方法,其中配置了系統(tǒng)資源的每個期望組合的所述系統(tǒng)是虛擬機。
7.根據(jù)權利要求2所述的方法,其中所述模型在分發(fā)前被填充,并且所述性能模型與所述軟件一起分發(fā)。
8.根據(jù)前述任一權利要求所述的方法,包括進一步的步驟確定所述性能模型是否包括精確對應于所述測量的性能值,并且在所述性能模型不包括精確對應于所述測量的性能值的情況下,從所述性能模型中提取出分別對應于一個或多個最接近的可用測量值的一個或多個鄰近的性能值。
9.根據(jù)權利要求8所述的方法,包括進一步的步驟根據(jù)所述鄰近的性能值對性能值進行插值。
10.根據(jù)前述任一權利要求所述的方法,包括進一步的步驟當所述性能值下降至預定閾值以下時,向用戶報警。
11.根據(jù)前述任一權利要求所述的方法,包括進一步的步驟當所述性能值下降至預定閾值以下時,嘗試自動協(xié)商用于所述軟件的來自所述系統(tǒng)的增大的資源分配。
12.根據(jù)前述任一權利要求所述的方法,其中所述性能模型包括多維矩陣。
13.根據(jù)前述任一權利要求所述的方法,其中所述模型包含多組不同的性能值,每組與所述測量的一部分或全部有關。
14.一種裝置,其包括適于執(zhí)行根據(jù)權利要求1至13中任一權利要求所述的方法的每個步驟的裝置。
15.一種計算機程序,其包括當所述計算機程序在計算機上執(zhí)行時用于執(zhí)行根據(jù)權利要求1至13中任一權利要求所述的方法的每個步驟的指令。
16.一種當所述計算機程序在計算機上執(zhí)行時根據(jù)權利要求1至13中任一權利要求的性能模型。
17. 一種計算機可讀介質,其上編碼有根據(jù)權利要求15的計算機程序或根據(jù)權利要求 16的性能模型。
全文摘要
提供了一種表示應用在不同的系統(tǒng)資源條件下的行為的性能或可靠性模型。此模型可為一個或多個稀疏矩陣的形式,其提供了用于不同條件組合的可靠性或性能值。此模型被分發(fā)給應用的用戶,并在應用執(zhí)行期間參考由操作系統(tǒng)或其他監(jiān)測軟件提供的系統(tǒng)資源信息咨詢該模型,以提供在當前操作條件下應用的預期性能的指示。此指示例如在該指示落入預定的滿意操作界限以外的情況下可以通知給用戶。系統(tǒng)也可嘗試重新協(xié)商分配的系統(tǒng)資源以提高性能。
文檔編號G06F9/50GK102576311SQ201080047587
公開日2012年7月11日 申請日期2010年8月31日 優(yōu)先權日2009年10月21日
發(fā)明者M·維拉尼, R·甘杰米, V·夏卡 申請人:國際商業(yè)機器公司