專利名稱:一種應用服務器的優(yōu)化方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及服務器技術(shù)領(lǐng)域,特別是涉及一種應用服務器的優(yōu)化方法及裝置。
技術(shù)背景
應用服務器與數(shù)據(jù)庫資源連接后,可以成為為網(wǎng)絡企業(yè)應用提供運行環(huán)境的基礎(chǔ) 軟件,能夠并行地處理企業(yè)應用的業(yè)務邏輯運算。隨著網(wǎng)絡的快速發(fā)展,人們對應用服務器 的要求越來越高。因此如何有效優(yōu)化應用服務器的性能成為一個亟待解決的問題。
現(xiàn)有的應用服務器性能優(yōu)化需要依靠技術(shù)人員進行,優(yōu)化的方法和思路完全依靠 技術(shù)人員的經(jīng)驗。例如,優(yōu)化工程師通過長期的經(jīng)驗積累,根據(jù)應用服務器的運行情況,對 應用服務器的參數(shù)進行設定,以使應用服務器處理速度變快,達到優(yōu)化應用服務器性能的 目的。
但現(xiàn)有的應用服務器性能優(yōu)化無法實現(xiàn)應用服務器性能的自動優(yōu)化。 發(fā)明內(nèi)容
為解決上述技術(shù)問題,本發(fā)明實施例提供一種應用服務器的優(yōu)化方法及裝置,以 實現(xiàn)應用服務器性能的自動優(yōu)化,技術(shù)方案如下
一種應用服務器的優(yōu)化方法,包括
實時獲取應用服務器處理結(jié)構(gòu)化查詢語言SQL的相關(guān)數(shù)據(jù),
其中,所述相關(guān)數(shù)據(jù)包括單條SQL的處理時間、或最大并發(fā)處理SQL的數(shù)量;
將所述相關(guān)數(shù)據(jù)與預設基準值進行比較,如果大于預設基準值,則減小應用服務 器連接池的最大線程數(shù),如果小于預設基準值,則增大應用服務器連接池的最大線程數(shù)。
優(yōu)選的,所述單條SQL的處理時間為
預設時間段內(nèi)單條SQL的平均處理時間或預設時間段內(nèi)單條SQL的最大處理時 間。
優(yōu)選的,所述預設基準值的設置方法包括
在應用服務器負載穩(wěn)定情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處理 單條SQL的平均處理時間,以預定倍數(shù)的所述平均處理時間作為預設基準值。
優(yōu)選的,所述預設基準值的設置方法包括
在應用服務器負載穩(wěn)定的情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處 理單條SQL的最大處理時間,以預定倍數(shù)的所述最大處理時間作為預設基準值。
優(yōu)選的,所述預設基準值的設置方法包括
獲取應用服務器的CPU數(shù)量,以預定倍數(shù)的所述CPU數(shù)量作為預設基準值。
相應于前面的一種應用服務器的優(yōu)化方法,本發(fā)明還提供了一種應用服務器的優(yōu) 化裝置,包括
數(shù)據(jù)獲取模塊,用于實時獲取應用服務器處理結(jié)構(gòu)化查詢語言SQL的相關(guān)數(shù)據(jù),
其中,所述相關(guān)數(shù)據(jù)包括單條SQL的處理時間、或最大并發(fā)處理SQL的數(shù)量;
數(shù)據(jù)比較模塊,用于將所述相關(guān)數(shù)據(jù)與預設基準值進行比較;
線程數(shù)改變模塊,用于在所述相關(guān)數(shù)據(jù)大于預設基準值時,減小應用服務器連接 池的最大線程數(shù),在所述相關(guān)數(shù)據(jù)小于預設基準值時,增大應用服務器連接池的最大線程 數(shù)。
優(yōu)選的,所述單條SQL的處理時間為
預設時間段內(nèi)單條SQL的平均處理時間或預設時間段內(nèi)單條SQL的最大處理時 間。
優(yōu)選的,所述數(shù)據(jù)獲取模塊具體配置為
在應用服務器負載穩(wěn)定的情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處 理單條SQL的平均處理時間,以預定倍數(shù)的所述平均處理時間作為預設基準值。
優(yōu)選的,所述數(shù)據(jù)獲取模塊具體配置為
在應用服務器負載穩(wěn)定的情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處 理單條SQL的最大處理時間,以預定倍數(shù)的所述最大處理時間作為預設基準值。
優(yōu)選的,所述數(shù)據(jù)獲取模塊具體配置為
獲取應用服務器的CPU數(shù)量,以預定倍數(shù)的所述CPU數(shù)量作為預設基準值。
本發(fā)明通過應用以上技術(shù)方案,能夠?qū)崟r獲取的結(jié)構(gòu)化查詢語言的處理時間與 預設基準值進行比較,并根據(jù)比較結(jié)果自動相應增大或減小應用服務器連接池的值,以實 現(xiàn)應用服務器性能的自動優(yōu)化。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他 的附圖。
圖1為本發(fā)明實施例的一種應用服務器的優(yōu)化方法的流程圖2為本發(fā)明實施例的另一種應用服務器的優(yōu)化方法的流程圖3為本發(fā)明實施例的另一種應用服務器的優(yōu)化方法的流程圖4為本發(fā)明實施例的一種應用服務器的優(yōu)化裝置的結(jié)構(gòu)示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實 施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施 例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通 技術(shù)人員所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
如圖1所示,本發(fā)明提供的一種應用服務器的優(yōu)化方法包括
S101、實時獲取應用服務器處理SQLGtructured Query Language,結(jié)構(gòu)化查詢語 言)的相關(guān)數(shù)據(jù),
其中,所述相關(guān)數(shù)據(jù)可以包括單條SQL的處理時間、或最大并發(fā)處理SQL的數(shù) 量;
當然,本領(lǐng)域技術(shù)人員可以理解的是,SQL的相關(guān)數(shù)據(jù)還可以為其他數(shù)據(jù),例如 應用服務器所處理的SQL類型。
其中,單條SQL的處理時間可以為預設時間段內(nèi)單條SQL的平均處理時間或預設 時間段內(nèi)單條SQL的最大處理時間。
S102、將所述相關(guān)數(shù)據(jù)與預設基準值進行比較,如果大于預設基準值,則減小應用 服務器連接池的最大線程數(shù),如果小于預設基準值,則增大應用服務器連接池的最大線程 數(shù)。
其中,預設基準值可以人為設定,也可以根據(jù)應用服務器處理SQL的歷史記錄進 行統(tǒng)計和/或計算得出預設基準值。
在實際應用中,當所述相關(guān)數(shù)據(jù)與預設基準值相等時,可以不再改變應用服務器 連接池的最大線程數(shù)。
需要說明的是,應用服務器連接池是歸屬于中間件的一種設備,能夠根據(jù)設置最 大線程數(shù)來控制應用服務器所要處理SQL的數(shù)量。當連接池的最大線程數(shù)變大時,應用服 務器所要處理的SQL數(shù)量變大;當連接池的最大線程數(shù)變小時,應用服務器所要處理的SQL 數(shù)量變小。對于固定的應用服務器來說,其處理能力是固定的,當應用服務器所要處理的 SQL數(shù)量較多時,單條SQL的處理時間就會較長。
由于應用服務器多與數(shù)據(jù)庫進行連接,由應用服務器處理SQL對數(shù)據(jù)庫進行查詢 的行為,所以當應用服務器處理SQL的時間較長和/或應用服務器并發(fā)處理SQL的數(shù)量較 多時,數(shù)據(jù)庫會出現(xiàn)堵塞的現(xiàn)象。所以,當所述相關(guān)數(shù)據(jù)大于預設基準值時,可以認為數(shù)據(jù) 庫出現(xiàn)堵塞。
本發(fā)明通過應用以上技術(shù)方案,能夠?qū)崟r獲取的結(jié)構(gòu)化查詢語言的處理時間與 預設基準值進行比較,并根據(jù)比較結(jié)果自動相應增大或減小應用服務器連接池的值,以實 現(xiàn)應用服務器性能的自動優(yōu)化。
在實際應用中,由于每一條SQL并不一定相同,所以單條SQL的處理時間可能并不 能在較高的程度上體現(xiàn)應用服務器的性能。所以,在本發(fā)明其他實施例中,還可以先獲取預 設時間段內(nèi)應用服務器處理SQL的相關(guān)數(shù)據(jù),然后進行統(tǒng)計和/或計算,得出預定時間段 內(nèi)應用服務器處理SQL的特征數(shù)據(jù),如單條SQL的平均處理時間、單條SQL的最大處理時 間。然后將所述特征數(shù)據(jù)與預設基準值進行比較,并相應改變應用服務器連接池最大線程 數(shù),以達到應用服務器性能優(yōu)化的目的。
如圖2所示,本發(fā)明實施例的一種應用服務器的優(yōu)化方法包括
S201、開始計時;
S202、實時獲取預設時間段內(nèi)單條SQL的處理時間;
其中,預設時間段可以人為設定,例如10分鐘。
S203、計時是否達到預設時間段的長度,如果是,則執(zhí)行步驟S204,否則,執(zhí)行步驟 S202 ;
S204、對預設時間段內(nèi)的單條SQL的處理時間進行計算得出單條SQL的平均處理 時間;
其中,單條SQL的平均處理時間的計算方法可以為
將預設時間段內(nèi)應用服務器處理SQL的時間進行累加,然后除以預設時間段內(nèi)應用服務器處理SQL的數(shù)量,從而得出單條SQL的平均處理時間。
S205、將平均處理時間與預設基準值進行比較,如果大于預設基準值,則執(zhí)行步驟 S206,如果小于預設基準值,執(zhí)行步驟S207 ;
需要說明的是,在實際應用中,在執(zhí)行本方法之前,如果應用服務器負載穩(wěn)定,也 可以先獲取服務器處理SQL的相關(guān)數(shù)據(jù),得出預設基準值,然后再執(zhí)行本方法。當然,預設 基準值也可以由技術(shù)人員根據(jù)經(jīng)驗積累進行設定。
在相關(guān)數(shù)據(jù)為預設時間段內(nèi)單條SQL的平均處理時間的情況下,預設基準值的設 置方法包括
在應用服務器負載穩(wěn)定情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處理 單條SQL的平均處理時間,以預定倍數(shù)的所述平均處理時間作為預設基準值,為區(qū)分起見, 稱其為第一預設基準值。
本領(lǐng)域技術(shù)人員可以理解的是,應用服務器負載穩(wěn)定即指應用服務器并發(fā)處理 SQL的數(shù)量保持在一定的范圍內(nèi),數(shù)量變化不大。
S206、減小應用服務器連接池的最大線程數(shù);
S207、增大應用服務器連接池的最大線程數(shù)。
在實際應用中,當平均處理時間與預設基準值相等時,可以不再改變應用服務器 連接池的最大線程數(shù)。
當然,在本發(fā)明其他實施例中,步驟S204還可以為
對預設時間段內(nèi)的單條SQL的處理時間進行統(tǒng)計得出單條SQL的最大處理時間。
在相關(guān)數(shù)據(jù)為預設時間段內(nèi)單條SQL的最大處理時間的情況下,預設基準值的設 置方法包括
在應用服務器負載穩(wěn)定的情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處 理單條SQL的最大處理時間,以預定倍數(shù)的所述最大處理時間作為預設基準值,為區(qū)分起 見,稱其為第二預設基準值。
在實際應用中,由于單條SQL的最大處理時間的變化幅度比單條SQL的平均處理 時間大,所以最大處理時間的預訂倍數(shù)可以比平均處理時間的預訂倍數(shù)高。
當然,在本發(fā)明其他實施例中,還可以同時獲取應用服務器處理單條SQL的最大 處理時間和單條SQL的平均處理時間,單條SQL的平均處理時間與所對應的第一預設基準 值進行比較,單條SQL的最大處理時間與所對應的第二預設基準值進行比較。
如果單條SQL的平均處理時間大于第一預設基準值或單條SQL的最大處理時間大 于第二預設基準值,則減小應用服務器連接池的最大線程數(shù);
如果單條SQL的平均處理時間小于第一預設基準值且單條SQL的最大處理時間小 于第二預設基準值,則增大應用服務器連接池的最大線程數(shù)。
在實際應用中,還可能出現(xiàn)相等的情況
如果單條SQL的平均處理時間等于第一預設基準值且單條SQL的最大處理時間小 于第二預設基準值,則增大應用服務器連接池的最大線程數(shù);
如果單條SQL的平均處理時間小于第一預設基準值且單條SQL的最大處理時間等 于第二預設基準值,則增大應用服務器連接池的最大線程數(shù);
如果單條SQL的平均處理時間等于第一預設基準值且單條SQL的最大處理時間等于第二預設基準值,則不改變應用服務器連接池的最大線程數(shù)。
當然,在本發(fā)明其他實施例中,所述相關(guān)數(shù)據(jù)還可以為最大并發(fā)處理SQL的數(shù)量。
在相關(guān)數(shù)據(jù)為最大并發(fā)處理SQL的數(shù)量的情況下,所述預設基準值的設置方法包 括
獲取應用服務器的CPU數(shù)量,以預定倍數(shù)的所述CPU數(shù)量作為預設基準值。
如圖3所示,本發(fā)明提供的另一種應用服務器的優(yōu)化方法包括
S301、開始計時;
S302、實時獲取預設時間段內(nèi)并發(fā)處理SQL的數(shù)量;
其中,預設時間段可以人為設定,例如10分鐘。
S303、計時是否達到預設時間段的長度,如果是,則執(zhí)行步驟S304,否則,執(zhí)行步驟 S302 ;
S304、對預設時間段內(nèi)的并發(fā)處理SQL的數(shù)量進行統(tǒng)計得出預設時間段內(nèi)最大并 發(fā)處理SQL的數(shù)量;
S305、將最大并發(fā)處理SQL的數(shù)量與預設基準值進行比較,如果大于預設基準值, 則執(zhí)行步驟S306,如果小于預設基準值,執(zhí)行步驟S307 ;
在所述相關(guān)數(shù)據(jù)為最大并發(fā)處理SQL的數(shù)量的情況下,所述預設基準值的設置方 法包括
獲取應用服務器的CPU數(shù)量,以預定倍數(shù)的所述CPU數(shù)量作為預設基準值,為區(qū)分 起見,稱其為第三預設基準值。
本領(lǐng)域技術(shù)人員可以理解的是,應用服務器負載穩(wěn)定即指應用服務器并發(fā)處理 SQL的數(shù)量保持在一定的范圍內(nèi),數(shù)量變化不大。
本領(lǐng)域技術(shù)人員可以理解的是,應用服務器的CPU數(shù)量是影響應用服務器處理 SQL能力的重要因素之一,應用服務器的CPU數(shù)量越多,其處理SQL的能力越大。
S306、減小應用服務器連接池的最大線程數(shù);
S307、增大應用服務器連接池的最大線程數(shù)。
在實際應用中,當最大并發(fā)處理SQL的數(shù)量與第三預設基準值相等時,可以不再 改變應用服務器連接池的最大線程數(shù)。
當然,在本發(fā)明其他實施例中,還可以同時獲取應用服務器處理單條SQL的最大 處理時間、單條SQL的平均處理時間和最大并發(fā)處理SQL的數(shù)量。單條SQL的平均處理時 間與所對應的第一預設基準值進行比較,單條SQL的最大處理時間與所對應的第二預設基 準值進行比較,最大并發(fā)處理SQL的數(shù)量與所對應的第三預設基準值進行比較。
如果單條SQL的平均處理時間大于第一預設基準值、單條SQL的最大處理時間大 于第二預設基準值或最大并發(fā)處理SQL的數(shù)量大于第三預設基準值,則減小應用服務器連 接池的最大線程數(shù);
如果單條SQL的平均處理時間小于第一預設基準值、單條SQL的最大處理時間小 于第二預設基準值且最大并發(fā)處理SQL的數(shù)量小于第三預設基準值,則增大應用服務器連 接池的最大線程數(shù)。
在排除上述兩種假設的情況下,還可能出現(xiàn)相等的情況7
如果單條SQL的平均處理時間小于第一預設基準值、單條SQL的最大處理時間小 于第二預設基準值或最大并發(fā)處理SQL的數(shù)量小于第三預設基準值,則增大應用服務器連 接池的最大線程數(shù);
如果單條SQL的平均處理時間等于第一預設基準值、單條SQL的最大處理時間等 于第二預設基準值且最大并發(fā)處理SQL的數(shù)量等于第三預設基準值,則不改變應用服務器 連接池的最大線程數(shù)。
相應于上面的方法實施例,本發(fā)明還提供一種應用服務器的優(yōu)化裝置。
如圖4所示,本發(fā)明提供的一種應用服務器的優(yōu)化裝置包括
數(shù)據(jù)獲取模塊100,用于實時獲取應用服務器處理結(jié)構(gòu)化查詢語言SQL的相關(guān)數(shù) 據(jù),
其中,所述相關(guān)數(shù)據(jù)包括單條SQL的處理時間、或最大并發(fā)處理SQL的數(shù)量;
其中,所述單條SQL的處理時間可以為
預設時間段內(nèi)單條SQL的平均處理時間或預設時間段內(nèi)單條SQL的最大處理時 間。
本領(lǐng)域技術(shù)人員可以理解的是,SQL的相關(guān)數(shù)據(jù)還可以為其他數(shù)據(jù),例如應用服 務器所處理的SQL類型。
其中,預設基準值可以人為設定,也可以由應用服務器處理SQL的歷史記錄進行 統(tǒng)計和/或計算得出預設基準值。
其中,單條SQL的處理時間可以為預設時間段內(nèi)單條SQL的平均處理時間或預設 時間段內(nèi)單條SQL的最大處理時間。
數(shù)據(jù)比較模塊200,用于將所述相關(guān)數(shù)據(jù)與預設基準值進行比較;
線程數(shù)改變模塊300,用于在所述相關(guān)數(shù)據(jù)大于預設基準值時,減小應用服務器連 接池的最大線程數(shù),在所述相關(guān)數(shù)據(jù)小于預設基準值時,增大應用服務器連接池的最大線 程數(shù)。
在實際應用中,當所述相關(guān)數(shù)據(jù)與預設基準值相等時,可以不再改變應用服務器 連接池的最大線程數(shù)。
需要說明的是,應用服務器連接池是歸屬于中間件的一種設備,能夠根據(jù)設置最 大線程數(shù)來控制應用服務器所要處理SQL的數(shù)量。當連接池的最大線程數(shù)變大時,應用服 務器所要處理的SQL數(shù)量變大;當連接池的最大線程數(shù)變小時,應用服務器所要處理的SQL 數(shù)量變小。對于固定的應用服務器來說,其處理能力是固定的,當應用服務器所要處理的 SQL數(shù)量較多時,單條SQL的處理時間就會較長。
由于應用服務器多與數(shù)據(jù)庫進行連接,由應用服務器處理SQL對數(shù)據(jù)庫進行查詢 的行為,所以當應用服務器處理SQL的時間較長和/或應用服務器并發(fā)處理SQL的數(shù)量較 多時,數(shù)據(jù)庫會出現(xiàn)堵塞的現(xiàn)象。所以,當所述相關(guān)數(shù)大于預設基準值時,可以認為數(shù)據(jù)庫 出現(xiàn)堵塞。
本發(fā)明通過應用以上技術(shù)方案,能夠?qū)崟r獲取的結(jié)構(gòu)化查詢語言的處理時間與 預設基準值進行比較,并根據(jù)比較結(jié)果自動相應增大或減小應用服務器連接池的值,以實 現(xiàn)應用服務器性能的自動優(yōu)化。
在實際應用中,由于每一條SQL并不一定相同,所以單條SQL的處理時間可能并不能在較高的程度上體現(xiàn)應用服務器的性能。所以,在本發(fā)明其他實施例中,還可以先獲取預 設時間段內(nèi)應用服務器處理SQL的相關(guān)數(shù)據(jù),然后進行統(tǒng)計和/或計算,得出預定時間段 內(nèi)應用服務器處理SQL的特征數(shù)據(jù),如單條SQL的平均處理時間、單條SQL的最大處理時 間。然后將所述特征數(shù)據(jù)與預設基準值進行比較,并相應改變應用服務器連接池最大線程 數(shù),以達到應用服務器性能優(yōu)化的目的。
當然,在本發(fā)明其他裝置實施例中,所述數(shù)據(jù)獲取模塊100具體配置可以為
在應用服務器負載穩(wěn)定的情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處 理單條SQL的平均處理時間,以預定倍數(shù)的所述平均處理時間作為預設基準值。
其中,單條SQL的平均處理時間的計算方法可以為
將預設時間段內(nèi)應用服務器處理SQL的時間進行累加,然后除以預設時間段內(nèi)應 用服務器處理SQL的數(shù)量,從而得出單條SQL的平均處理時間。
在相關(guān)數(shù)據(jù)為預設時間段內(nèi)單條SQL的平均處理時間的情況下,預設基準值的設 置方法包括
在應用服務器負載穩(wěn)定情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處理 單條SQL的平均處理時間,以預定倍數(shù)的所述平均處理時間作為預設基準值,為區(qū)分起見, 稱其為第一預設基準值。
本領(lǐng)域技術(shù)人員可以理解的是,應用服務器負載穩(wěn)定即指應用服務器并發(fā)處理 SQL的數(shù)量保持在一定的范圍內(nèi),數(shù)量變化不大。
當然,在本發(fā)明其他裝置實施例中,所述數(shù)據(jù)獲取模塊100具體設置可以為
在應用服務器負載穩(wěn)定的情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處 理單條SQL的最大處理時間,以預定倍數(shù)的所述最大處理時間作為預設基準值。
在相關(guān)數(shù)據(jù)為預設時間段內(nèi)單條SQL的最大處理時間的情況下,預設基準值的設 置方法可以包括
在應用服務器負載穩(wěn)定的情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處 理單條SQL的最大處理時間,以預定倍數(shù)的所述最大處理時間作為預設基準值,為區(qū)分起 見,稱其為第二預設基準值。
在實際應用中,由于單條SQL的最大處理時間的變化幅度比單條SQL的平均處理 時間大,所以最大處理時間的預訂倍數(shù)可以比平均處理時間的預訂倍數(shù)高。
當然,在本發(fā)明其他裝置實施例中,所述數(shù)據(jù)獲取模塊100具體設置可以為
獲取應用服務器的CPU數(shù)量,以預定倍數(shù)的所述CPU數(shù)量作為預設基準值,為區(qū)分 起見,稱其為第三預設基準值。
本領(lǐng)域技術(shù)人員可以理解的是,應用服務器的CPU數(shù)量是影響應用服務器處理 SQL能力的重要因素之一,應用服務器的CPU數(shù)量越多,其處理SQL的能力越大。
當然,在本發(fā)明其他裝置實施例中,數(shù)據(jù)獲取模塊100具體配置可以為同時獲取 應用服務器處理單條SQL的最大處理時間和單條SQL的平均處理時間,單條SQL的平均處 理時間與所對應的第一預設基準值進行比較,單條SQL的最大處理時間與所對應的第二預 設基準值進行比較。
如果單條SQL的平均處理時間大于第一預設基準值或單條SQL的最大處理時間大 于第二預設基準值,則減小應用服務器連接池的最大線程數(shù);
如果單條SQL的平均處理時間小于第一預設基準值且單條SQL的最大處理時間小 于第二預設基準值,則增大應用服務器連接池的最大線程數(shù)。
在實際應用中,還可能出現(xiàn)相等的情況
如果單條SQL的平均處理時間等于第一預設基準值且單條SQL的最大處理時間小 于第二預設基準值,則增大應用服務器連接池的最大線程數(shù);
如果單條SQL的平均處理時間小于第一預設基準值且單條SQL的最大處理時間等 于第二預設基準值,則增大應用服務器連接池的最大線程數(shù);
如果單條SQL的平均處理時間等于第一預設基準值且單條SQL的最大處理時間等 于第二預設基準值,則不改變應用服務器連接池的最大線程數(shù)。
當然,在本發(fā)明其他裝置實施例中,數(shù)據(jù)獲取模塊100具體配置可以為同時獲取 應用服務器處理單條SQL的最大處理時間、單條SQL的平均處理時間和最大并發(fā)處理SQL 的數(shù)量。單條SQL的平均處理時間與所對應的第一預設基準值進行比較,單條SQL的最大 處理時間與所對應的第二預設基準值進行比較,最大并發(fā)處理SQL的數(shù)量與所對應的第三 預設基準值進行比較。
如果單條SQL的平均處理時間大于第一預設基準值、單條SQL的最大處理時間大 于第二預設基準值或最大并發(fā)處理SQL的數(shù)量大于第三預設基準值,則減小應用服務器連 接池的最大線程數(shù);
如果單條SQL的平均處理時間小于第一預設基準值、單條SQL的最大處理時間小 于第二預設基準值且最大并發(fā)處理SQL的數(shù)量小于第三預設基準值,則增大應用服務器連 接池的最大線程數(shù)。
在排除上述兩種假設的情況下,還可能出現(xiàn)相等的情況
如果單條SQL的平均處理時間小于第一預設基準值、單條SQL的最大處理時間小 于第二預設基準值或最大并發(fā)處理SQL的數(shù)量小于第三預設基準值,則增大應用服務器連 接池的最大線程數(shù);
如果單條SQL的平均處理時間等于第一預設基準值、單條SQL的最大處理時間等 于第二預設基準值且最大并發(fā)處理SQL的數(shù)量等于第三預設基準值,則不改變應用服務器 連接池的最大線程數(shù)。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本 發(fā)明時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可 借助軟件加必需的通用硬件平臺的方式來實現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì) 上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品 可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備 (可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些 部分所述的方法。
本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部 分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置實 施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例 的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明10的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是 物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要 選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出 創(chuàng)造性勞動的情況下,即可以理解并實施。
本發(fā)明可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如個人計算機、服務 器計算機、手持設備或便攜式設備、平板型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂 盒、可編程的消費電子設備、網(wǎng)絡PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設備的 分布式計算環(huán)境等等。
本發(fā)明可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序 模塊。一般地,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組 件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本發(fā)明,在這些分布式計算環(huán)境中,由 通過通信網(wǎng)絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以 位于包括存儲設備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
以上所述僅是本發(fā)明的具體實施方式
,應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應 視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種應用服務器的優(yōu)化方法,其特征在于,包括 實時獲取應用服務器處理結(jié)構(gòu)化查詢語言SQL的相關(guān)數(shù)據(jù),其中,所述相關(guān)數(shù)據(jù)包括單條SQL的處理時間、或最大并發(fā)處理SQL的數(shù)量; 將所述相關(guān)數(shù)據(jù)與預設基準值進行比較,如果大于預設基準值,則減小應用服務器連 接池的最大線程數(shù),如果小于預設基準值,則增大應用服務器連接池的最大線程數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述單條SQL的處理時間為預設時間段內(nèi)單條SQL的平均處理時間或預設時間段內(nèi)單條SQL的最大處理時間。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述預設基準值的設置方法包括 在應用服務器負載穩(wěn)定情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處理單條SQL的平均處理時間,以預定倍數(shù)的所述平均處理時間作為預設基準值。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述預設基準值的設置方法包括在應用服務器負載穩(wěn)定的情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處理單 條SQL的最大處理時間,以預定倍數(shù)的所述最大處理時間作為預設基準值。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預設基準值的設置方法包括 獲取應用服務器的CPU數(shù)量,以預定倍數(shù)的所述CPU數(shù)量作為預設基準值。
6.一種應用服務器的優(yōu)化裝置,其特征在于,包括數(shù)據(jù)獲取模塊,用于實時獲取應用服務器處理結(jié)構(gòu)化查詢語言SQL的相關(guān)數(shù)據(jù), 其中,所述相關(guān)數(shù)據(jù)包括單條SQL的處理時間、或最大并發(fā)處理SQL的數(shù)量; 數(shù)據(jù)比較模塊,用于將所述相關(guān)數(shù)據(jù)與預設基準值進行比較; 線程數(shù)改變模塊,用于在所述相關(guān)數(shù)據(jù)大于預設基準值時,減小應用服務器連接池的 最大線程數(shù),在所述相關(guān)數(shù)據(jù)小于預設基準值時,增大應用服務器連接池的最大線程數(shù)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述單條SQL的處理時間為預設時間段內(nèi)單條SQL的平均處理時間或預設時間段內(nèi)單條SQL的最大處理時間。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述數(shù)據(jù)獲取模塊具體配置為在應用服務器負載穩(wěn)定的情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處理單 條SQL的平均處理時間,以預定倍數(shù)的所述平均處理時間作為預設基準值。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述數(shù)據(jù)獲取模塊具體配置為在應用服務器負載穩(wěn)定的情況下,根據(jù)處理SQL的歷史記錄,得到應用服務器處理單 條SQL的最大處理時間,以預定倍數(shù)的所述最大處理時間作為預設基準值。
10.
全文摘要
本發(fā)明公開了一種應用服務器的優(yōu)化方法及裝置,能夠?qū)崟r獲取應用服務器處理結(jié)構(gòu)化查詢語言SQL的相關(guān)數(shù)據(jù),將所述相關(guān)數(shù)據(jù)與預設基準值進行比較,并根據(jù)比較結(jié)果相應改變應用服務器連接池的最大線程數(shù),以實現(xiàn)應用服務器性能的自動優(yōu)化。
文檔編號G06F9/50GK102033784SQ201010549790
公開日2011年4月27日 申請日期2010年11月18日 優(yōu)先權(quán)日2010年11月18日
發(fā)明者劉歡迎 申請人:山東中創(chuàng)軟件商用中間件股份有限公司, 山東中創(chuàng)軟件工程股份有限公司