李春生,周志鵬,張可佳,富 宇,劉 濤
(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163319)
目前油田的相關(guān)技術(shù)人員在利用地震數(shù)據(jù)處理軟件時(shí)所采用的有人工干預(yù)的靜態(tài)調(diào)度策略不具有動(dòng)態(tài)性,沒(méi)有考慮到軟件運(yùn)行的不同時(shí)期對(duì)節(jié)點(diǎn)的各種資源占用具有偏向性,因此可能會(huì)造成某些時(shí)刻部分節(jié)點(diǎn)的閑置或者部分節(jié)點(diǎn)負(fù)載等問(wèn)題。而這些大型軟件在運(yùn)行過(guò)程中會(huì)調(diào)用各個(gè)功能模塊,并且每次調(diào)用都會(huì)向許可服務(wù)器發(fā)出相應(yīng)的許可請(qǐng)求,并等待服務(wù)器響應(yīng)請(qǐng)求才會(huì)開(kāi)始調(diào)用該模塊。因此在軟件執(zhí)行過(guò)程中會(huì)產(chǎn)生大量的許可日志數(shù)據(jù)。通過(guò)利用數(shù)據(jù)挖掘相關(guān)技術(shù)對(duì)許可日志數(shù)據(jù)進(jìn)行處理就可以在一定程度上挖掘出一定業(yè)務(wù)數(shù)據(jù)量下軟件執(zhí)行過(guò)程中模塊的迭代規(guī)律,結(jié)合對(duì)節(jié)點(diǎn)上的資源監(jiān)控情況就可以預(yù)測(cè)出軟件執(zhí)行過(guò)程對(duì)節(jié)點(diǎn)資源的占用變化情況,為節(jié)點(diǎn)的動(dòng)態(tài)調(diào)度提供依據(jù)[1-3]。
該文使用Zabbix技術(shù)對(duì)許可日志文件以及節(jié)點(diǎn)的機(jī)器KPI數(shù)據(jù)(內(nèi)存、CPU利用率等)進(jìn)行監(jiān)控,再結(jié)合數(shù)據(jù)挖掘的兩種主要應(yīng)用技術(shù):關(guān)聯(lián)規(guī)則挖掘和時(shí)間序列分析來(lái)對(duì)地震數(shù)據(jù)處理軟件執(zhí)行過(guò)程中內(nèi)部模塊的迭代規(guī)律進(jìn)行挖掘[4-6]。
Zabbix是一個(gè)基于web界面的企業(yè)級(jí)開(kāi)源監(jiān)控解決方案,不僅支持對(duì)數(shù)萬(wàn)臺(tái)服務(wù)器、虛擬機(jī)和網(wǎng)絡(luò)設(shè)備的實(shí)時(shí)監(jiān)控,還支持對(duì)百萬(wàn)級(jí)監(jiān)控指標(biāo)的采集。Zabbix主要由Zabbix Server和Zabbix Agent兩個(gè)部分組成。它的主要工作原理是Zabbix Agent作為信息采集器部署在需要被采集的主機(jī)上,并將采集到的信息發(fā)送給Zabbix Server端,Zabbix Server端再將數(shù)據(jù)存儲(chǔ)在本地的MySQL數(shù)據(jù)庫(kù)中。此外Zabbix還提供十分簡(jiǎn)潔的web端進(jìn)行監(jiān)控信息的管理[7]。
關(guān)聯(lián)規(guī)則挖掘是指挖掘出一個(gè)事物與其他事物之間的相互關(guān)聯(lián)性和依存性。比如說(shuō),有趣的“尿布與啤酒”的故事,以美國(guó)沃爾瑪超市為背景做的顧客購(gòu)物車(chē)數(shù)據(jù)關(guān)聯(lián)分析。分析發(fā)現(xiàn)啤酒是跟尿布一起購(gòu)買(mǎi)最多的商品。這種關(guān)聯(lián)分析揭示了背后美國(guó)人的一種生活習(xí)慣,在美國(guó)年輕的父親經(jīng)常需要去超市購(gòu)買(mǎi)嬰兒尿布,與此同時(shí)他們會(huì)順手買(mǎi)些自己喜歡的啤酒。根據(jù)這種有趣的關(guān)聯(lián)規(guī)則,沃爾瑪超市將尿布和啤酒放到相鄰的位置,大大促進(jìn)了啤酒的銷(xiāo)量。將關(guān)聯(lián)規(guī)則挖掘應(yīng)用到油田地震數(shù)據(jù)處理軟件的模塊迭代規(guī)律挖掘中,可以分析出一定業(yè)務(wù)量下軟件執(zhí)行時(shí)各模塊之間的迭代規(guī)律變化。
時(shí)間序列分析是根據(jù)已有的歷史數(shù)據(jù)對(duì)未來(lái)可能出現(xiàn)的情況進(jìn)行預(yù)測(cè)。比如說(shuō),在今年7月份購(gòu)買(mǎi)華為Mate40的客戶(hù)很可能在未來(lái)半個(gè)月內(nèi)訂購(gòu)Mate40的手機(jī)殼。將時(shí)間序列分析應(yīng)用到油田地震數(shù)據(jù)處理軟件的模塊迭代規(guī)律挖掘中,可以分析出一定業(yè)務(wù)量下模塊的迭代隨時(shí)間的變化規(guī)律。
結(jié)合Zabbix技術(shù)、時(shí)間序列分析和關(guān)聯(lián)規(guī)則挖掘構(gòu)建油田數(shù)據(jù)處理軟件的模塊迭代規(guī)律挖掘模型。模型分為數(shù)據(jù)層、控制層和應(yīng)用層三個(gè)層次,具體如圖1所示。
圖1 實(shí)驗(yàn)?zāi)P?/p>
利用Zabbix技術(shù)對(duì)地震數(shù)據(jù)處理軟件執(zhí)行過(guò)程中產(chǎn)生的許可日志數(shù)據(jù)以及運(yùn)行軟件的節(jié)點(diǎn)的機(jī)器KPI數(shù)據(jù)進(jìn)行監(jiān)控和采集,將采集到的源數(shù)據(jù)存到數(shù)據(jù)庫(kù)中,為控制層做數(shù)據(jù)分析和規(guī)律挖掘提供業(yè)務(wù)數(shù)據(jù)。從數(shù)據(jù)層得到源數(shù)據(jù)后對(duì)其做數(shù)據(jù)預(yù)處理,過(guò)濾掉無(wú)實(shí)際意義的數(shù)據(jù),再結(jié)合關(guān)聯(lián)規(guī)則挖掘和時(shí)間序列分析對(duì)油田地震數(shù)據(jù)處理軟件執(zhí)行過(guò)程中內(nèi)部的模塊迭代規(guī)律進(jìn)行挖掘,旨在挖掘出各模塊隨時(shí)間變化的迭代規(guī)律,預(yù)測(cè)軟件執(zhí)行的生命周期及各時(shí)期所需資源情況,為應(yīng)用層實(shí)現(xiàn)節(jié)點(diǎn)資源的動(dòng)態(tài)調(diào)度做依據(jù)[8-9]。
實(shí)驗(yàn)以WGC軟件處理10 G的地震數(shù)據(jù)為例,利用Zabbix對(duì)其許可日志以及機(jī)器KPI數(shù)據(jù)進(jìn)行監(jiān)控和采集。
圖2是對(duì)WGC軟件的許可日志文件wg-lmgrd_server的采集配置圖。采集方式為Zabbix Agent主動(dòng)采集,利用Zabbix的log函數(shù):log[file,
圖2 Zabbix采集WGC許可日志配置圖
圖3是運(yùn)行WGC軟件的某個(gè)節(jié)點(diǎn)的資源監(jiān)控配置圖。其中包括Available memory(可用內(nèi)存)、Total memory(總內(nèi)存)、Free swap space in %(剩余交換空間)以及Processor load 5 min average per core(五分鐘平均CPU負(fù)載)。
圖3 節(jié)點(diǎn)資源監(jiān)控配置圖
圖4是運(yùn)行WGC地震數(shù)據(jù)處理軟件的某個(gè)節(jié)點(diǎn)的可用內(nèi)存的監(jiān)控?cái)?shù)據(jù)折線圖。數(shù)據(jù)表明,在0:00-8:00節(jié)點(diǎn)的可用內(nèi)存為182.9 G,8:00-18:10節(jié)點(diǎn)的可用內(nèi)存逐漸降低到182.4 G,而18:00-20:00間,可用內(nèi)存迅速攀升到183.2 G。
圖4 節(jié)點(diǎn)內(nèi)存數(shù)據(jù)監(jiān)控折線圖
由于WGC的許可日志數(shù)據(jù)量龐大,且包含各模塊與許可服務(wù)器之間的許可請(qǐng)求測(cè)試數(shù)據(jù)等無(wú)實(shí)際意義的信息,因此需要對(duì)許可日志數(shù)據(jù)進(jìn)行預(yù)處理[10]。
通過(guò)grep命令對(duì)包含UNSUPPORT或DENIED等字符串的無(wú)效信息進(jìn)行過(guò)濾,并將數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫(kù)中,再利用sql語(yǔ)句根據(jù)對(duì)許可請(qǐng)求(out)及許可響應(yīng)(in)之間時(shí)間差是否大于1秒來(lái)過(guò)濾掉許可請(qǐng)求的測(cè)試數(shù)據(jù)。最終獲取到如表1所示的結(jié)構(gòu)化許可日志數(shù)據(jù)。
表1 結(jié)構(gòu)化許可日志數(shù)據(jù)片段
數(shù)據(jù)表示的具體含義為,用戶(hù)qiancq在wgcn042節(jié)點(diǎn)上運(yùn)行WGC軟件,該軟件于20:17:50向許可服務(wù)器發(fā)送請(qǐng)求,申請(qǐng)調(diào)用”D3”模塊,于20:18:34向服務(wù)器歸還”D3”模塊的使用許可。
對(duì)數(shù)據(jù)預(yù)處理得到的結(jié)構(gòu)化許可日志數(shù)據(jù)進(jìn)行時(shí)間序列分析以及模塊間的關(guān)聯(lián)規(guī)則分析[11]。數(shù)據(jù)分析流程如圖5所示。
圖5 數(shù)據(jù)分析流程
根據(jù)數(shù)據(jù)預(yù)處理得到的用戶(hù)qiancq在各個(gè)節(jié)點(diǎn)上運(yùn)行WGC軟件執(zhí)行地震數(shù)據(jù)處理任務(wù)所產(chǎn)生的結(jié)構(gòu)化許可日志數(shù)據(jù),首先找出軟件執(zhí)行中過(guò)程中節(jié)點(diǎn)的使用順序[12]。具體如[wgcn096, wgcn064,wgcn066, wgcn069, wgcn097,…,wgcn005, wgcn121, wgcn118]共92個(gè)節(jié)點(diǎn)。再挖掘出各節(jié)點(diǎn)中具體的模塊迭代規(guī)律。這里以wgcn096節(jié)點(diǎn)為例,利用sql語(yǔ)句得出該節(jié)點(diǎn)執(zhí)行任務(wù)時(shí)各模塊的迭代規(guī)律,如圖6所示。
從圖6中可以發(fā)現(xiàn),wgcn096節(jié)點(diǎn)在執(zhí)行任務(wù)時(shí)主要是“cp”、“FQC”、“FOU”、“D3”四個(gè)模塊在迭代,而且迭代存在一定的規(guī)律,比如都是從“cp”開(kāi)始“D3”結(jié)束,中間“FQC”和“FOU”模塊進(jìn)行迭代,且存在一些迭代方式重復(fù)出現(xiàn)的情況[13-14]。將各種迭代方式用ASCII碼進(jìn)行表示,就可以將wgcn096節(jié)點(diǎn)執(zhí)行任務(wù)時(shí)的模塊迭代規(guī)律表示成:[A, B, A,…, A, G]。將規(guī)則保存到規(guī)律庫(kù)中,再挖掘下一個(gè)節(jié)點(diǎn)執(zhí)行任務(wù)時(shí)的模塊迭代規(guī)律,重復(fù)該操作就可以挖掘出當(dāng)前實(shí)驗(yàn)條件下WGC軟件執(zhí)行過(guò)程中模塊的迭代規(guī)律。具體規(guī)律如圖7所示。
圖6 節(jié)點(diǎn)wgcn096中模塊迭代規(guī)律
可以清楚地看到,WGC軟件執(zhí)行時(shí)模塊的迭代規(guī)律主要分為三類(lèi),第一類(lèi)是“A”、“B”等迭代方式出現(xiàn)的頻率較高的規(guī)律,且模塊迭代次數(shù)適中。第二類(lèi)是從節(jié)點(diǎn)wgcn117到節(jié)點(diǎn)wgcn107,可以看出在這種類(lèi)型的迭代規(guī)律中模塊的迭代次數(shù)較第一類(lèi)相比明顯增多,且都以“m”或“l(fā)”兩種迭代方式開(kāi)始,中間以“A”、“B”兩類(lèi)迭代方式交互,最后以“F”、“O”等迭代方式結(jié)尾。第三類(lèi)是從節(jié)點(diǎn)wgcn043到節(jié)點(diǎn)wgcn118??梢钥闯鲈谶@種類(lèi)型的模塊迭代規(guī)律中迭代頻率明顯減少,到最終只有“U”和“,”兩種迭代方式在進(jìn)行[15]。
將這三類(lèi)模塊迭代規(guī)律所對(duì)應(yīng)的節(jié)點(diǎn)劃分為Ⅰ、Ⅱ、Ⅲ三類(lèi),再利用Zabbix監(jiān)控這三類(lèi)節(jié)點(diǎn)的資源消耗情況。根據(jù)統(tǒng)計(jì)得出各類(lèi)節(jié)點(diǎn)的內(nèi)存資源消耗折線圖,如圖8所示。
圖8 內(nèi)存消耗折線圖
可以看出Ⅰ類(lèi)節(jié)點(diǎn)所占內(nèi)存比較均衡,基本保持在50%左右。Ⅱ類(lèi)節(jié)點(diǎn)所占內(nèi)存較高,基本保持在70%左右,但這類(lèi)節(jié)點(diǎn)所占內(nèi)存的峰值時(shí)間較短。而第Ⅲ類(lèi)節(jié)點(diǎn)內(nèi)存消耗較低,僅占到總內(nèi)存的20%左右。
根據(jù)以上對(duì)用戶(hù)qiancq在92個(gè)節(jié)點(diǎn)上運(yùn)用WGC軟件處理10 G地震數(shù)據(jù)的數(shù)據(jù)分析結(jié)果來(lái)看,在10 G的作業(yè)量下,WGC軟件執(zhí)行時(shí),其中的模塊迭代方式存在一定規(guī)律,且將模塊迭代規(guī)律對(duì)應(yīng)到節(jié)點(diǎn)上主要分為三類(lèi)。第一類(lèi)是以“A”、“B”等模塊迭代方式居多的類(lèi)型,結(jié)合資源的監(jiān)控?cái)?shù)據(jù)來(lái)看,這種類(lèi)型所占節(jié)點(diǎn)內(nèi)存資源適中,且內(nèi)存占用峰值持續(xù)時(shí)間較長(zhǎng)。第二類(lèi)是以“l(fā)”、“m”迭代方式開(kāi)始,以“A”和“B”迭代方式多次迭代后以“O”、“F”等迭代方式結(jié)尾的類(lèi)型,結(jié)合資源的監(jiān)控?cái)?shù)據(jù)來(lái)看,這種類(lèi)型對(duì)內(nèi)存的需求較高。第三類(lèi)是以“U”和“,”這兩種迭代方式低頻交替的類(lèi)型,結(jié)合資源監(jiān)控?cái)?shù)據(jù)來(lái)看,這種類(lèi)型對(duì)內(nèi)存的需求較低。
結(jié)合以上分析,可以一定程度上給執(zhí)行油田地震數(shù)據(jù)處理任務(wù)的節(jié)點(diǎn)的動(dòng)態(tài)調(diào)度做理論依據(jù)。比如在WGC軟件執(zhí)行中期可以根據(jù)軟件執(zhí)行時(shí)間以及監(jiān)控的資源推測(cè)出哪些節(jié)點(diǎn)上的模迭代規(guī)律屬于哪一種類(lèi)型,判斷它接下來(lái)會(huì)占用多少內(nèi)存,任務(wù)將在多久后結(jié)束,是否可以給該節(jié)點(diǎn)分配其他的任務(wù)等。
從油田的地震數(shù)據(jù)處理軟件執(zhí)行任務(wù)時(shí)節(jié)點(diǎn)資源的固定劃分這一實(shí)際問(wèn)題出發(fā),提出了通過(guò)監(jiān)控軟件執(zhí)行時(shí)生成的許可日志和軟件執(zhí)行過(guò)程中所消耗的資源情況來(lái)探究一定業(yè)務(wù)量下軟件執(zhí)行過(guò)程中其內(nèi)部的模塊迭代規(guī)律和資源占用情況,進(jìn)而為節(jié)點(diǎn)資源實(shí)現(xiàn)動(dòng)態(tài)調(diào)度提供依據(jù)。以WGC軟件為實(shí)驗(yàn)對(duì)象驗(yàn)證了這一方案的可行性。
但是該文只是粗淺地將模塊的迭代規(guī)律分成了三種類(lèi)型,沒(méi)有對(duì)規(guī)律進(jìn)行更深層次的探討。而且以WGC軟件為背景做的實(shí)驗(yàn)只是從內(nèi)存資源的角度進(jìn)行分析,若結(jié)合CPU利用率、磁盤(pán)剩余空間等節(jié)點(diǎn)資源等作為動(dòng)態(tài)調(diào)度的依據(jù)會(huì)使調(diào)度更加精準(zhǔn)。此外,挖掘出的一定業(yè)務(wù)量下的模塊迭代規(guī)律和實(shí)際工作中無(wú)法確定的作業(yè)量下的實(shí)際模塊迭代規(guī)律的相關(guān)度是比較重要的一點(diǎn),有待后續(xù)做更多的實(shí)驗(yàn)進(jìn)行探究。