欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

應用服務器分級再生方法

文檔序號:6560239閱讀:266來源:國知局
專利名稱:應用服務器分級再生方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種應用服務器的再生方法,尤其涉及一種應用服務器的分級再生方法。
背景技術(shù)
伴隨著軟件的運行,由于系統(tǒng)資源逐漸消耗或運行時錯誤逐漸積累所導致的系統(tǒng)性能持續(xù)下降乃至掛起或停機的現(xiàn)象。這就是所謂的“軟件老化”。應用服務器也存在相同的問題。要保證服務器的高可用性和高可靠性,必須對服務器進行軟件再生?!败浖偕笔且环N“前攝式”(proactive)的容錯技術(shù),它主要通過周期性地暫停軟件的運行,清除持續(xù)運行系統(tǒng)的內(nèi)部狀態(tài),重新啟動并恢復到干凈的初始或中間狀態(tài),從而達到預先防止將來可能發(fā)生的更嚴重的故障的目的?!败浖偕奔夹g(shù)所涉及的主要問題是何時進行“再生”以及如何“再生”。由于“再生”本身也會導致系統(tǒng)的不可用,因此,過高頻率的“軟件再生”會增大系統(tǒng)停機的時間和損失,頻率過低則不能保證起到應有的效用?!霸偕钡姆椒ㄅc“再生”的粒度有關(guān),如基于組件的“再生”,基于檢查點的“再生”等。
應用服務器(Application Server)中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術(shù)之間共享資源,應用服務器中間件位于客戶機服務器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡通訊。它屏蔽了底層網(wǎng)絡和操作系統(tǒng)的復雜性和異構(gòu)性,提供客戶標準的服務集,使得整個系統(tǒng)對于客戶的訪問是透明的。
與其他軟件一樣,應用服務器在運行一段時間后,可能由于系統(tǒng)資源逐漸消耗或運行時錯誤逐漸積累而性能下降,甚至使得應用服務器不可用,呈現(xiàn)老化狀態(tài)。應用服務器的再生特征能很好地提高其性能和可用性。
在應用服務器運行期間,必須對服務器狀態(tài)進行監(jiān)控,獲得展現(xiàn)服務器狀態(tài)的各個指標,并通過數(shù)學模型分析判斷這些指標所標識的服務器狀態(tài)已經(jīng)達到老化后,對服務器進行再生,從而提高服務器性能,提供可靠的服務。
再生策略一般可分為基于時間的策略以及基于時間和負載量的策略兩種?;跁r間的再生策略思想是按照實際服務器的運行時間,來確認系統(tǒng)老化程度。并假設(shè)系統(tǒng)從開始運行到系統(tǒng)崩潰的時間與服務器的能力和其它任何參數(shù)沒有必然聯(lián)系,而是通過收集歷史數(shù)據(jù),對歷史數(shù)據(jù)進行建模分析得出老化時間,從而確認服務器的再生點。
基于時間和負載量的策略的基本思想是當系統(tǒng)定時再生被觸發(fā)時,系統(tǒng)不再馬上執(zhí)行再生,而是首先檢測集群系統(tǒng)的負載狀態(tài)。由于重載狀態(tài)時節(jié)點的再生會降低系統(tǒng)性能,故選擇在系統(tǒng)輕載時再生。為了保證在再生該節(jié)點的過程中系統(tǒng)依然可用,首先將該節(jié)點中的負載量和相關(guān)服務遷移到其他節(jié)點,并將服務器內(nèi)部狀態(tài)備份到硬盤或者其他節(jié)點,同時回收導致服務器性能下降的資源,使得服務器回滾到啟動狀態(tài)或者某個可用狀態(tài)。
常用的再生方法有基于模型的再生和基于測量的方法?;谀P偷难芯糠椒ǔ霈F(xiàn)的較早,其思想是應用數(shù)學方法求解得出軟件再生時間的最優(yōu)值與各老化指標參量之間的一組函數(shù)關(guān)系,而各老化指標參量的具體值則可以通過對實際系統(tǒng)一段時間的試驗或?qū)嶋H運行得到。目前,基于模型方法的重點在于利用隨機Petri網(wǎng)等工具對軟件系統(tǒng)的狀態(tài)和轉(zhuǎn)換進行刻畫建模,結(jié)合隨機過程等數(shù)學方法求解,最后得出在該模型下的最佳恢復時間的公式或關(guān)系。
基于測量的方法是在軟件運行的實際過程中,監(jiān)測反映系統(tǒng)運行狀態(tài)的各項性能參數(shù),再根據(jù)軟件本身的一些參數(shù),動態(tài)地進行軟件老化的速度、時間、可能性及軟件再生代價等的計算評估,做出是否以及何時采取軟件再生措施的決策。
由于應用服務器本身非常復雜,所以可能存在不同程度的老化,又因為內(nèi)部擁有多個組件,每個組件都有出現(xiàn)老化的可能。所以簡單的采用重起操作系統(tǒng)的方法并不能很好的解決這種老化程度的多樣性和位置的不確定性。使用基于模型的方法,對應用服務器內(nèi)部各個組件的狀態(tài)關(guān)系進行建模,研究服務器的運行狀態(tài)分布,從而計算出標志服務器或者單個組件老化的關(guān)鍵點。以此為基礎(chǔ),實時地用基于預測的方法判斷軟件老化的狀態(tài),決定是否需要采取相應的再生手段。這樣就能解決服務器不同程度的老化問題。
應用服務器再生可以根據(jù)老化的程度分為不同粒度。將應用服務中每個組件都作為一個模塊單獨處理,同時也考慮服務器整體再生策略。當某個組件老化時,對這個組件進行資源回收、服務重起來解決老化,如果服務器整體老化,就保存整個服務器狀態(tài),對其進行重起。對于組件老化還需要考慮關(guān)聯(lián)老化的情況,即一個組件的老化(或再生重起)可能引起其他組件同時出現(xiàn)老化或不可用,故再對老化組件進行重起的同時需要對相關(guān)組件也進行重起。
目前對于應用服務器的再生,大多不考慮老化的程度和具體位置,直接采取全局的重起,對于軟件內(nèi)部組件的重起考慮很少。

