梁軍科
摘要:oracle提供的統(tǒng)計報告工具方便了故障的處理,操作系統(tǒng)和中間件也各有自己的性能采集辦法。但面對長長的統(tǒng)計報告,如何能快速發(fā)現(xiàn)問題,面對排名在前的統(tǒng)計指標,到底是正常范圍,還是出現(xiàn)了故障。建立基線分析系統(tǒng)可以使這些問題變得一目了然,還可以促使管理員提高運維水平,給故障發(fā)現(xiàn),故障預警,趨勢分析提供支持。
關鍵詞:基線 性能優(yōu)化 oracle
中圖分類號:R319 文獻標識碼:A 文章編號:1007-9416(2016)05-0000-00
1 基線分析系統(tǒng)
1.1 基線是什么
基線是系統(tǒng)正常運行時的一些指標的集合,系統(tǒng)正常運行不能僅僅是剛上線運行時輕負載時的指標,應該是近期沒有業(yè)務模塊的增減,沒有負載變動情況下系統(tǒng)正常運行狀態(tài)下的指標集合。因此基線是一組動態(tài)變化的數(shù)據(jù)。對于基線的分析可以形成管理員的經(jīng)驗,而經(jīng)驗也可以加強對基線的理解,正確得出分析結(jié)果。
1.2 基線分析系統(tǒng)
一個動態(tài)基線分析系統(tǒng)如圖1所示,核心部分由基線數(shù)據(jù)采集,數(shù)據(jù)存儲,基線生成,問題發(fā)現(xiàn),問題展示組成。即使不用動態(tài)基線的系統(tǒng)平臺,手動分析也要包含這幾個功能。另外可增加支持基線生成的異常排除規(guī)則模塊,基線統(tǒng)計生成算法使基線生成更準確??蓴U展問題根源分析系統(tǒng),結(jié)合支持分析的指標關聯(lián)功能知識庫,展示問題的根源。運行數(shù)據(jù)還可支持趨勢分析,預警系統(tǒng)。
動態(tài)基線使用上述工具采集的數(shù)據(jù)為原始數(shù)據(jù),指標的統(tǒng)計數(shù)據(jù)不能簡單地由一個值代表,初步分為三部分,一個是運行時的平均值或眾數(shù),反映日常的運行情況;一個是由正常到異常的邊界值,表示系統(tǒng)即將出現(xiàn)故障;一個是代表資源能力的極值。如一個系統(tǒng)的IO響應時間指標,平均值是5ms,邊界值超過20ms會出現(xiàn)故障,而極值最快可能是2ms。
基線應該根據(jù)在某一環(huán)境下正常運行的數(shù)據(jù)生成,處理在異常情況的指標應該排除??梢愿鶕?jù)已有經(jīng)驗指定異常指標值,可以根據(jù)現(xiàn)實已發(fā)生的故障指定異常時間,也可以根據(jù)采集的數(shù)據(jù)自動判斷異常數(shù)據(jù)。用上述計算得出的正常數(shù)據(jù)生成基線時,可以選擇算法,如排除最大最小區(qū)間值,選擇平均數(shù)還是中位數(shù),眾數(shù)作為運行數(shù)據(jù)。
指標關聯(lián)知識庫用于輔助進行root cause的分析。當系統(tǒng)有問題時,往往是多個指標出現(xiàn)問題,表數(shù)據(jù)讀寫時間變長,log write超時,大量鎖等待出現(xiàn),事務增多,原因都可以歸類到IO問題,把指標歸為幾大類可以看得更清,更容易找到根本原因。而一個指標有問題,可以是幾個原因引起。多個指標可能最終歸結(jié)為一個原因。
1.3 手工運行基線分析
基線可以應用在數(shù)據(jù)庫系統(tǒng)中,也可以在操作系統(tǒng)或中間件中。可以用腳本采集,也可以用現(xiàn)有的工具采集數(shù)據(jù)。沒有基線分析平臺,也可以手工的方式運行。Oracle數(shù)據(jù)庫中已經(jīng)有了AWR進行數(shù)據(jù)采集,用dbms_workload_repository.create_baseline把選定的快照保存為基線數(shù)據(jù),用AWRDD把當前數(shù)據(jù)與基線數(shù)據(jù)進行對比,展示出系統(tǒng)中的問題。對問題的處理可以運行ADDM參考oracle給出的解決方案??梢跃帉懘鎯^程排除異常狀況,選取適合的快照,輔助基線的生成。可以編寫指標與模塊關聯(lián)的知識庫,對問題進行根源分析。
雖然有了基線指標,在oracle中比較容易發(fā)現(xiàn)問題和處理建議。但給出的問題和建議是否正確,只有理解了指標的具體含義才能進行正確的判斷。最初對于基線指標的理解可能不多,但是隨著對系統(tǒng)認識的加深,經(jīng)驗更加豐富,準確率也會提高。
2基線分析方法的應用
基線分析的方法可以進行故障應急處理。通過當前數(shù)據(jù)與基線數(shù)據(jù)的比對快速發(fā)現(xiàn)故障,有利于故障的快速定位,進行相應的處理;基線數(shù)據(jù)可用于運行情況分析,反映系統(tǒng)的運行狀態(tài),資源負載狀況,對一些惡化的指標重點監(jiān)測,更進一步進行趨勢分析,做到系統(tǒng)的可評估;基線分析可增加故障預警,當運行指標接近邊界值時就給出預警,先行進行性能的優(yōu)化,防患于未然。因此,基線分析對日常運維有很大的幫助。