新四季網

一種實現軟體抗衰的方法及系統的製作方法

2023-05-26 01:22:56 1

專利名稱:一種實現軟體抗衰的方法及系統的製作方法
技術領域:
本發明涉及軟體抗衰技術領域,尤其涉及一種實現軟體抗衰的方法及系統。
背景技術:
軟體衰退是指在長期持續運行的軟體系統中,因發生狀態退化和性能降低,導致系統崩潰的現象。從軟體工程學的角度,在軟體的設計、開發和測試等階段是無法消除軟體 衰退的,因此,軟體衰退有其存在的必然性。有鑑於此,有學者提出了「軟體抗衰」概念,軟體抗衰是一種前攝性、搶先式的容錯 技術。軟體抗衰技術通過對軟體系統進行部分重啟或全部重啟達到抗衰目的,這樣方式雖 然會使軟體系統處於部分功能不可用乃至完全不可用的狀態,且會造成額外開銷,但相對 於軟體系統意外失效帶來的損失仍然具有很大優越性,並且,執行抗衰操作所需的時間要 遠小於修復系統意外失效所需的時間,因此,軟體抗衰技術能夠提高軟體系統的可靠性,降 低系統損失。目前,軟體抗衰技術主要有兩種基於時間的抗衰技術和基於度量的抗衰技術。基 於時間的抗衰技術是宏觀層面的,並不關心具體哪些因素導致了軟體衰退的發生;而基於 度量的抗衰技術是微觀層面的,它具體度量和估算可能引起軟體衰退的各種因素及其變化 趨勢,如,究竟是CPU的佔用還是內存洩漏或是進程表的問題引起軟體衰退,並決定是否採 取軟體抗衰措施以及採取軟體抗衰措施的時機。但是,上述兩種軟體抗衰技術都有其自身的缺陷,基於時間的抗衰技術採用諸如 馬爾可夫模型、半馬爾可夫模型或隨機Petri網模型等數學工具對軟體衰退的狀態遷移過 程建模,由此導致了抗衰粒度較粗,對系統負載變化的容忍性較差;基於度量的抗衰技術需 要開發專門的監控Agent (代理),並且,實施監控會給軟體系統帶來額外的負載衝擊,監控 Agent僅能對有限的幾種衰退因素進行監控,無法偵測出未知的衰退因素。由於現有的軟體抗衰技術存在上述諸多不足,對於大型應用系統,如,電信領域中 的綜合網管系統,該系統需要提供拓撲、告警、性能、配置、信令跟蹤、安全、日誌、策略管理 和業務分析等種類繁多的功能,該類系統的用戶對性能要求非常高,現有抗衰技術存在的 諸多缺陷,顯然無法滿足此類系統的要求。

