張銀鐵, 王麗君, 萬(wàn)晶
(國(guó)網(wǎng)電力科學(xué)研究有限公司 信息系統(tǒng)集成分公司, 江蘇 南京 211106)
信息系統(tǒng)在運(yùn)行過(guò)程中,各種運(yùn)行指標(biāo)一定是隨著使用人員、時(shí)間階段、業(yè)務(wù)變化而變化的,運(yùn)維過(guò)程中最大的難點(diǎn)就是無(wú)法準(zhǔn)確掌握運(yùn)行的歷史規(guī)律,指標(biāo)高低并不能直接說(shuō)明系統(tǒng)運(yùn)行是否穩(wěn)定。在運(yùn)行監(jiān)控中常見的監(jiān)控辦法是設(shè)置監(jiān)控閥值,但是監(jiān)控閥值是很難設(shè)定的,指標(biāo)高并不能說(shuō)明系統(tǒng)運(yùn)行就一定有問(wèn)題,指標(biāo)低也不能說(shuō)明系統(tǒng)運(yùn)行沒(méi)有問(wèn)題。最合理的辦法是計(jì)算出系統(tǒng)在不同時(shí)間階段的穩(wěn)定運(yùn)行狀態(tài),動(dòng)態(tài)判斷每一時(shí)刻與穩(wěn)定狀態(tài)的差異,進(jìn)而掌握系統(tǒng)穩(wěn)定之間的差異。
在信息系統(tǒng)運(yùn)行過(guò)程中,需要監(jiān)控的指標(biāo)是非常多的,包括CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等多個(gè)類別,每一個(gè)類別又可以細(xì)分為多個(gè)二級(jí)、三級(jí)等子類,例如CPU的運(yùn)行狀態(tài)既有總負(fù)載情況,也有分core負(fù)載狀態(tài),每一個(gè)狀態(tài)又可以再細(xì)分為sys負(fù)載、user負(fù)載和IO等待等。監(jiān)控?cái)?shù)據(jù)是隨著時(shí)間進(jìn)行記錄的,這些歷史數(shù)據(jù)是監(jiān)控閥值設(shè)定的基礎(chǔ),比如CPU負(fù)載過(guò)高時(shí)容易造成宕機(jī),所以設(shè)置閥值在90%等,預(yù)留處置時(shí)間。常見的閥值設(shè)置是通過(guò)歷史數(shù)據(jù)判斷最高狀態(tài),當(dāng)最高狀態(tài)都不超過(guò)80%,設(shè)置閥值為90%就并不合理了。
常見的解決辦法有兩種,一是極值判斷,二是方差分析。
(1) 機(jī)制判斷的問(wèn)題
取歷史一定周期的監(jiān)控?cái)?shù)據(jù),例如CPU狀態(tài)每分鐘記錄一個(gè)監(jiān)控狀態(tài),就有一天1 440個(gè)指標(biāo),一周就有10 080個(gè)指標(biāo),計(jì)算其中指標(biāo)的最高值、最低值,超過(guò)最高或低于最低都是閥值的判斷標(biāo)準(zhǔn)。這種判斷最大的問(wèn)題是系統(tǒng)運(yùn)行是有實(shí)際差異的,白天的狀態(tài)一定高于夜間,工作日狀態(tài)一般也是高于非工作日狀態(tài)的,特殊調(diào)度時(shí)負(fù)載也會(huì)明顯高于普通狀態(tài)的,極限狀態(tài)并不能說(shuō)明極限范圍內(nèi)就一定沒(méi)有問(wèn)題,并不能說(shuō)明系統(tǒng)在區(qū)間范圍內(nèi)就是穩(wěn)定的。
(2) 方差分析的問(wèn)題
方差分析法是將上述指標(biāo)進(jìn)行統(tǒng)計(jì)計(jì)算,尋找到99%指標(biāo)所處的區(qū)間,為了加強(qiáng)監(jiān)控力度,甚至可以尋找到95%指標(biāo)所在的區(qū)間作為監(jiān)控閥值,可以一定程度上解決極限判斷的問(wèn)題。但是方差分析也存在一個(gè)問(wèn)題,系統(tǒng)運(yùn)行本身是不可能按照一個(gè)固定模式進(jìn)行得分,負(fù)載都是動(dòng)態(tài)變化的,或持續(xù)在增長(zhǎng)、或持續(xù)有下降,樣本中原本較低的數(shù)值也并不一定就是有問(wèn)題的,是系統(tǒng)狀態(tài)動(dòng)態(tài)變化的過(guò)程,例如系統(tǒng)用戶在持續(xù)增加,一段時(shí)間的前后負(fù)載都是正常的,高低之差并不能說(shuō)明系統(tǒng)存在問(wèn)題。
通過(guò)上述分析可知,判斷出系統(tǒng)的穩(wěn)定狀態(tài)才能準(zhǔn)確地掌握動(dòng)態(tài)閥值的設(shè)置條件,可以參考數(shù)據(jù)集中度進(jìn)行判斷。在數(shù)據(jù)統(tǒng)計(jì)中常見的方法是通過(guò)平均值反應(yīng)數(shù)據(jù)的集中程度。但是平均值也是有問(wèn)題的,每天的1 440個(gè)分鐘指標(biāo)是不能區(qū)分不同時(shí)刻業(yè)務(wù)差異的,需要的是判斷計(jì)算周期內(nèi)每一個(gè)時(shí)刻的穩(wěn)定狀態(tài),例如每天8:00這個(gè)時(shí)刻在過(guò)去一個(gè)月的監(jiān)控記錄,計(jì)算出8:00這個(gè)時(shí)刻如果正常的理論穩(wěn)定指標(biāo)值,這個(gè)值可能是平均值也可能不是平均值。因此,假設(shè)一種系統(tǒng)在每一個(gè)時(shí)刻都存在一個(gè)穩(wěn)定狀態(tài)值,這個(gè)值可以使每一天這個(gè)時(shí)刻的運(yùn)行值都是圍繞這個(gè)穩(wěn)定運(yùn)行狀態(tài)在運(yùn)行的,即穩(wěn)定狀態(tài)值與每天同一個(gè)時(shí)刻樣本中所有指標(biāo)之間的差值之和是最小的,如式(1)。
(1)
其中,f(x)表示樣本同時(shí)刻每一個(gè)值與理論穩(wěn)定值之間的差值之和;x表示樣本中種同時(shí)刻每一個(gè)時(shí)刻的監(jiān)控歷史記錄值;X表示同時(shí)刻x樣本的平均值;a表示修正平均值的修正值,即X+a是計(jì)算時(shí)刻歷史記錄中理論穩(wěn)定運(yùn)行的狀態(tài)值;n表示樣本中這個(gè)時(shí)刻的數(shù)據(jù)量,即為計(jì)算的樣本歷史天數(shù)。
通過(guò)絕對(duì)值函數(shù)特性可知,f(x)是一個(gè)隨著x不斷變化的值,并且是一個(gè)始終大于零的數(shù)值,通過(guò)導(dǎo)函數(shù)可知f(x)存在最小值,如圖1所示。
圖1 趨勢(shì)判斷示意
樣本值x都是已知的,而修正值a是不確定的,因此將f(x)自變量變?yōu)閍,即可計(jì)算得出修正值a在某數(shù)值時(shí),可以使得f(x)最小,計(jì)算每一指標(biāo)、每一時(shí)刻在樣本周期中的理論穩(wěn)定狀態(tài),如式(2)。
(2)
其中,f(x)表示樣本中每一個(gè)值與理論穩(wěn)定值之間的距離和;x表示修正平均值的穩(wěn)定修正值,即X+x是計(jì)算時(shí)刻歷史記錄中理論穩(wěn)定運(yùn)行的狀態(tài)值;xi表示樣本中每一個(gè)時(shí)刻的監(jiān)控歷史記錄值;X表示xi樣本的平均值;n表示樣本中這個(gè)時(shí)刻的數(shù)據(jù)量,即為計(jì)算的樣本歷史天數(shù)。
通過(guò)上述分析可知存在一個(gè)修正平均值的值,可以得到某時(shí)刻的理論穩(wěn)定運(yùn)行狀態(tài),這個(gè)時(shí)刻的所有監(jiān)控記錄都應(yīng)該圍繞這個(gè)值在運(yùn)行,也是一種反應(yīng)樣本集中度的數(shù)值,只不過(guò)不是平均值等常見統(tǒng)計(jì)數(shù)值,是一種修正后的數(shù)值。因?yàn)樯鲜龊瘮?shù)是一個(gè)絕對(duì)值函數(shù),并且固定參數(shù)是隨著樣本不斷變化的,因此將上述函數(shù)進(jìn)行格式轉(zhuǎn)換,便于進(jìn)行絕對(duì)值判斷[3-5],如式(3)、式(4)。
(3)
(4)
因?yàn)閤i和X在樣本確定的情況下都是固定值,所以將xi-X記作xi,得到式(5)。
(5)
其中,f(x)表示需要得到最小值;x表示f(x)最小時(shí)的x變量;xi表示樣本確定后的固定參數(shù)。將公式轉(zhuǎn)換為求得絕對(duì)值函數(shù)最小時(shí)的x值,如式(6)。
f(x)=|x-x1|+|x-x2|+…+|x-xn|
(6)
轉(zhuǎn)換后的公式可知f(x)最小狀態(tài)與n的數(shù)值是有關(guān)聯(lián)關(guān)系的,因此區(qū)分兩種情況分別計(jì)算判斷。
(1)n=2k時(shí)
設(shè)ak |x-a1|+|x-a2k|≥a2k-a1 (7) 當(dāng)且僅當(dāng)x∈(a1,a2k)等號(hào)成立,如式(8)。 |x-a2|+|x-a2k-1|≥a2k-1-a2 (8) 當(dāng)且僅當(dāng)x∈(a2,a2k-1)等號(hào)成立,依次類推得到式(9)。 |x-ak|+|x-ak+1|≥ak+1-ak (9) 當(dāng)且僅當(dāng)x∈(ak,ak+1)成立,(ak,ak+1)是各組合區(qū)間的共有子區(qū)間,所以當(dāng)x∈(ak,ak+1)時(shí),各等號(hào)成立,才能使f(x)達(dá)到最小值。 (2)n=2k-1時(shí),有式(10)。 |x-a1|+|x-a2k-1|≥a2k-1-a1 (10) 當(dāng)且僅當(dāng)x∈(a1,a2k-1)成立,有式(11)。 |x-a2|+|x-a2k-2|≥a2k-2-a2 (11) 當(dāng)且僅當(dāng)x∈(a2,a2k-2)成立,依次類推得到|x-ak|≥0,當(dāng)且僅當(dāng)x=ak時(shí)等號(hào)成立,x=ak是以上各區(qū)間的公共元素,所以此時(shí)f(x)達(dá)到最小值。 (3) 計(jì)算結(jié)論,如式(12)。 (12) 求x為多少時(shí),f(x)最小,即此時(shí)修正值可以修正平均值,得到系統(tǒng)運(yùn)行指標(biāo)的理論穩(wěn)定狀態(tài)。 當(dāng)n=2k時(shí),x∈(xk,xk+1),f(x)最小。 當(dāng)n=2k-1時(shí),x=xk,f(x)最小。 假定某時(shí)刻監(jiān)控指標(biāo)是一個(gè)圍繞10數(shù)值上下浮動(dòng)的,即10是理論上穩(wěn)定的運(yùn)行狀態(tài),從兩個(gè)方面驗(yàn)證上述穩(wěn)定狀態(tài)修正值的計(jì)算合理性。分為兩個(gè)維度驗(yàn)證,一是數(shù)據(jù)不存在異常數(shù)據(jù),是否可以得到穩(wěn)定修正值,二是數(shù)據(jù)存在異常數(shù)據(jù),驗(yàn)證是否可以得到穩(wěn)定修正值[8-10]。 (1) 無(wú)異常數(shù)據(jù)的驗(yàn)證 隨機(jī)樣本值為(10,9,10,11,10,9,10,11,10,9),得到驗(yàn)證數(shù)據(jù)表,如表1所示。 表1 無(wú)異常驗(yàn)證數(shù)據(jù) 由表1可知,樣本平均值為9.9,當(dāng)x=0.1時(shí)f(x)得到最小值5,即9.9+0.1=10,可以修正得到穩(wěn)定狀態(tài)值。 (2) 有異常數(shù)據(jù)的驗(yàn)證 隨機(jī)樣本值為(10,9,10,11,18,9,10,11,10,9),其中18是樣本中的異常數(shù)據(jù),得到驗(yàn)證數(shù)據(jù)表如表2所示。 表2 有異常驗(yàn)證數(shù)據(jù) 由表2可知,樣本平均值為10.888 9,當(dāng)x=-0.9時(shí)f(x)得到最小值12.055 56,即10.888 89-0.9=10,可以修正得到穩(wěn)定狀態(tài)值,穩(wěn)定狀態(tài)計(jì)算方法可以剔除出樣本中的異常數(shù)值。 首先,通過(guò)信息系統(tǒng)運(yùn)行的穩(wěn)定狀態(tài)計(jì)算方法可以知曉,這個(gè)穩(wěn)定的狀態(tài)只是一個(gè)理論中的穩(wěn)定狀態(tài),信息系統(tǒng)運(yùn)行是不存在絕對(duì)穩(wěn)定的,因此穩(wěn)定狀態(tài)只是用來(lái)判斷樣本中其他數(shù)據(jù)偏離情況的一個(gè)參考,偏離的多可以說(shuō)明此時(shí)刻這個(gè)樣本是存在異常的,是需要重點(diǎn)進(jìn)行排查,但不能說(shuō)是存在故障。 其次,穩(wěn)定狀態(tài)計(jì)算方法受限于樣本的數(shù)量,奇偶數(shù)量下是存在一定誤差可能的,只有樣本數(shù)量足夠大才能保障穩(wěn)定狀態(tài)的可信度不斷提升,這又與某一時(shí)刻樣本的數(shù)量限制產(chǎn)生矛盾,畢竟同一時(shí)刻的樣本值一年也只有365個(gè),如果一年中發(fā)生系統(tǒng)大的檢修,還要對(duì)樣本進(jìn)行分組,所以穩(wěn)定狀態(tài)只是理論值,是用來(lái)輔助判斷集中趨勢(shì)的參考,是動(dòng)態(tài)閥值的參考。 最后,系統(tǒng)如果不存在穩(wěn)定狀態(tài),例如是一種持續(xù)增長(zhǎng)負(fù)載的狀態(tài),則計(jì)算得出的理論穩(wěn)定值也只是這一個(gè)變化過(guò)程的中間狀態(tài),這時(shí)就需要將樣本進(jìn)行分組處理,檢查穩(wěn)定狀態(tài)的變化情況,即可判斷系統(tǒng)的變化趨勢(shì)。 信息系統(tǒng)的運(yùn)行如同人體的各項(xiàng)生理指標(biāo),例如血常規(guī)等指標(biāo)項(xiàng),都需要一個(gè)明確的正常穩(wěn)定狀態(tài)值,輔助人員或人工智能判斷指標(biāo)與穩(wěn)定狀態(tài)的偏離情況,才能動(dòng)態(tài)準(zhǔn)確地掌握系統(tǒng)的歷史規(guī)律,不同系統(tǒng)不同指標(biāo)通過(guò)歷史數(shù)據(jù)都可以得到私有的穩(wěn)定狀態(tài)值,但是這種穩(wěn)定狀態(tài)只是理論狀態(tài),只是輔助判斷時(shí)進(jìn)行動(dòng)態(tài)監(jiān)控的參考,不應(yīng)該作為絕對(duì)的監(jiān)控閥值使用。2.3 數(shù)據(jù)驗(yàn)證
3 穩(wěn)定狀態(tài)使用技巧
4 總結(jié)