發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述再生方法較為單一的缺點,提供了一種能夠?qū)崿F(xiàn)在服務器仍然提供服務的情況下,完成再生,從而減少因再生引起的停機時間的應用服務器的分級再生方法。
為達到上述目的,本發(fā)明采用的技術(shù)方案是1)首先通過老化模型檢測應用服務器的老化狀態(tài),如果老化則判斷是整體老化還是局部老化,若是整體老化直接轉(zhuǎn)向步驟5);若是局部老化則確定是哪些組件老化;2)通過老化關(guān)聯(lián)對照表查看已老化的組件是否會產(chǎn)生關(guān)聯(lián)老化,如果不會則通過狀態(tài)保存器保存目前老化服務的狀態(tài)信息,并關(guān)閉此服務,然后重起;如果此服務存在關(guān)聯(lián)的老化服務,則通過狀態(tài)保存器將所有關(guān)聯(lián)的服務狀態(tài)都保存下來,關(guān)閉這些服務,并重起;3)恢復上一步重起的服務狀態(tài),讀取保存在狀態(tài)保存器中的信息,重新響應用戶請求;4)此時,再次檢測服務器是否老化,如果服務器正常,說明重起這些服務使服務器恢復到正常狀態(tài),再生成功,本次再生結(jié)束,否則繼續(xù)下一步;5)進行JVM級的再生,首先保存服務器和當前正在響應請求的狀態(tài),調(diào)用操作系統(tǒng)API,關(guān)閉服務器所運行的JVM,然后重起服務器并恢復狀態(tài);6)服務器重起后再次對服務器進行老化檢測,如果服務器正常則再生結(jié)束,否則進行下面的操作系統(tǒng)級再生;7)調(diào)用操作系統(tǒng)API重起計算機,系統(tǒng)重啟成功時,應用服務器作為一項應用隨之也自動重啟。
本發(fā)明通過將再生操作分級,避免了由于局部老化就進行全局再生的可能,從而減少了應用服務器的停機時間,降低再生代價。