發明內容
本發明要解決的技術問題是提供一種實現軟體抗衰的方法及系統,解決現有技術 中抗衰粒度較粗的問題,細化軟體抗衰粒度。為解決上述技術問題,本發明的一種實現軟體抗衰的方法,包括將軟體系統構件化,實現以構件組成軟體系統;對軟體系統的操作日誌進行統計分析,確定待重啟構件及待重啟構件的重啟時 刻;在重啟時刻重啟待重啟構件。
進一步地,進行統計分析,確定待重啟構件的具體過程包括將軟體系統的操作日誌按時間順序劃入不同的滑動窗口,形成滑動窗口序列;從操作頻率、操作時間開銷和自動操作結果三個維度對滑動窗口序列中的操作日誌進行統計分析,確定列入並保留在觀測列表中的構件,記錄觀測列表中的構件進入觀測 列表的次數;當觀測列表中的某一構件進入觀測列表的次數大於一指定的觀測列表進入次數 閾值時,則確定該構件為待重啟構件。進一步地,確定列入並保留在觀測列表中的構件的過程包括當涉及某一構件的操作頻率或操作時間開銷在第一滑動窗口中高於操作頻率閾 值或操作時間開銷閾值時,則將該構件列入觀測列表中;如果該構件在下一個滑動窗口中 的操作頻率或操作時間開銷大於在第一滑動窗口中的操作頻率或操作時間開銷,並且大於 系統重啟以來該構件在已完成操作日誌分析的全部滑動窗口中的操作頻率或操作時間開 銷的數學期望或者經驗值時,則將該構件保留在觀測列表中,並將其進入觀測列表的次數 加1 ;當涉及某一構件的自動操作結果在第一滑動窗口中為失敗時,則將該構件列入觀 測列表中;如果該構件在下一個滑動窗口中的自動操作結果仍為失敗時,則將該構件保留 在觀測列表中,並將其進入觀測列表的次數加1。進一步地,確定待重啟構件的重啟時刻的過程包括對於因操作頻率或操作時間開銷被列入觀測列表的待重啟構件,採用最小二乘 法,將滑動窗口的序列號和對應滑動窗口中的操作頻率或操作時間開銷作為最小二乘法的 輸入,預計操作頻率或操作時間開銷的變化趨勢,從變化趨勢中查找使待重啟構件陷入衰 退態的操作頻率值或操作時間開銷,根據該操作頻率值或操作時間開銷所在的滑動窗口確 定待重啟構件陷入衰退態的時間,將該時間作為重啟時刻;對於因自動操作失敗而被列入觀測列表的待重啟構件,將重啟時刻設置為執行下 一次構件重啟操作的時間。進一步地,確定待重啟構件及待重啟構件的重啟時刻後,根據重啟時刻相同的待 重啟構件的依附關係構造重啟鏈,在重啟時刻按照重啟鏈依次對待重啟構件進行重啟。進一步地,一種實現軟體抗衰的系統,包括依次連接的操作日誌資料庫、日誌分 析模塊和重啟守護模塊,其中操作日誌資料庫用於從由構件組成的軟體系統中讀取並保存操作日誌;日誌分析模塊用於從操作日誌資料庫中讀取操作日誌,對所讀取的操作日誌進行 統計分析,確定待重啟構件及待重啟構件的重啟時刻;重啟守護模塊用於在重啟時刻重啟待重啟構件。進一步地,日誌分析模塊進行統計分析,確定待重啟構件的具體過程包括將軟體系統的操作日誌按時間順序劃入不同的滑動窗口,形成滑動窗口序列;從操作頻率、操作時間開銷和自動操作結果三個維度對滑動窗口序列中的操作日 志進行統計分析,確定列入並保留在觀測列表中的構件,記錄觀測列表中的構件進入觀測 列表的次數;當觀測列表中的某一構件進入觀測列表的次數大於一指定的觀測列表進入次數閾值時,則確定該構件為待重啟構件。進一步地,日誌分析模塊確定列入並保留在觀測列表中的構件的過程包括當涉及某一構件的操作頻率或操作時間開銷在第一滑動窗口中高於操作頻率閾值或操作時間開銷閾值時,則將該構件列入觀測列表中;如果該構件在下一個滑動窗口中 的操作頻率或操作時間開銷大於在第一滑動窗口中的操作頻率或操作時間開銷,並且大於 系統重啟以來該構件在已完成操作日誌分析的全部滑動窗口中的操作頻率或操作時間開 銷的數學期望或者經驗值時,則將該構件保留在觀測列表中,並將其進入觀測列表的次數 加1 ;當涉及某一構件的自動操作結果在第一滑動窗口中為失敗時,則將該構件列入觀 測列表中;如果該構件在下一個滑動窗口中的自動操作結果仍為失敗時,則將該構件保留 在觀測列表中,並將其進入觀測列表的次數加1。進一步地,操作日誌分析模塊確定待重啟構件的重啟時刻的過程包括對於因操作頻率或操作時間開銷被列入觀測列表的待重啟構件,採用最小二乘 法,將滑動窗口的序列號和對應滑動窗口中的操作頻率或操作時間開銷作為最小二乘法的 輸入,預計操作頻率或操作時間開銷的變化趨勢,從變化趨勢中查找使待重啟構件陷入衰 退態的操作頻率值或操作時間開銷,根據該操作頻率值或操作時間開銷所在的滑動窗口確 定待重啟構件陷入衰退態的時間,將該時間作為重啟時刻;對於因自動操作失敗而被列入觀測列表的待重啟構件,將重啟時刻設置為執行下 一次構件重啟操作的時間。進一步地,重啟守護模塊重啟待重啟構件時,根據重啟時刻相同的待重啟構件的 依附關係構造重啟鏈,在重啟時刻按照重啟鏈依次對待重啟構件進行重啟。綜上所述,本發明具有如下有益效果通過對軟體系統進行構件化,軟體抗衰中對構件進行重啟,解決了基於時間的抗 衰技術抗衰粒度較粗,對負載變化容忍性差的問題;通過統計分析軟體系統的操作日誌,實現對軟體系統各構件的性能監控,避免了 基於度量的抗衰技術需要開發監控Agent,減少了因監控Agent運行給軟體系統帶來的額 外負載;並且,通過對操作日誌進行趨勢分析,不但考慮了當前的操作情況,而且還回溯了歷史 操作信息,可以避免因為瞬時異常而導致構件重啟的誤判操作。本發明在實現上具有普適性,在執行抗衰的過程中,具有很低的抗衰成本,能夠幫 助應用軟體的運營者減少系統意外停機時間,提高系統服務率,增加系統有效工作周期。


