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