圖1是本發(fā)明的流程圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作進一步詳細說明。
參見圖1,若當前服務器節(jié)點被檢測到已經(jīng)老化,則需要進行以下的再生步驟首先通過老化建模1,得到當前服務器已處于老化狀態(tài),并將當前服務器老化信息2傳送給狀態(tài)監(jiān)測器,其中包括需要進行再生的組件列表。
狀態(tài)監(jiān)測器接收到信息,得知服務器已老化,則向請求轉(zhuǎn)發(fā)器和狀態(tài)保存器發(fā)出再生通知2,進行再生準備。
由于此時大多數(shù)服務器組件不需要再生,故服務器仍可以接受并處理客戶請求。但狀態(tài)監(jiān)測器需通知請求轉(zhuǎn)發(fā)器,把即將進行再生的組件置為不可用,如果用戶請求不需要這些組件提供服務,則可正常響應;如果用戶請求需要使用這些組件,則將請求保存在請求隊列中,等組件再生完成后再恢復響應,這樣就可以將服務器失效對用戶屏蔽。
狀態(tài)保存器則在當前請求執(zhí)行完畢之后,將需要進行再生的組件信息保存下來即保存所需再生組件狀態(tài)3,狀態(tài)保存下來之后,狀態(tài)保存器將已經(jīng)保存狀態(tài)的組件列表發(fā)給組件再生器,進行組件再生4。由于這些組件都被配置成服務器的服務,只需關(guān)閉這些服務并重起即啟動組件再生5。
服務重啟之后,通知組件再生完畢6并恢復保存的組件狀態(tài)信息中的數(shù)據(jù)即恢復再生組件狀態(tài)7,向老化建模通知組件再生完成,此時再通過老化建模檢測服務器是否老化,若服務器恢復正常,則說明再生成功,狀態(tài)檢測器向請求接受器發(fā)出通知,將已再生的組件改為可用狀態(tài);若服務器仍然老化9,說明組件再生不能解決此次老化問題,則進行高一等級的再生(JVM級再生)。
狀態(tài)監(jiān)測器向請求接收器和狀態(tài)保存器發(fā)出JVM級再生通知10,進行再生準備。
請求接收器收到JVM級再生通知,將服務器置為不可用狀態(tài),保存當前正在進行的請求,停止接受新的請求11。
狀態(tài)保存器則在當前請求執(zhí)行完畢之后,保存服務器運行狀態(tài)12。這里不但有的組件需要保存狀態(tài),還有業(yè)務EJB也需要保存狀態(tài)。僅有狀態(tài)繪畫bean和實體bean有狀態(tài)信息。這里需要利用到java的對象持久化技術(shù)。實體bean只需調(diào)用其ejbStore()方法,將內(nèi)存中的值保存到數(shù)據(jù)庫中,使其保持最新數(shù)據(jù)。
狀態(tài)保存完畢之后,通知JVM再生器進行JVM級再生,JVM再生器啟動JVM級再生14。JVM級再生是JVM再生器調(diào)用服務器的shutdown服務(在shutdown服務老化不能正常使用時,調(diào)用操作系統(tǒng)API完成),關(guān)閉服務器。接著啟動服務器,并通知狀態(tài)保存器JVM級再生完畢,狀態(tài)保存器恢復保存的狀態(tài)信息即恢復服務器狀態(tài)16并向老化建模通知JVM級再生完成,此時再通過老化建模檢測服務器是否老化17,若服務器恢復正常,則說明再生成功,通知請求接收器重新開始接受用戶請求,狀態(tài)監(jiān)測器也恢復對服務器狀態(tài)的檢測;若服務器仍處于老化狀態(tài)18,說明JVM級再生不能解決此次老化問題,則進行高一等級的再生(操作系統(tǒng)級級再生)。
由于服務器在JVM級再生后并未處理新的請求,所以服務器狀態(tài)沒有發(fā)生改變,不需要進行狀態(tài)保存。狀態(tài)監(jiān)測器向操作系統(tǒng)級再生器發(fā)出操作系統(tǒng)級再生通知19,操作系統(tǒng)再生器啟動操作系統(tǒng)級再生20即操作系統(tǒng)再生器調(diào)用本地OS的API,重新啟動計算機。調(diào)用本地操作系統(tǒng)的Windows API--ExitWindowsEx(UINT uFlags,DWORD dwReserved)對節(jié)點重啟;系統(tǒng)重啟成功時,應用服務器作為操作系統(tǒng)一項服務也自動重啟。此時再進行狀態(tài)恢復即通知狀態(tài)保存器恢復服務器狀態(tài)22(同JVM級再生后的狀態(tài)恢復)。
應用服務器恢復狀態(tài),狀態(tài)保存器分別通知請求接受器重新接受請求、通知狀態(tài)監(jiān)測器繼續(xù)監(jiān)測服務器狀態(tài),請求接收器與狀態(tài)監(jiān)測器得到通知開始工作,重新接受EJB請求。
權(quán)利要求
1.應用服務器的分級再生方法,其特征在于1)首先通過老化模型檢測應用服務器的老化狀態(tài),如果老化則判斷是整體老化還是局部老化,若是整體老化直接轉(zhuǎn)向步驟5);若是局部老化則確定是哪些組件老化;2)通過老化關(guān)聯(lián)對照表查看已老化的組件是否會產(chǎn)生關(guān)聯(lián)老化,如果不會則通過狀態(tài)保存器保存目前老化服務的狀態(tài)信息,并關(guān)閉此服務,然后重起;如果此服務存在關(guān)聯(lián)的老化服務,則通過狀態(tài)保存器將所有關(guān)聯(lián)的服務狀態(tài)都保存下來,關(guān)閉這些服務,并重起;3)恢復上一步重起的服務狀態(tài),讀取保存在狀態(tài)保存器中的信息,重新響應用戶請求;4)此時,再次檢測服務器是否老化,如果服務器正常,說明重起這些服務使服務器恢復到正常狀態(tài),再生成功,本次再生結(jié)束,否則繼續(xù)下一步;5)進行JVM級的再生,首先保存服務器和當前正在響應請求的狀態(tài),調(diào)用操作系統(tǒng)API,關(guān)閉服務器所運行的JVM,然后重起服務器并恢復狀態(tài);6)服務器重起后再次對服務器進行老化檢測,如果服務器正常則再生結(jié)束,否則進行下面的操作系統(tǒng)級再生;7)調(diào)用操作系統(tǒng)API重起計算機,系統(tǒng)重啟成功時,應用服務器作為一項應用隨之也自動重啟。
全文摘要
應用服務器分級再生方法,通過老化建模檢測當前服務器的老化狀態(tài),根據(jù)不同老化狀態(tài)進行組件級再生確定老化組件,保存該組件狀態(tài)信息,關(guān)閉相應服務然后重起此服務;重起后讀取保存的狀態(tài)信息恢復組件狀態(tài),使組件重新提供服務;JVM級再生保存當前服務器的狀態(tài)信息,關(guān)閉服務器并進行重起;操作系統(tǒng)級再生保存服務器狀態(tài),重起操作系統(tǒng),服務器隨操作系統(tǒng)自動重起,讀取保存的狀態(tài)信息,服務器重新接受請求。每進行完一級再生,就再次進行老化檢測,若服務器已恢復到正常,再生結(jié)束;若服務器仍處于老化狀態(tài),則進行下一級別的再生,直到服務器恢復正常。本發(fā)明通過再生操作分級,避免了局部老化就進行全局再生的可能,減少了應用服務器停機時間,降低再生代價。
文檔編號G06F11/14GK101038564SQ200610104938
公開日2007年9月19日 申請日期2006年11月21日 優(yōu)先權(quán)日2006年11月21日
發(fā)明者齊勇, 王培健, 侯迪, 趙天海, 孟海寧, 邱勁鋒 申請人:西安交通大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
龙南县| 同江市| 台北县| 黄梅县| 芦山县| 楚雄市| 米泉市| 七台河市| 黄龙县| 绥阳县| 佛冈县| 元氏县| 溧阳市| 建宁县| 古田县| 农安县| 平定县| 亚东县| 新野县| 晋城| 乐平市| 云浮市| 济宁市| 沧州市| 万州区| 准格尔旗| 探索| 五寨县| 达孜县| 台北市| 南开区| 乌拉特后旗| 江永县| 台前县| 南雄市| 鄄城县| 西乌珠穆沁旗| 湘阴县| 嘉定区| 慈溪市| 光泽县|