圖1為本發明軟體抗衰方法的流程圖;圖2為本發明軟體抗衰系統的架構圖。
具體實施例方式下面結合附圖對本發明的具體實施方式
進行說明圖1所示為本發明實現軟體抗衰的方法,包括
101 將軟體系統構件化;本實施例中,將軟體系統構件化是實現抗衰粒度細化的關鍵。在基於構件的軟體系統中,抗衰粒度可劃分為三個層次(1)系統,軟體抗衰時,將整個軟體系統作為重啟對 象,即,對軟體系統中的全部構件進行重啟;(2)功能組,軟體抗衰時,將軟體系統的某一功 能組作為重啟對象,即,對功能組所包含的構建進行重啟;(3)構件,軟體抗衰時,將軟體系 統的某一功能(或者功能的一部分)作為重啟對象,即,對某一構件進行重啟。抗衰粒度細 化的程度取決於構件的粒度。具體實施中,可採用JMX(Java Management Extensions,即Java管理擴展)技術 完成對軟體系統的構件化。JMX 是 J2EE (Java 2Platform Enterprise Edition, Java2 平臺企業版)體系架 構中為應用程式、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構作業系統平 臺、系統體系結構和網絡傳輸協議,靈活地開發無縫集成的系統、網絡和服務管理應用。利 用JMX可以方便地將軟體系統的各個功能模塊包裝成可管理的、相對獨立的、相互之間有 嚴格邊界的構件系統。每一個構件都遵循JMX規範的生命周期方法(創建、啟動、停止和銷 毀),從而為軟體系統的微重啟奠定了實現的基礎。102 讀取軟體系統的操作日誌;通常軟體系統中都設置有獨立的日誌模塊,由其提供統一的日誌接口,軟體系統 的各功能模塊調用日誌接口,在日誌模塊中記錄各自的操作,因此,日誌模塊中記錄有豐富 的系統操作信息即操作日誌,可作為一個強大的性能檢測數據源。系統操作信息包括操作 發生的時間、頻率、操作結束的時間、操作類型、操作的重要級別、執行操作的構件、操作涉 及的管理對象實例和操作結果等。為方便管理,可將系統的操作信息組織為樹形結構,形成 操作樹模型。操作日誌通常存放在軟體系統的資料庫中,讀取操作日誌時,可以使用資料庫工 具將軟體系統的操作日誌定期轉移到抗衰系統的操作日誌資料庫中,以免進行抗衰分析時 對軟體系統造成性能衝擊。如果操作日誌以文本形式保存,仍可以採用讀取工具定期將操 作日誌文本導入到抗衰系統的操作日誌資料庫中。103 按時間順序將操作日誌劃歸不同的滑動窗口,形成滑動窗口序列,對初始滑 動窗口中的操作日誌進行統計分析,將操作異常的構件加入觀測列表Lw中;將相同時間的系統操作所對應的操作日誌劃分入相同的滑動窗口,形成滑動窗口 序列Wi,i = 1,2, ...η。對初始窗口 Wl中的構件的操作日誌,從操作頻率、操作結果和操 作時間開銷三個維度上進行統計,將操作異常可能陷入衰退的構件加入觀測列表Lw中。具 體方法如下(1)如果在滑動窗口中,與某個構件相關的操作的發生頻率高於一給定的操作頻 率閾值,則將該構件列入觀測列表Lw中,並記錄操作頻率0。(2)如果在滑動窗口中,與某個構件相關的自動操作的操作結果為失敗,則將該構 件也列入觀測列表Lw中。當操作者對構件發起的主動操作的操作結果為失敗時,不將該構 件列入觀測列表中,因為可能存在操作者的操作失誤,而非構件的性能問題。(3)如果在滑動窗口中,某個構件的操作時間開銷TCOS高於一給定操作時間開銷 閾值,則將該構件也列入觀測列表Lw中,並記錄操作時間開銷TC0S。操作時間開銷TCOS =操作結束的時間-操作發生的時間。在觀測列表中還對每個構件記錄滑動窗口的序列號和其被列入觀測列表Lw的次 數T。
104:對下一滑動窗口中的操作日誌進行上述三個維度的統計分析,根據統計結 果,將操作異常的構件加入觀測列表Lw中,同時決定是否將已加入觀測列表Lw的構件移出 觀測列表Lw ;對於觀測列表中的構件,如,構件A因操作頻率過高而進入觀測列表,在當前滑動 窗口中,繼續統計構件A的操作頻率,如果構件A在當前滑動窗口的操作頻率Oi+Ι大於在 前一滑動窗口的操作頻率Oi,並且大於系統重啟以來構件A在已完成操作日誌分析的全部 滑動窗口中的操作頻率的數學期望E (或者經驗值),則將構件A繼續保留在觀測列表中,記 錄構件A在當前滑動窗口中的操作頻率Oi+Ι並將其進入觀測列表的次數T加1 ;否則,將 構件A從觀測列表中移除,清除構件A的相關記錄。如,構件A因某一操作的操作時間開銷過大被列入觀測列表,在當前滑動窗口中 繼續統計構件A的該操作時間開銷TCOSi+Ι,如果構件A在當前滑動窗口的操作時間開銷 TC0Si+l>在前一滑動窗口的操作時間開銷TCOSi,並且大於系統重啟以來構件A在已完成 操作日誌分析的全部滑動窗口中的時間開銷的數學期望E (或者經驗值),則將構件A繼續 留在觀測列表中,記錄構件A在當前滑動窗口中的操作時間開銷TC0Si+1並將其進入觀測列 表的次數T加1 ;否則,將構件A從觀測列表Lw中移除,清除構件A的相關記錄。如,構件A因自動操作失敗而被列入觀測列表Lw,在當前滑動窗口中繼續觀測構 件A是否仍有自動操作失敗發生,如果有,則將構件A進入觀測列表的次數T加1 ;否則,將 構件A從觀測列表Lw中移除,清除構件A的相關記錄。105 判斷觀測列表中是否存在待重啟構件(需要重啟的構件),如果存在,則執行 步驟106 ;否則,跳轉到步驟104 ;在觀測列表中,將進入觀測列表的次數T大於觀測列表進入次數閾值的構件作為 待重啟構件,判斷是否存在待重啟構件時,可判斷是否存在進入觀測列表的次數T大於觀 測列表進入次數閾值的構件。106 確定待重啟構件的重啟時刻,按照重啟時刻將待重啟構件加入重啟列表;對於因操作頻率過高而被列入觀測列表的待重啟構件,採用最小二乘法,將滑動 窗口的序列號和待重啟構件在滑動窗口中的操作頻率作為最小二乘法的輸入,估計該構件 操作頻率的變化趨勢,從變化趨勢中查找到令待重啟構件陷入衰退態的操作頻率值,根據 該操作頻率值所在的滑動窗口確定待重啟構件陷入衰退態的時間,將該時間作為待重啟構 件的重啟時刻。由於滑動窗口序列是按照時間順序劃分的,因此,可以根據操作頻率值所在 的滑動窗口確定操作頻率值的發生時間。對於因某一操作的操作時間開銷過大被列入觀測列表的待重啟構件,仍然採用最 小二乘法,估計待重啟構件的操作時間開銷的變化趨勢,確定構件陷入衰退態的時間,將該 時間作為構件的重啟時刻。對於因自動操作失敗而被列入觀測列表的待重啟構件,當自動操作失敗的次數超 過閥值時,也就是,其進入觀測列表的次數大於觀測列表進入次數閾值時,將該構件加入重 啟列表,並將重啟時刻設置為最近將要被執行的時間,即執行下一次重啟操作的時間。
107:根據重啟列表中重啟時刻相同的構件的依附關係構造重啟鏈,按照重啟鏈在 重啟時刻依次重啟構件;以一定的時間周期,對構件重啟列表進行掃描,找出在下一個時刻需要重啟的所 有構件,根據構件的部署信息計算出構件之間的依賴關係,進而構造出重啟鏈,按照重啟鏈 依次重啟構件,刷新進入衰退態的構件的狀態,實現系統的抗衰。本發明中由於只涉及部分構件的重啟,故稱之為微重啟。之所以需要構造重啟鏈, 是因為類似綜合網管一類的大型的應用軟體必然包含著數以百計的構件,這些構件之間存 在著複雜的依賴關係,只有通過構造重啟鏈才能實現構件的安全重啟。108 保存重啟日誌,並跳轉到步驟104,直到完成對滑動窗口序列的分析,根據重 啟日誌,優化系統。每一次微重啟後,在抗衰系統中保存相應的重啟日誌,在抗衰系統運行一段時期 後,用戶可以通過分析重啟日誌,查找影響軟體系統穩定運行的構件,對這些構件進行分 析,找出缺陷所在,以延長構件的重啟周期,從而實現系統的局部優化。遞歸此過程,將軟體 系統的優化範圍從點到面,從而實現系統的整體優化。本實施例中所涉及的閾值均根據實際網絡的運營場景和網絡規模確定,在此不
一一例舉。圖2所示為本發明實現軟體抗衰的系統,包括依次連接的操作日誌資料庫、日誌 分析模塊、重啟守護模塊和重啟日誌資料庫,操作日誌資料庫還與軟體系統存儲操作日誌 的資料庫連接,重啟守護模塊還與軟體系統的構件生命周期接口連接,其中操作日誌資料庫用於從軟體系統存儲操作日誌的資料庫讀取並保存軟體系統的 操作日誌;日誌分析模塊用於從操作日誌資料庫中讀取操作日誌,將相同時間的系統操作對 應的操作日誌劃分入相同的滑動窗口,形成滑動窗口序列Wi,i = 1,2, ...η。對初始窗口 Wl中的構件的操作日誌,從操作頻率、操作結果和操作時間開銷三個維度上進行統計,將操 作異常可能陷入衰退的構件加入觀測列表Lw中。具體方法如下(1)日誌分析模塊如果判斷在滑動窗口中,與某個構件相關的操作的發生頻率高 於一給定的操作頻率閾值,則將該構件列入觀測列表Lw中,並記錄操作頻率0。(2)如果判斷在滑動窗口中,與某個構件相關的自動操作的操作結果為失敗,則將 該構件也列入觀測列表Lw中。當操作者對構件發起的主動操作的操作結果為失敗時,不將 該構件列入觀測列表中,因為可能存在操作者的操作失誤,而非構件的性能問題。(3)如果判斷在滑動窗口中,某個構件的操作時間開銷TCOS高於一給定操作時間 開銷閾值,則將該構件也列入觀測列表Lw中,並記錄操作時間開銷TC0S。操作時間開銷 TCOS =操作結束的時間-操作發生的時間。日誌分析模塊還在觀測列表中對每個構件記錄滑動窗口的序列號和其被列入觀 測列表Lw的次數Τ。完成對初始滑動窗口的統計分析後,日誌分析模塊繼續對下一滑動窗口中的操 作日誌進行上述三個維度的統計分析,根據統計結果,將操作異常的構件加入觀測列表Lw 中,同時決定是否將已進入觀測列表Lw的構件移出觀測列表Lw ;對於觀測列表中的構件,如,構件A因操作頻率過高而進入觀測列表,日誌分析模塊在當前滑動窗口中,繼續統計構件A的操作頻率,如果構件A在當前滑動窗口的操作頻率Oi+Ι大於在前一滑動窗口的操作頻率Oi,並且大於系統重啟以來構件A在已完成操作日誌 分析的全部滑動窗口中的操作頻率的數學期望E (或者經驗值),則將構件A繼續保留在觀 測列表中,記錄構件A在當前滑動窗口中的操作頻率Oi+Ι並將其進入觀測列表的次數T加 1 ;否則,將構件A從觀測列表中移除,清除構件A的相關記錄。如,構件A因某一操作的操作時間開銷過大被列入觀測列表,在當前滑動窗口中 繼續統計構件A的該操作時間開銷TCOSi+Ι,如果構件A在當前滑動窗口的操作時間開銷 TC0Si+l>在前一滑動窗口的操作時間開銷TCOSi,並且大於系統重啟以來構件A在已完成 操作日誌分析的全部滑動窗口中的時間開銷的數學期望E (或者經驗值),則將構件A繼續 留在觀測列表中,記錄構件A在當前滑動窗口中的操作時間開銷TC0Si+1並將其進入觀測列 表的次數T加1 ;否則,將構件A從觀測列表Lw中移除,清除構件A的相關記錄。如,構件A因自動操作失敗而被列入觀測列表Lw,在當前滑動窗口中繼續觀測構 件A是否仍有自動操作失敗發生,如果有,則將構件A進入觀測列表的次數T加1 ;否則,將 構件A從觀測列表Lw中移除,清除構件A的相關記錄。日誌分析模塊還用於判斷觀測列表中是否存在待重啟構件(需要重啟的構件), 如果存在,則確定待重啟構件的重啟時刻,按照重啟時刻將待重啟構件加入重啟列表;否 貝U,繼續對下一滑動窗口進行統計分析,直到完成對滑動窗口序列的統計分析;日誌分析模塊通過查找是否存在進入觀測列表的次數T大於觀測列表進入次數 閾值的構件,判斷觀測列表中是否存在待重啟構件。對於因操作頻率過高而被列入觀測列表的待重啟構件,日誌分析模塊採用最小二 乘法,將滑動窗口的序列號和待重啟構件在滑動窗口中的操作頻率作為最小二乘法的輸 入,估計該構件操作頻率的變化趨勢,從變化趨勢中查找到令待重啟構件陷入衰退態的操 作頻率值,根據該操作頻率值所在的滑動窗口確定待重啟構件陷入衰退態的時間,將該時 間作為待重啟構件的重啟時刻。由於滑動窗口序列是按照時間順序劃分的,因此,可以根據 操作頻率值所在的滑動窗口確定操作頻率值的發生時間。對於因某一操作的操作時間開銷過大被列入觀測列表的待重啟構件,仍然採用最 小二乘法,估計待重啟構件的操作時間開銷的變化趨勢,確定構件陷入衰退態的時間,將該 時間作為構件的重啟時刻。對於因自動操作失敗而被列入觀測列表的待重啟構件,當自動操作失敗的次數超 過閥值時,也就是,其進入觀測列表的次數大於觀測列表進入次數閾值時,將該構件加入重 啟列表,並將重啟時刻設置為最近將要被執行的時間。重啟守護模塊用於以一定的時間周期,啟動一個線程對構件重啟列表進行掃描, 找出在下一個時刻需要重啟的所有構件,根據構件的部署信息計算出構件之間的依賴關 系,進而構造出重啟鏈,按照重啟鏈依次重啟構件,刷新進入衰退態的構件的狀態,實現系 統的抗衰。重啟日誌資料庫用於保存重啟日誌,為用戶提供重啟日誌,優化系統。本發明的方法及系統適用於如電信領域的綜合網管系統等各種大型軟體系統,具 有普適性。以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
一種實現軟體抗衰的方法,包括將軟體系統構件化,實現以構件組成所述軟體系統;對所述軟體系統的操作日誌進行統計分析,確定待重啟構件及所述待重啟構件的重啟時刻;在所述重啟時刻重啟所述待重啟構件。
2.如權利要求1所述的方法,其特徵在於,所述進行統計分析,確定待重啟構件的具體 過程包括將所述軟體系統的操作日誌按時間順序劃入不同的滑動窗口,形成滑動窗口序列;從操作頻率、操作時間開銷和自動操作結果三個維度對滑動窗口序列中的操作日誌進 行統計分析,確定列入並保留在觀測列表中的構件,記錄觀測列表中的構件進入觀測列表 的次數;當觀測列表中的某一構件進入觀測列表的次數大於一指定的觀測列表進入次數閾值 時,則確定該構件為待重啟構件。
3.如權利要求2所述的方法,其特徵在於,所述確定列入並保留在觀測列表中的構件 的過程包括當涉及某一構件的操作頻率或操作時間開銷在第一滑動窗口中高於操作頻率閾值或 操作時間開銷閾值時,則將該構件列入觀測列表中;如果該構件在下一個滑動窗口中的操 作頻率或操作時間開銷大於在第一滑動窗口中的操作頻率或操作時間開銷,並且大於系統 重啟以來該構件在已完成操作日誌分析的全部滑動窗口中的操作頻率或操作時間開銷的 數學期望或者經驗值時,則將該構件保留在觀測列表中,並將其進入觀測列表的次數加1 ;當涉及某一構件的自動操作結果在第一滑動窗口中為失敗時,則將該構件列入觀測列 表中;如果該構件在下一個滑動窗口中的自動操作結果仍為失敗時,則將該構件保留在觀 測列表中,並將其進入觀測列表的次數加1。
4.如權利要求3所述的方法,其特徵在於,所述確定所述待重啟構件的重啟時刻的過 程包括對於因操作頻率或操作時間開銷被列入觀測列表的待重啟構件,採用最小二乘法,將 滑動窗口的序列號和對應滑動窗口中的操作頻率或操作時間開銷作為最小二乘法的輸入, 預計操作頻率或操作時間開銷的變化趨勢,從變化趨勢中查找使待重啟構件陷入衰退態的 操作頻率值或操作時間開銷,根據該操作頻率值或操作時間開銷所在的滑動窗口確定待重 啟構件陷入衰退態的時間,將該時間作為重啟時刻;對於因自動操作失敗而被列入觀測列表的待重啟構件,將重啟時刻設置為執行下一次 構件重啟操作的時間。
5.如權利要求4所述的方法,其特徵在於,確定待重啟構件及所述待重啟構件的重啟時刻後,根據重啟時刻相同的待重啟構件的 依附關係構造重啟鏈,在重啟時刻按照重啟鏈依次對待重啟構件進行重啟。
6.一種實現軟體抗衰的系統,其特徵在於,包括依次連接的操作日誌資料庫、日誌分 析模塊和重啟守護模塊,其中所述操作日誌資料庫用於從由構件組成的軟體系統中讀取並保存操作日誌;所述日誌分析模塊用於從所述操作日誌資料庫中讀取所述操作日誌,對所讀取的操作日誌進行統計分析,確定待重啟構件及所述待重啟構件的重啟時刻;所述重啟守護模塊用於在所述重啟時刻重啟所述待重啟構件。
7.如權利要求6所述的系統,其特徵在於,所述日誌分析模塊進行統計分析,確定待重 啟構件的具體過程包括將所述軟體系統的操作日誌按時間順序劃入不同的滑動窗口,形成滑動窗口序列;從操作頻率、操作時間開銷和自動操作結果三個維度對滑動窗口序列中的操作日誌進 行統計分析,確定列入並保留在觀測列表中的構件,記錄觀測列表中的構件進入觀測列表 的次數;當觀測列表中的某一構件進入觀測列表的次數大於一指定的觀測列表進入次數閾值 時,則確定該構件為待重啟構件。
8.如權利要求7所述的系統,其特徵在於,所述日誌分析模塊確定列入並保留在觀測 列表中的構件的過程包括當涉及某一構件的操作頻率或操作時間開銷在第一滑動窗口中高於操作頻率閾值或 操作時間開銷閾值時,則將該構件列入觀測列表中;如果該構件在下一個滑動窗口中的操 作頻率或操作時間開銷大於在第一滑動窗口中的操作頻率或操作時間開銷,並且大於系統 重啟以來該構件在已完成操作日誌分析的全部滑動窗口中的操作頻率或操作時間開銷的 數學期望或者經驗值時,則將該構件保留在觀測列表中,並將其進入觀測列表的次數加1 ;當涉及某一構件的自動操作結果在第一滑動窗口中為失敗時,則將該構件列入觀測列 表中;如果該構件在下一個滑動窗口中的自動操作結果仍為失敗時,則將該構件保留在觀 測列表中,並將其進入觀測列表的次數加1。
9.如權利要求8所述的系統,其特徵在於,所述操作日誌分析模塊確定所述待重啟構 件的重啟時刻的過程包括對於因操作頻率或操作時間開銷被列入觀測列表的待重啟構件,採用最小二乘法,將 滑動窗口的序列號和對應滑動窗口中的操作頻率或操作時間開銷作為最小二乘法的輸入, 預計操作頻率或操作時間開銷的變化趨勢,從變化趨勢中查找使待重啟構件陷入衰退態的 操作頻率值或操作時間開銷,根據該操作頻率值或操作時間開銷所在的滑動窗口確定待重 啟構件陷入衰退態的時間,將該時間作為重啟時刻;對於因自動操作失敗而被列入觀測列表的待重啟構件,將重啟時刻設置為執行下一次 構件重啟操作的時間。
10.如權利要求9所述的系統,其特徵在於,重啟守護模塊重啟所述待重啟構件時,根 據所述重啟時刻相同的待重啟構件的依附關係構造重啟鏈,在所述重啟時刻按照重啟鏈依 次對待重啟構件進行重啟。
全文摘要
本發明公開了一種實現軟體抗衰的方法,包括將軟體系統構件化,實現以構件組成軟體系統;對軟體系統的操作日誌進行統計分析,確定待重啟構件及待重啟構件的重啟時刻;在重啟時刻重啟待重啟構件。本發明通過對軟體系統進行構件化,軟體抗衰中對構件進行重啟,解決了基於時間的抗衰技術抗衰粒度較粗,對負載變化容忍性差的問題;本發明在實現上具有普適性,在執行抗衰的過程中,具有很低的抗衰成本,能夠幫助應用軟體的運營者減少系統意外停機時間,提高系統服務率,增加系統有效工作周期。
文檔編號G06F11/36GK101807167SQ20091000762
公開日2010年8月18日 申請日期2009年2月12日 優先權日2009年2月12日
發明者周豔, 張蓉, 文秀林, 李進, 田珂, 程聖宇 申請人:中興通訊股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