欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種資源調(diào)度方法及裝置與流程

文檔序號(hào):11829986閱讀:292來源:國知局
一種資源調(diào)度方法及裝置與流程

本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,尤其涉及一種資源調(diào)度方法及裝置。



背景技術(shù):

信息技術(shù)已成為電信行業(yè)至關(guān)重要的一種生產(chǎn)力,海量信息的管理和運(yùn)營需要強(qiáng)大的業(yè)務(wù)系統(tǒng)支撐。業(yè)務(wù)系統(tǒng)的穩(wěn)定性會(huì)直接影響到客戶的信任度和滿意度,如何掌握數(shù)據(jù)庫資源使用規(guī)律,合理有效地利用空閑時(shí)段,緩解業(yè)務(wù)高峰,是業(yè)務(wù)支撐部門其中一項(xiàng)十分重要的職責(zé)。

現(xiàn)有技術(shù)中,調(diào)度各模塊任務(wù)的方法主要有如下兩種:

1)通過業(yè)務(wù)系統(tǒng)的操作系統(tǒng)或數(shù)據(jù)庫的定時(shí)任務(wù)實(shí)現(xiàn)。具體地,數(shù)據(jù)庫管理員(DBA,DataBase Administrator)根據(jù)經(jīng)驗(yàn)判斷,某時(shí)段較為空閑,剩余資源可以執(zhí)行某個(gè)任務(wù),于是將該任務(wù)以指定時(shí)間執(zhí)行的方式配置到定時(shí)任務(wù)中,由操作系統(tǒng)或數(shù)據(jù)庫調(diào)度。

2)手工執(zhí)行。具體地,DBA發(fā)現(xiàn)數(shù)據(jù)庫目前較為空閑,于是手工啟動(dòng)任務(wù)并值守至其結(jié)束,在這種情況下,當(dāng)有業(yè)務(wù)高峰,數(shù)據(jù)庫壓力較大時(shí),需要手工殺死異常的任務(wù)進(jìn)程,以確保業(yè)務(wù)處理進(jìn)程能獲得所需資源。

從上面的描述中可以看出,目前調(diào)度各模塊任務(wù)的方式主要依靠人工來實(shí)現(xiàn),這樣就會(huì)出現(xiàn)資源調(diào)度不及時(shí)、以及調(diào)度出錯(cuò)的問題。



技術(shù)實(shí)現(xiàn)要素:

為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明實(shí)施例提供一種資源調(diào)度方法及裝置。

本發(fā)明實(shí)施例提供了一種資源調(diào)度方法,包括:

利用當(dāng)前采集的性能指標(biāo),評(píng)估空閑資源;所述性能指標(biāo)表征數(shù)據(jù)庫資源的使用情況;根據(jù)所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載小于預(yù)設(shè)值時(shí),利 用預(yù)估的資源周期性消耗結(jié)果,進(jìn)行空閑資源周期性預(yù)估;

根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從隊(duì)列任務(wù)基線庫的任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù);所述任務(wù)隊(duì)列中的任務(wù)為與數(shù)據(jù)庫維護(hù)相關(guān)的任務(wù);

利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)。

上述方案中,所述利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)時(shí),所述方法還包括:

確定所述匹配出的待執(zhí)行任務(wù)有斷點(diǎn)時(shí),利用所述預(yù)估的周期性空閑資源從斷點(diǎn)處執(zhí)行所述匹配出的待執(zhí)行任務(wù)。

上述方案中,所述利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)的過程中,所述方法還包括:

根據(jù)利用下一次采集的性能指標(biāo)得出的所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載大于等于所述預(yù)設(shè)值時(shí),暫停任務(wù)的執(zhí)行,釋放相應(yīng)的資源,并保存暫停執(zhí)行的任務(wù)的中間狀態(tài)。

上述方案中,所述利用當(dāng)前采集的性能指標(biāo),評(píng)估空閑資源之前,所述方法還包括:

周期性采集并保存所述性能指標(biāo);

基于保存的所述性能指標(biāo),采用同比和/或環(huán)比的方式,得出資源消耗規(guī)律;

根據(jù)所述資源消耗規(guī)律,對(duì)所述資源周期性消耗進(jìn)行預(yù)估。

上述方案中,所述根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù),包括:

將所述任務(wù)隊(duì)列中的待執(zhí)行任務(wù)按照所述隊(duì)列任務(wù)基線庫中采集的順序進(jìn)行排序;

按照排序結(jié)果,并根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從所述任務(wù)隊(duì)列中依次匹配出所述待執(zhí)行任務(wù)。

上述方案中,所述根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從隊(duì)列任務(wù)基線庫的任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù)之前,所述方法還包括:

周期性從所述數(shù)據(jù)庫中采集并保存結(jié)構(gòu)化查詢語言(SQL,Structured Query Language)性能指標(biāo),并進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定;

確定保存的SQL性能指標(biāo)不存在對(duì)應(yīng)基線時(shí),在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中建立對(duì)應(yīng)的基線;或者,

確定保存的SQL性能指標(biāo)在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中存在對(duì)應(yīng)基線時(shí),采用同比的方式,確定SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率;并校正所述對(duì)應(yīng)基線的相關(guān)數(shù)據(jù)。

上述方案中,所述采用同比的方式,確定SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率,為:

基于當(dāng)日的頻次及上月同日的頻次,并結(jié)合保存的樣本數(shù),確定頻次的增長(zhǎng)率;并基于當(dāng)日的資源消耗指標(biāo)及上月同日的資源消耗指標(biāo),并結(jié)合保存的樣本數(shù),確定資源消耗指標(biāo)的增長(zhǎng)率。

本發(fā)明實(shí)施例還提供了一種資源調(diào)度裝置,包括:第一評(píng)估單元、第二評(píng)估單元、任務(wù)匹配單元及任務(wù)執(zhí)行單元;其中,

所述第一評(píng)估單元,用于利用當(dāng)前采集的性能指標(biāo),評(píng)估空閑資源;所述性能指標(biāo)表征數(shù)據(jù)庫資源的使用情況;

所述第二評(píng)估單元,用于根據(jù)所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載小于預(yù)設(shè)值時(shí),利用預(yù)估的資源周期性消耗結(jié)果,進(jìn)行空閑資源周期性預(yù)估;

所述任務(wù)匹配單元,用于根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從隊(duì)列任務(wù)基線庫的任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù);所述任務(wù)隊(duì)列中的任務(wù)為與數(shù)據(jù)庫維護(hù)相關(guān)的任務(wù);

所述任務(wù)執(zhí)行單元,用于利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)。

上述方案中,所述任務(wù)執(zhí)行單元,具體用于:確定所述匹配出的待執(zhí)行任務(wù)有斷點(diǎn)時(shí),利用所述預(yù)估的周期性空閑資源從斷點(diǎn)處執(zhí)行所述匹配出的待執(zhí)行任務(wù)。

上述方案中,所述任務(wù)執(zhí)行單元,還用于在利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)的過程中,根據(jù)利用下一次采集的性能指標(biāo)得出的 所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載大于等于所述預(yù)設(shè)值時(shí),暫停任務(wù)的執(zhí)行,釋放相應(yīng)的資源,并保存暫停執(zhí)行的任務(wù)的中間狀態(tài)。

上述方案中,所述裝置還包括:第三評(píng)估單元,用于周期性采集并保存所述性能指標(biāo);基于保存的所述性能指標(biāo),采用同比和/或環(huán)比的方式,得出資源消耗規(guī)律;并根據(jù)所述資源消耗規(guī)律,對(duì)所述資源周期性消耗進(jìn)行預(yù)估。

上述方案中,所述裝置還可以包括:基線庫建立單元,用于周期性從所述數(shù)據(jù)庫中采集并保存SQL性能指標(biāo),并進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定;

確定保存的SQL性能指標(biāo)不存在對(duì)應(yīng)基線時(shí),根據(jù),在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中建立對(duì)應(yīng)的基線;或者,

確定保存的SQL性能指標(biāo)在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中存在對(duì)應(yīng)基線時(shí),采用同比的方式,確定SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率;并校正所述對(duì)應(yīng)基線的相關(guān)數(shù)據(jù)。

本發(fā)明實(shí)施例提供的資源調(diào)度方法及裝置,利用當(dāng)前采集的性能指標(biāo),評(píng)估空閑資源;所述性能指標(biāo)表征數(shù)據(jù)庫資源的使用情況;根據(jù)所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載小于預(yù)設(shè)值時(shí),利用預(yù)估的資源周期性消耗結(jié)果,進(jìn)行空閑資源周期性預(yù)估;根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從隊(duì)列任務(wù)基線庫的任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù);利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù),如此,能及時(shí)、有效、準(zhǔn)確地進(jìn)行資源調(diào)度。

附圖說明

在附圖(其不一定是按比例繪制的)中,相似的附圖標(biāo)記可在不同的視圖中描述相似的部件。具有不同字母后綴的相似附圖標(biāo)記可表示相似部件的不同示例。附圖以示例而非限制的方式大體示出了本文中所討論的各個(gè)實(shí)施例。

圖1為本發(fā)明實(shí)施例一資源調(diào)度方法流程示意圖;

圖2為本發(fā)明實(shí)施例二中進(jìn)行數(shù)據(jù)庫系統(tǒng)的資源周期性消耗預(yù)估,建立隊(duì)列任務(wù)基線庫及應(yīng)用基線庫并校正基線庫中的對(duì)應(yīng)基線的流程示意圖;

圖3為本發(fā)明實(shí)施例二中快照庫示意圖;

圖4a為本發(fā)明實(shí)施例二中一天內(nèi)系統(tǒng)CPU及IO使用曲線示意圖;

圖4b為本發(fā)明實(shí)施例二中16點(diǎn)時(shí)系統(tǒng)CPU及IO使用曲線示意圖;

圖5為本發(fā)明實(shí)施例二中進(jìn)行資源動(dòng)態(tài)分配的流程示意圖;

圖6a為本發(fā)明實(shí)施例二中動(dòng)態(tài)調(diào)度優(yōu)化前系統(tǒng)CPU及IO使用曲線示意圖;

圖6b為本發(fā)明實(shí)施例二中動(dòng)態(tài)調(diào)度優(yōu)化后系統(tǒng)CPU及IO使用曲線示意圖;

圖7a為本發(fā)明實(shí)施例二中業(yè)務(wù)模塊數(shù)據(jù)庫CPU資源占比示意圖;

圖7b為本發(fā)明實(shí)施例二中業(yè)務(wù)模塊數(shù)據(jù)庫IO資源占比示意圖;

圖8為本發(fā)明實(shí)施例三資源調(diào)度裝置結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)地描述。

目前,調(diào)度各模塊任務(wù)的方式主要依靠人工來實(shí)現(xiàn),這樣就會(huì)出現(xiàn)資源調(diào)度不及時(shí)、以及調(diào)度出錯(cuò)的問題,具體表現(xiàn)在以下幾個(gè)方面:

1)通過操作系統(tǒng)或數(shù)據(jù)庫的定時(shí)任務(wù)實(shí)現(xiàn)的方案依賴于DBA長(zhǎng)期積累的維護(hù)經(jīng)驗(yàn),且無法預(yù)估和處理突發(fā)情況,比如在執(zhí)行某個(gè)任務(wù)時(shí),業(yè)務(wù)系統(tǒng)的業(yè)務(wù)突增,導(dǎo)致數(shù)據(jù)庫資源爭(zhēng)用;再比如:數(shù)據(jù)庫業(yè)務(wù)驟減,當(dāng)時(shí)卻并沒有配置定時(shí)的任務(wù)執(zhí)行,導(dǎo)致數(shù)據(jù)庫資源浪費(fèi)。

2)手工執(zhí)行的方案需要人工值守,依賴于DBA的技術(shù)水平及判斷,被殺死的任務(wù)進(jìn)程需要回滾,下次啟動(dòng)時(shí)無法從斷點(diǎn)繼續(xù)執(zhí)行,這樣容易造成數(shù)據(jù)狀態(tài)不一致等問題。

3)現(xiàn)有的兩種方案均無法獲取業(yè)務(wù)模塊及任務(wù)的資源消耗,很難感知程序邏輯導(dǎo)致的性能額外消耗問題。

4)現(xiàn)有的兩種方案中,對(duì)于未來計(jì)劃在數(shù)據(jù)庫上執(zhí)行的任務(wù)是否會(huì)超過該數(shù)據(jù)庫的負(fù)載是無法精確評(píng)估的。

基于此,在本發(fā)明的各種實(shí)施例中:利用當(dāng)前采集的性能指標(biāo),評(píng)估空閑 資源;所述性能指標(biāo)表征數(shù)據(jù)庫資源的使用情況;根據(jù)所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載小于預(yù)設(shè)值時(shí),利用預(yù)估的資源周期性消耗結(jié)果,進(jìn)行空閑資源周期性預(yù)估;根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從隊(duì)列任務(wù)基線庫的任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù);利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)。

實(shí)施例一

本發(fā)明實(shí)施例資源調(diào)度方法,如圖1所示,包括以下步驟:

步驟101:利用當(dāng)前采集的性能指標(biāo),評(píng)估空閑資源;所述性能指標(biāo)表征數(shù)據(jù)庫資源的使用情況;根據(jù)所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載小于預(yù)設(shè)值時(shí),利用預(yù)估的資源周期性消耗結(jié)果,進(jìn)行空閑資源周期性預(yù)估;

這里,所述性能指標(biāo)可以包括所述數(shù)據(jù)庫的中央處理器(CPU,Central Processing Unit)及輸入輸出(I/O,Input/Output)使用情況指標(biāo);相應(yīng)地,根據(jù)CPU指標(biāo)及IO使用情況指標(biāo),進(jìn)行空閑資源的評(píng)估。

當(dāng)所述數(shù)據(jù)庫的負(fù)載小于所述預(yù)設(shè)值時(shí),說明所述數(shù)據(jù)庫的負(fù)載較輕,這種情況下,可以根據(jù)需要執(zhí)行任務(wù)隊(duì)列中的待執(zhí)行任務(wù);當(dāng)根據(jù)所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載大于等于預(yù)設(shè)值時(shí),說明所述數(shù)據(jù)庫負(fù)載過重,這種情況下,為了保證高優(yōu)先級(jí)的業(yè)務(wù)(應(yīng)用)的正常運(yùn)行,如果有正在執(zhí)行的任務(wù)隊(duì)列中的任務(wù)時(shí),需要暫停任務(wù)的執(zhí)行,并釋放相應(yīng)的資源;此時(shí),需要保存暫停執(zhí)行的任務(wù)的中間狀態(tài),以保證后續(xù)執(zhí)行該任務(wù)時(shí)可以從斷點(diǎn)繼續(xù)執(zhí)行該任務(wù)。

其中,實(shí)際應(yīng)用時(shí),可以根據(jù)需要設(shè)置所述預(yù)設(shè)值。

在執(zhí)行本步驟之前,該方法還可以包括:

周期性采集并保存所述性能指標(biāo);

基于保存的所述性能指標(biāo),采用同比和/或環(huán)比的方式,得出資源消耗規(guī)律;

根據(jù)所述資源消耗規(guī)律,對(duì)所述資源周期性消耗進(jìn)行預(yù)估。

其中,根據(jù)所述預(yù)估的資源周期性消耗結(jié)果,可以估算出未來時(shí)間片里的空閑資源及對(duì)應(yīng)的時(shí)長(zhǎng)。

實(shí)際應(yīng)用時(shí),采集所述性能指標(biāo)的周期可以根據(jù)需要確定,比如可以是一個(gè)月等。

實(shí)際應(yīng)用時(shí),可以定時(shí)采集所述數(shù)據(jù)庫的性能數(shù)據(jù),從這些性能數(shù)據(jù)中提取CPU及IO的使用情況指標(biāo),并建立系統(tǒng)快照,從而實(shí)現(xiàn)周期性采集并保存所述性能指標(biāo);

相應(yīng)地,采用同比的方式,得出資源消耗規(guī)律具體可以是指:將每個(gè)月同一天,每天同一時(shí)刻的CPU及IO使用情況的快照相比對(duì),得出系統(tǒng)消耗規(guī)律。采用環(huán)比的方式,是指:將每天各時(shí)段的CPU及IO使用情況的快照相比對(duì),得出系統(tǒng)消耗規(guī)律。

步驟102:根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從隊(duì)列任務(wù)基線庫的任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù);

這里,所述任務(wù)隊(duì)列中的任務(wù)是指:需要執(zhí)行的任務(wù)。

所述根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù),具體包括:

將所述任務(wù)隊(duì)列中的待執(zhí)行任務(wù)按照所述隊(duì)列任務(wù)基線庫中采集的順序進(jìn)行排序;

按照排序結(jié)果,并根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從所述任務(wù)隊(duì)列中依次匹配出所述待執(zhí)行任務(wù)。

實(shí)際應(yīng)用時(shí),可以定時(shí)采集所述性能指標(biāo),相應(yīng)地,每次定時(shí)采集的性能指標(biāo)即為步驟101描述的當(dāng)前采集的性能指標(biāo);這種情況下,當(dāng)從任務(wù)隊(duì)列中未匹配出待執(zhí)行任務(wù)時(shí),則依據(jù)規(guī)則進(jìn)行下一次的定時(shí)采集性能指標(biāo)。

實(shí)際應(yīng)用時(shí),所述匹配出的待執(zhí)行任務(wù)的個(gè)數(shù)可以為一個(gè)以上。

在執(zhí)行本步驟之前,該方法還可以包括:

周期性從所述數(shù)據(jù)庫中采集并保存SQL性能指標(biāo),并進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定;

確定保存的SQL性能指標(biāo)在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中不存在對(duì)應(yīng)基線時(shí),在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中建立對(duì)應(yīng)的基線;

確定保存的SQL性能指標(biāo)在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中存在對(duì)應(yīng)基線時(shí),采用同比的方式,確定SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率;并校正所述對(duì)應(yīng)基線的相關(guān)數(shù)據(jù)。

其中,采集所述SQL性能指標(biāo)的周期可以根據(jù)需要確定,比如可以是:一個(gè)小時(shí)等。

實(shí)際應(yīng)用時(shí),在采集并保存SQL性能指標(biāo)時(shí),可以定時(shí)從數(shù)據(jù)庫的動(dòng)態(tài)性能視圖(V$SQL、V$SQL_PLAN等)中采集SQL性能數(shù)據(jù),從這些SQL性能數(shù)據(jù)中提取SQL性能指標(biāo),并建立業(yè)務(wù)模塊消耗快照,從而實(shí)現(xiàn)周期性從所述數(shù)據(jù)庫中采集并保存SQL性能指標(biāo)。其中,V$SQL可以反映存儲(chǔ)的SQL語句;V$SQL_PLAN可以反映存儲(chǔ)的SQL語句的執(zhí)行計(jì)劃。

所述SQL性能指標(biāo)可以反映執(zhí)行對(duì)應(yīng)的SQL時(shí),所消耗的時(shí)間、占用的資源情況,包括:相關(guān)的執(zhí)行計(jì)劃、表之間的鏈接情況等。所述SQL性能指標(biāo)可以包括:SQL的頻次及對(duì)應(yīng)的資源消耗指標(biāo);其中,所述資源消耗指標(biāo)可以包括:每次的CPU使用時(shí)間、每次的執(zhí)行時(shí)間、每次的邏輯讀、每次的物理讀。其中,邏輯讀是指從內(nèi)存里訪問數(shù)據(jù),物理讀是指從磁盤里訪問數(shù)據(jù)。

相應(yīng)地,采用同比的方式,確定SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率是指:將每個(gè)月同一天的業(yè)務(wù)模塊消耗快照相比對(duì),從而確定出SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率。

這里,在確定增長(zhǎng)率時(shí),基于當(dāng)日的頻次及上月同日的頻次,并結(jié)合保存的樣本數(shù),確定頻次的增長(zhǎng)率;并基于當(dāng)日的資源消耗指標(biāo)及上月同日的資源消耗指標(biāo),并結(jié)合保存的樣本數(shù),確定資源消耗指標(biāo)的增長(zhǎng)率。

進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定的目的是:形成對(duì)應(yīng)基線,以便當(dāng)基線庫中不存在對(duì)應(yīng)基線時(shí),在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中建立對(duì)應(yīng)的基線;或者,當(dāng)基線庫中存在對(duì)應(yīng)基線時(shí),確定增長(zhǎng)率及校正基線庫中對(duì)應(yīng)基線的相關(guān)數(shù)據(jù)。

在進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定時(shí),當(dāng)保存的SQL性能指標(biāo)未在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中(即保存的SQL性能指標(biāo)對(duì)應(yīng)的基線未在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中)時(shí),推送到未綁定業(yè)務(wù)標(biāo)簽列表中,由業(yè)務(wù)人員打上業(yè)務(wù) 標(biāo)簽后,再回存到基線庫,進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定;對(duì)于保存的SQL性能指標(biāo)已在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中的,則直接綁定業(yè)務(wù)標(biāo)簽,即進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定,并建立業(yè)務(wù)模塊消耗快照。

通過對(duì)比已存在的基線的相關(guān)數(shù)據(jù),即可確定保存的SQL性能指標(biāo)是否存在對(duì)應(yīng)基線。

所述應(yīng)用基線庫的作用是存儲(chǔ)多次在數(shù)據(jù)庫中運(yùn)行的相關(guān)任務(wù)信息,以便能從整體了解各任務(wù)占用的資源情況。

所述基線的作用可以理解為一個(gè)任務(wù)的基準(zhǔn)線,如果這個(gè)基準(zhǔn)線波動(dòng)很大,則說明該任務(wù)異常,需要修改、調(diào)整等。

實(shí)際應(yīng)用時(shí),所述校正所述對(duì)應(yīng)基線的相關(guān)數(shù)據(jù)的目的是:是為了減小對(duì)應(yīng)任務(wù)的基準(zhǔn)線,使得基準(zhǔn)線波動(dòng)盡可能的降低。

步驟103:利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)。

這里,在執(zhí)行本步驟時(shí),該方法還可以包括:

確定所述匹配出的待執(zhí)行任務(wù)有斷點(diǎn)時(shí),利用所述預(yù)估的周期性空閑資源從斷點(diǎn)處執(zhí)行所述匹配出的待執(zhí)行任務(wù);

相應(yīng)地,確定所述匹配出的待執(zhí)行任務(wù)沒有斷點(diǎn)時(shí),則直接啟動(dòng)匹配出的待執(zhí)行任務(wù)。

其中,可以根據(jù)是否保存有暫停執(zhí)行的任務(wù)的中間狀態(tài)來確定對(duì)應(yīng)待執(zhí)行任務(wù)是否有斷點(diǎn)。

在利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)的過程中,該方法還可以包括:

根據(jù)利用下一次采集的性能指標(biāo)得出的所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載大于等于所述預(yù)設(shè)值時(shí),暫停任務(wù)的執(zhí)行,釋放相應(yīng)的資源,并保存暫停執(zhí)行的任務(wù)的中間狀態(tài)。

本實(shí)施例提供的資源調(diào)度方法,利用當(dāng)前采集的性能指標(biāo),評(píng)估空閑資源;所述性能指標(biāo)表征數(shù)據(jù)庫資源的使用情況;根據(jù)所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載小于預(yù)設(shè)值時(shí),利用預(yù)估的資源周期性消耗結(jié)果,進(jìn)行空閑資源周 期性預(yù)估;根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從隊(duì)列任務(wù)基線庫的任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù);利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù),如此,能及時(shí)、有效、準(zhǔn)確地進(jìn)行資源調(diào)度。

另外,確定所述匹配出的待執(zhí)行任務(wù)有斷點(diǎn)時(shí),利用所述預(yù)估的周期性空閑資源從斷點(diǎn)處執(zhí)行所述匹配出的待執(zhí)行任務(wù),如此,能保證數(shù)據(jù)狀態(tài)的一致性,進(jìn)而節(jié)約了資源,提高資源的利用率。

實(shí)施例二

本實(shí)施例在實(shí)施例一的基礎(chǔ)上,詳細(xì)地描述資源調(diào)度方法。

首先,進(jìn)行數(shù)據(jù)庫系統(tǒng)的資源周期性消耗預(yù)估,建立隊(duì)列任務(wù)基線庫及應(yīng)用基線庫,并校正基線庫中的對(duì)應(yīng)基線。

具體地,進(jìn)行數(shù)據(jù)庫系統(tǒng)的資源周期性消耗預(yù)估時(shí),如圖2所示,應(yīng)用本實(shí)施例方法的設(shè)備的采集層中配置有采集數(shù)據(jù)庫系統(tǒng)性能數(shù)據(jù)的定時(shí)任務(wù),以便采集層對(duì)數(shù)據(jù)庫系統(tǒng)性能數(shù)據(jù)做定時(shí)采集;所述設(shè)備的分析層從所述采集層采集的性能數(shù)據(jù)中提取CPU及IO使用情況指標(biāo),建立系統(tǒng)快照,并將每個(gè)月同一天,每天同一時(shí)刻的CPU及IO的使用情況的快照相比對(duì),得出系統(tǒng)消耗規(guī)律(采用同比和環(huán)比的方式,得出系統(tǒng)消耗規(guī)律);所述設(shè)備的結(jié)果層根據(jù)所述系統(tǒng)消耗規(guī)律,對(duì)所述資源周期性消耗進(jìn)行預(yù)估;在預(yù)估時(shí),估算出未來時(shí)間片里,系統(tǒng)的空閑資源及對(duì)應(yīng)時(shí)長(zhǎng)。

建立隊(duì)列任務(wù)基線庫及應(yīng)用基線庫,并校正基線庫中的對(duì)應(yīng)基線時(shí),如圖2所示,所述采集層配置有采集數(shù)據(jù)庫SQL性能數(shù)據(jù)的定時(shí)任務(wù),以便所述采集層對(duì)數(shù)據(jù)庫SQL性能數(shù)據(jù)(也可以稱為SQL消耗)做定時(shí)采集;所述分析層從所述采集層采集的SQL性能數(shù)據(jù)中提取出SQL性能指標(biāo),對(duì)提取的SQL性能指標(biāo)進(jìn)行業(yè)務(wù)綁定,然后建立業(yè)務(wù)模塊消耗快照;所述分析層再判斷提取的SQL性能指標(biāo)是否存在對(duì)應(yīng)基線,如果存在,采用同比的方式,確定SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率;并校正所述對(duì)應(yīng)基線的相關(guān)數(shù)據(jù);如果不存在對(duì)應(yīng)基線,判斷提取的SQL性能指標(biāo)是否為隊(duì)列任務(wù),如果是,則在隊(duì)列任務(wù)基線庫中建立對(duì)應(yīng)的基線;如果不是隊(duì)列任務(wù),則在應(yīng)用基 線庫中建立對(duì)應(yīng)的基線,也就是說,對(duì)于已存在基線的業(yè)務(wù)模塊消耗,針對(duì)相關(guān)SQL進(jìn)行增長(zhǎng)率計(jì)算并修正基線,對(duì)于不存在基線的業(yè)務(wù)模塊消耗,則創(chuàng)建相應(yīng)的基線。

其中,所述分析層可以定時(shí)從數(shù)據(jù)庫的動(dòng)態(tài)性能視圖(V$SQL、V$SQL_PLAN等)中采集SQL性能數(shù)據(jù)。

在進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定時(shí),當(dāng)保存的SQL性能指標(biāo)未在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中時(shí),推送到未綁定業(yè)務(wù)標(biāo)簽列表中,由業(yè)務(wù)人員打上業(yè)務(wù)標(biāo)簽后,再回存到基線庫,進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定;對(duì)于保存的SQL性能指標(biāo)已在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中的,則直接綁定業(yè)務(wù)標(biāo)簽,即進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定。

從上面的描述中可以看出,本實(shí)施例需要建立專門的快照庫,用于存放各業(yè)務(wù)模塊的性能快照,如圖3所示,快照庫可以包含四大類指標(biāo):系統(tǒng)性能指標(biāo)、SQL性能指標(biāo)、SQL消耗增長(zhǎng)指標(biāo)、業(yè)務(wù)關(guān)聯(lián)指標(biāo);其中,

SQL性能指標(biāo):從數(shù)據(jù)庫中定時(shí)采集,主要從V$SQL、V$SQLAREA等動(dòng)態(tài)性能視圖里面獲取、計(jì)算;

SQL消耗增長(zhǎng)指標(biāo):通過計(jì)算各SQL性能指標(biāo)快照中各指標(biāo)的差值得到增長(zhǎng)率,用于記錄快照中SQL消耗的變化,主要用于校正基線中的相關(guān)數(shù)據(jù)的平均值;

系統(tǒng)性能指標(biāo):主要包括CPU中用戶(USER)使用部分所占百分比、以及每秒系統(tǒng)讀寫了多少個(gè)數(shù)據(jù)塊(即包括:CPU及IO使用情況指標(biāo));這些指標(biāo)可以從系統(tǒng)命令中獲取;

業(yè)務(wù)關(guān)聯(lián)指標(biāo):該指標(biāo)需要業(yè)務(wù)人員手工填寫。一般在所述設(shè)備上線后,批量初始化,對(duì)后期新增的SQL(如業(yè)務(wù)變更、新增業(yè)務(wù)等)則手工增量追加填寫即可。這里,對(duì)于穩(wěn)定的業(yè)務(wù)系統(tǒng),一般后期需要追加填寫的情況比較少見。建立業(yè)務(wù)關(guān)聯(lián)指標(biāo)快照的目的是:記錄大版本變更、新業(yè)務(wù)增加后的系統(tǒng)情況等,以便能從整體了解各業(yè)務(wù)的情況。

利用連續(xù)的系統(tǒng)快照,采用環(huán)比和同比的方式,可以得出如圖4a及圖4b 所示的趨勢(shì)圖,即得出系統(tǒng)消耗規(guī)律;根據(jù)圖4a及圖4b所示的趨勢(shì)圖,可以預(yù)估未來某時(shí)段資源使用情況及時(shí)長(zhǎng)。

具體地,某時(shí)段CPU使用情況預(yù)估計(jì)算公式為:

fc=(c1+c2+c3+....+cn)/n (1)

某時(shí)段IO使用情況預(yù)估計(jì)算公式為:

fp=(p1+p2+p3+....+pn)/n (2)

其中,n為采集天數(shù),cn為第N天該時(shí)段快照中CPU的使用率,pn為第N天該時(shí)段快照中IO的使用量。

確定SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率時(shí),采用同比的方式,確定SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率,即:將每個(gè)月同一天的業(yè)務(wù)模塊消耗快照(SQL性能指標(biāo)快照)相比對(duì),計(jì)算與歷史表中每月同日同比增長(zhǎng),從而確定出SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率,以便更新基線庫中的SQL消耗增長(zhǎng)指標(biāo)。

其中,SQL消耗增長(zhǎng)指標(biāo)快照庫中的SQL消耗增長(zhǎng)指標(biāo)表征的是指標(biāo)的消耗量;而基線庫中的SQL消耗增長(zhǎng)指標(biāo)表征的是指標(biāo)的增長(zhǎng)量。

對(duì)于頻次的增長(zhǎng)率的計(jì)算方法為:

gr=freq/freq' (3)

其中,freq為當(dāng)日快照中該SQL頻次的值,freq'為上月同日快照中該SQL頻次的值。

基線庫中,修正頻次增長(zhǎng)指標(biāo)的計(jì)算方法為:

<mrow> <msup> <mi>gr</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mfrac> <mrow> <mi>freq</mi> <mo>+</mo> <msub> <mi>freq</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>freq</mi> <mn>2</mn> </msub> <mo>+</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>+</mo> <msub> <mi>freq</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </mrow> <mrow> <msub> <mi>freq</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>freq</mi> <mn>2</mn> </msub> <mo>+</mo> <msub> <mi>freq</mi> <mn>3</mn> </msub> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>+</mo> <msub> <mi>freq</mi> <mi>n</mi> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

其中,freq為當(dāng)日快照中頻次的值,freq1為前一月當(dāng)日快照中頻次的值,freq2為前兩月當(dāng)日快照中頻次的值,以此類推,n為快照的樣本數(shù)。

資源耗指標(biāo)可以包括:CPU時(shí)間指標(biāo)、執(zhí)行時(shí)間指標(biāo)、邏輯讀指標(biāo)和物理讀指標(biāo)四種。

以CPU時(shí)間指標(biāo)為例,增長(zhǎng)率的計(jì)算方法為:

gr=(cp×freq)/(cp'×freq') (5)

其中,cp和freq分別為當(dāng)日快照中每次執(zhí)行所用cpu_time的值和頻次的值,cp’和freq’分別為上月同日快照中每次執(zhí)行所用cpu_time的值和頻次的值。其中,cpu_time表示CPU的時(shí)長(zhǎng)。

基線庫中,修正CPU增長(zhǎng)指標(biāo)計(jì)算方法為:

<mrow> <msup> <mi>gr</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mfrac> <mrow> <mi>cp</mi> <mo>&times;</mo> <mi>freq</mi> <mo>+</mo> <msub> <mi>cp</mi> <mn>1</mn> </msub> <mo>&times;</mo> <msub> <mi>freq</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>cp</mi> <mn>2</mn> </msub> <mo>&times;</mo> <msub> <mi>freq</mi> <mn>2</mn> </msub> <mo>+</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>+</mo> <msub> <mi>p</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>&times;</mo> <msub> <mi>freq</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </mrow> <mrow> <msub> <mi>cp</mi> <mn>1</mn> </msub> <mo>&times;</mo> <msub> <mi>freq</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>cp</mi> <mn>2</mn> </msub> <mo>&times;</mo> <msub> <mi>freq</mi> <mn>2</mn> </msub> <mo>+</mo> <msub> <mi>cp</mi> <mn>2</mn> </msub> <mo>&times;</mo> <msub> <mi>freq</mi> <mn>3</mn> </msub> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>+</mo> <msub> <mi>cp</mi> <mi>n</mi> </msub> <mo>&times;</mo> <msub> <mi>freq</mi> <mi>n</mi> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

其中,cp和freq分別為當(dāng)日快照中每次執(zhí)行所用cpu_time的值和頻次的值,cp1和freq1分別為前一個(gè)月同日快照中每次執(zhí)行所用cpu_time的值和頻次的值,cp2和freq2分別為前兩個(gè)月同日快照中每次執(zhí)行所用cpu_time的值和頻次的值,以此類推,n為快照的樣本數(shù)。

其次,進(jìn)行資源的動(dòng)態(tài)分配。

具體地,如圖5所示,所述設(shè)備的評(píng)估層定時(shí)采集(比如每個(gè)小時(shí)采集一次等)系統(tǒng)的性能指標(biāo),并利用每次采集的系統(tǒng)CPU和IO使用情況指標(biāo)進(jìn)行當(dāng)前空閑資源評(píng)估,當(dāng)根據(jù)所述空閑資源評(píng)估結(jié)果,確定數(shù)據(jù)庫系統(tǒng)負(fù)載較輕時(shí),利用預(yù)估的資源周期性消耗結(jié)果,進(jìn)行空閑資源周期性預(yù)估;比如:可以根據(jù)基線的相關(guān)數(shù)據(jù),確認(rèn)空閑資源的大致周期,便于部署相關(guān)應(yīng)用。

這里,在進(jìn)行當(dāng)前空閑資源評(píng)估時(shí),當(dāng)前空閑cpu_time的計(jì)算公式為:

c=c1/c2×(100-R-c1) (7)

其中,c1為當(dāng)前系統(tǒng)CPU使用百分比,c2為數(shù)據(jù)庫CPU的使用百分比,R為系統(tǒng)CPU預(yù)留的百分比常量,值一般可以為15。

當(dāng)前空閑IO的計(jì)算公式為:

p=p1/p2×(R-p1) (8)

其中,p1為當(dāng)前系統(tǒng)IO使用,p2為數(shù)據(jù)庫物理讀使用量,R為系統(tǒng)IO最大值。

如果所述評(píng)估層確定數(shù)據(jù)庫系統(tǒng)的負(fù)載過高,且所述設(shè)備的隊(duì)列層確定有正在執(zhí)行的任務(wù)隊(duì)列中的任務(wù)時(shí),為了保證高優(yōu)先級(jí)的應(yīng)用的正常運(yùn)行,所述 設(shè)備的控制層需要暫停任務(wù)的執(zhí)行,并釋放相應(yīng)的資源;此時(shí),需要保存暫停執(zhí)行的任務(wù)的中間狀態(tài),以保證后續(xù)執(zhí)行該任務(wù)時(shí)可以從斷點(diǎn)繼續(xù)執(zhí)行該任務(wù)。

所述隊(duì)列層根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從隊(duì)列任務(wù)基線庫的任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù);所述控制層利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)。

具體地,所述隊(duì)列層探測(cè)任務(wù)隊(duì)列中的任務(wù),判斷是否能匹配出待執(zhí)行任務(wù),如果能匹配出待執(zhí)行任務(wù),再判斷匹配出的待執(zhí)行任務(wù)是否有斷點(diǎn),如果有斷點(diǎn),則觸發(fā)所述控制層恢復(fù)任務(wù),如果沒有斷點(diǎn),則觸發(fā)所述控制層啟動(dòng)任務(wù)。

其中,在匹配待執(zhí)行任務(wù)時(shí),所述隊(duì)列層將所述任務(wù)隊(duì)列中的待執(zhí)行任務(wù)按照所述隊(duì)列任務(wù)基線庫中采集的順序進(jìn)行排序;按照排序結(jié)果,并根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從所述任務(wù)隊(duì)列中依次匹配出所述待執(zhí)行任務(wù)。如果沒有匹配出待執(zhí)行任務(wù),則進(jìn)行下一次的定時(shí)采集。

如果配出的待執(zhí)行任務(wù)有斷點(diǎn),說明曾經(jīng)執(zhí)行過該任務(wù),此時(shí)進(jìn)行任務(wù)和虧負(fù),如果沒有斷點(diǎn),說明該任務(wù)未被執(zhí)行過,直接啟動(dòng)該任務(wù)即可。

采用本實(shí)施例的方案,可以得到如圖6a及圖6b所示的CPU及IO的使用情況示意圖,從圖中可以看出,經(jīng)過動(dòng)態(tài)調(diào)度資源,可以使系統(tǒng)的資源得到合理利用,系統(tǒng)運(yùn)行狀態(tài)平穩(wěn),較少出現(xiàn)峰值。

另外,由于本實(shí)施例建立了快照庫和基線庫,當(dāng)業(yè)務(wù)發(fā)生變化時(shí),對(duì)應(yīng)的基線(對(duì)應(yīng)SQL)肯定會(huì)發(fā)生變化;同理,當(dāng)基線發(fā)生變化時(shí),業(yè)務(wù)肯定會(huì)存在異常,因此實(shí)現(xiàn)了SQL與業(yè)務(wù)模塊的雙向聯(lián)動(dòng);并且,依賴建立的強(qiáng)大的基線庫,可以將SQL性能指標(biāo)與業(yè)務(wù)指標(biāo)關(guān)聯(lián),按業(yè)務(wù)模塊分組,分析出各業(yè)務(wù)占用的數(shù)據(jù)庫資源(CPU、物理讀、邏輯讀等指標(biāo)均可)比重,建立可視化的資源比重。比如,可以得到如圖7a和圖7b所示的資源占用比重。從圖中可以獲知,工單管理、短信下發(fā)、空中充值、服務(wù)狀態(tài)變更四個(gè)業(yè)務(wù)模塊占用了較多的數(shù)據(jù)庫CPU資源和IO資源?;诖耍梢赃M(jìn)一步清晰地獲知系統(tǒng)的關(guān)鍵業(yè)務(wù)占用資源比重,占用比重是否合理,對(duì)于業(yè)務(wù)實(shí)際使用與資源占用不合理 的業(yè)務(wù)模塊,可以從業(yè)務(wù)出發(fā),成立專題,重新梳理業(yè)務(wù)流程,并進(jìn)行優(yōu)化。其中,在圖7a中,A表示工單管理,B表示短信下發(fā),C表示空中充值,D表示服務(wù)狀態(tài)變更,E表示資源調(diào)撥,F(xiàn)表示產(chǎn)品創(chuàng)建,G表示用戶信息管理,H表示服務(wù)請(qǐng)求生成,I表示服務(wù)資源變更,J表示賬戶信息管理,K表示用戶資源管理,L表示資源入庫管理、M表示客戶信息管理,N表示集團(tuán)成員管理,O表示渠道積分管理。在圖7b中,A表示短信下發(fā),B表示工單管理,C表示空中充值,D表示服務(wù)狀態(tài)變更,E表示服務(wù)資源變更,F(xiàn)表示產(chǎn)品創(chuàng)建,G表示用戶信息管理,,H表示服務(wù)流程管理,I表示賬戶信息管理,J表示資源調(diào)撥,K表示用戶資源管理,L表示客戶信息管理,M表示營銷活動(dòng)管理,N表示渠道繳費(fèi)管理,O表示資源入庫管理。

除此以外,還可根據(jù)快照庫,分析某一個(gè)業(yè)務(wù)模塊的資源占比變化,對(duì)于資源占比增長(zhǎng)較快的業(yè)務(wù)模塊,可以成立專題分析,避免滾雪球式的性能問題發(fā)生。

通過可視化的資源比重模型,進(jìn)一步加強(qiáng)了業(yè)務(wù)性能的管理。

由于獨(dú)立出業(yè)務(wù)系統(tǒng)能極大地解決負(fù)載過高的情況,但是需要額外地投入硬件資源,接口傳輸代價(jià)等,因此拆分決策需要長(zhǎng)時(shí)間的數(shù)據(jù)支持。而本發(fā)明實(shí)施例的方案由于定時(shí)采集性能數(shù)據(jù)及SQL性能數(shù)據(jù),并進(jìn)行相應(yīng)的分析,因此,能很好地為拆分決策提供支撐,當(dāng)采集到業(yè)務(wù)系統(tǒng)消耗占比極大,且系統(tǒng)負(fù)載持續(xù)過高的情況,為業(yè)務(wù)系統(tǒng)的拆分提供依據(jù)。

從上面的描述中可以看出,本實(shí)施例的方案具有以下優(yōu)點(diǎn):

(1)避免了對(duì)于DBA經(jīng)驗(yàn)的依賴,無需指定隊(duì)列任務(wù)的具體執(zhí)行時(shí)間,將控制權(quán)交由應(yīng)用本實(shí)施例方案的設(shè)備自動(dòng)根據(jù)當(dāng)前系統(tǒng)負(fù)載情況自動(dòng)調(diào)度。使系統(tǒng)既不會(huì)過于繁忙,也不會(huì)過于空閑,合理地利用空閑時(shí)段運(yùn)行隊(duì)列任務(wù),規(guī)避了應(yīng)用高峰期資源爭(zhēng)用的問題,提高了系統(tǒng)的可維護(hù)性和高可用性。

(2)啟動(dòng)隊(duì)列任務(wù)之后,當(dāng)預(yù)知范圍外的應(yīng)用高峰到來時(shí),能保存進(jìn)程(任務(wù))的中間狀態(tài),釋放進(jìn)程資源,產(chǎn)生斷點(diǎn)。當(dāng)監(jiān)控到系統(tǒng)高峰過后,從斷點(diǎn)恢復(fù)資源,任務(wù)繼續(xù)執(zhí)行,如此,避免了資源的浪費(fèi),提高了系統(tǒng)的利用率。

(3)定時(shí)采集業(yè)務(wù)模塊及任務(wù)的資源消耗,能清晰地獲知系統(tǒng)的關(guān)鍵業(yè)務(wù)占用資源比重,為業(yè)務(wù)邏輯檢查,系統(tǒng)拆分提供有力依據(jù)。

(4)能夠評(píng)估隊(duì)列任務(wù)的精確消耗,確保執(zhí)行時(shí)不會(huì)超過系統(tǒng)的最高負(fù)載,有效地避免了此類故障。

實(shí)施例三

本實(shí)施例基于實(shí)施例一、二,本實(shí)施例提供一種資源調(diào)度裝置,如圖8所示,該裝置包括:第一評(píng)估單元81、第二評(píng)估單元82、任務(wù)匹配單元83及任務(wù)執(zhí)行單元84;其中,

所述第一評(píng)估單元81,用于利用當(dāng)前采集的性能指標(biāo),評(píng)估空閑資源;所述性能指標(biāo)表征數(shù)據(jù)庫資源的使用情況;

所述第二評(píng)估單元82,用于根據(jù)所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載小于預(yù)設(shè)值時(shí),利用預(yù)估的資源周期性消耗結(jié)果,進(jìn)行空閑資源周期性預(yù)估;

所述任務(wù)匹配單元83,用于根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從隊(duì)列任務(wù)基線庫的任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù);所述任務(wù)隊(duì)列中的任務(wù)是指:與數(shù)據(jù)庫維護(hù)相關(guān)的任務(wù);

所述任務(wù)執(zhí)行單元84,用于利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)。

其中,所述性能指標(biāo)可以包括所述數(shù)據(jù)庫的CPU及I/O使用情況指標(biāo);相應(yīng)地,根據(jù)CPU指標(biāo)及IO使用情況指標(biāo),進(jìn)行空閑資源的評(píng)估。

當(dāng)所述數(shù)據(jù)庫的負(fù)載小于所述預(yù)設(shè)值時(shí),說明所述數(shù)據(jù)庫的負(fù)載較輕,這種情況下,可以根據(jù)需要執(zhí)行任務(wù)隊(duì)列中的待執(zhí)行任務(wù);當(dāng)根據(jù)所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載大于等于預(yù)設(shè)值時(shí),說明所述數(shù)據(jù)庫負(fù)載過重,這種情況下,為了保證高優(yōu)先級(jí)的業(yè)務(wù)(應(yīng)用)的正常運(yùn)行,如果有正在執(zhí)行的任務(wù)隊(duì)列中的任務(wù)時(shí),需要暫停任務(wù)的執(zhí)行,并釋放相應(yīng)的資源;此時(shí),需要保存暫停執(zhí)行的任務(wù)的中間狀態(tài),以保證后續(xù)執(zhí)行該任務(wù)時(shí)可以從斷點(diǎn)繼續(xù)執(zhí)行該任務(wù)。

其中,實(shí)際應(yīng)用時(shí),可以根據(jù)需要設(shè)置所述預(yù)設(shè)值。

該裝置還可以包括:第三評(píng)估單元,用于周期性采集并保存所述性能指標(biāo);基于保存的所述性能指標(biāo),采用同比和/或環(huán)比的方式,得出資源消耗規(guī)律;并根據(jù)所述資源消耗規(guī)律,對(duì)所述資源周期性消耗進(jìn)行預(yù)估。

其中,根據(jù)所述預(yù)估的資源周期性消耗結(jié)果,可以估算出未來時(shí)間片里的空閑資源及對(duì)應(yīng)的時(shí)長(zhǎng)。

實(shí)際應(yīng)用時(shí),采集所述性能指標(biāo)的周期可以根據(jù)需要確定,比如可以是一個(gè)月等。

實(shí)際應(yīng)用時(shí),可以定時(shí)采集所述數(shù)據(jù)庫的性能數(shù)據(jù),從這些性能數(shù)據(jù)中提取CPU及IO的使用情況指標(biāo),并建立系統(tǒng)快照,從而實(shí)現(xiàn)周期性采集并保存所述性能指標(biāo);

相應(yīng)地,采用同比的方式,得出資源消耗規(guī)律具體可以是指:將每個(gè)月同一天,每天同一時(shí)刻的CPU及IO使用情況的快照相比對(duì),得出系統(tǒng)消耗規(guī)律。采用環(huán)比的方式,是指:將每天各時(shí)段的CPU及IO使用情況的快照相比對(duì),得出系統(tǒng)消耗規(guī)律。

這里,所述任務(wù)隊(duì)列中的任務(wù)是指:需要執(zhí)行的任務(wù)。

所述任務(wù)匹配單元83可以包括:排序模塊及任務(wù)匹配模塊;其中,

所述排序模塊,用于將所述任務(wù)隊(duì)列中的待執(zhí)行任務(wù)按照所述隊(duì)列任務(wù)基線庫中采集的順序進(jìn)行排序;

所述任務(wù)匹配模塊,用于按照排序結(jié)果,并根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從所述任務(wù)隊(duì)列中依次匹配出所述待執(zhí)行任務(wù)。

實(shí)際應(yīng)用時(shí),可以定時(shí)采集所述性能指標(biāo),相應(yīng)地,每次定時(shí)采集的性能指標(biāo)即為所述第一評(píng)估單元81當(dāng)前采集的性能指標(biāo);這種情況下,當(dāng)從任務(wù)隊(duì)列中未匹配出待執(zhí)行任務(wù)時(shí),則依據(jù)規(guī)則進(jìn)行下一次的定時(shí)采集性能指標(biāo)。

實(shí)際應(yīng)用時(shí),所述匹配出的待執(zhí)行任務(wù)的個(gè)數(shù)可以為一個(gè)以上。

該裝置還可以包括:基線庫建立單元,用于周期性從所述數(shù)據(jù)庫中采集并保存SQL性能指標(biāo),并進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定;

確定保存的SQL性能指標(biāo)在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中不存在 對(duì)應(yīng)基線時(shí),在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中建立對(duì)應(yīng)的基線;

確定保存的SQL性能指標(biāo)在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中存在對(duì)應(yīng)基線時(shí),采用同比的方式,確定SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率;并校正所述對(duì)應(yīng)基線的相關(guān)數(shù)據(jù)。

其中,采集所述SQL性能指標(biāo)的周期可以根據(jù)需要確定,比如可以是:一個(gè)小時(shí)等。

實(shí)際應(yīng)用時(shí),在采集并保存SQL性能指標(biāo)時(shí),所述基線庫建立單元可以定時(shí)從數(shù)據(jù)庫的動(dòng)態(tài)性能視圖(V$SQL、V$SQL_PLAN等)中采集SQL性能數(shù)據(jù),從這些SQL性能數(shù)據(jù)中提取SQL性能指標(biāo),并建立業(yè)務(wù)模塊消耗快照,從而實(shí)現(xiàn)周期性從所述數(shù)據(jù)庫中采集并保存SQL性能指標(biāo)。其中,V$SQL可以反映存儲(chǔ)的SQL語句;V$SQL_PLAN可以反映存儲(chǔ)的SQL語句的執(zhí)行計(jì)劃。

所述SQL性能指標(biāo)可以包括:SQL的頻次及對(duì)應(yīng)的資源消耗指標(biāo);其中,所述資源消耗指標(biāo)可以包括:每次的CPU使用時(shí)間、每次的執(zhí)行時(shí)間、每次的邏輯讀、每次的物理讀。其中,邏輯讀是指從內(nèi)存里訪問數(shù)據(jù),物理讀是指從磁盤里訪問數(shù)據(jù)。

相應(yīng)地,采用同比的方式,確定SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率是指:將每個(gè)月同一天的業(yè)務(wù)模塊消耗快照相比對(duì),從而確定出SQL消耗增長(zhǎng)指標(biāo)中的頻次及資源消耗指標(biāo)的增長(zhǎng)率。

這里,在確定增長(zhǎng)率時(shí),所述基線庫建立單元基于當(dāng)日的頻次及上月同日的頻次,并結(jié)合保存的樣本數(shù),確定頻次的增長(zhǎng)率;并基于當(dāng)日的資源消耗指標(biāo)及上月同日的資源消耗指標(biāo),并結(jié)合保存的樣本數(shù),確定資源消耗指標(biāo)的增長(zhǎng)率。

進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定的目的是:形成對(duì)應(yīng)基線,以便當(dāng)基線庫中不存在對(duì)應(yīng)基線時(shí),在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中建立對(duì)應(yīng)的基線;或者,當(dāng)基線庫中存在對(duì)應(yīng)基線時(shí),確定增長(zhǎng)率及校正基線庫中對(duì)應(yīng)基線的相關(guān)數(shù)據(jù)。

在進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定時(shí),當(dāng)保存的SQL性能指標(biāo)未在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中(即保存的SQL性能指標(biāo)對(duì)應(yīng)的基線未在所述隊(duì)列任務(wù)基線 庫或應(yīng)用基線庫中)時(shí),所述基線庫建立單元推送到未綁定業(yè)務(wù)標(biāo)簽列表中,由業(yè)務(wù)人員打上業(yè)務(wù)標(biāo)簽后,再回存到基線庫,進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定;對(duì)于保存的SQL性能指標(biāo)已在所述隊(duì)列任務(wù)基線庫或應(yīng)用基線庫中的,所述基線庫建立單元直接綁定業(yè)務(wù)標(biāo)簽,即進(jìn)行對(duì)應(yīng)的業(yè)務(wù)綁定,并建立業(yè)務(wù)模塊消耗快照。

通過對(duì)比已存在的基線的相關(guān)數(shù)據(jù),即可確定保存的SQL性能指標(biāo)是否存在對(duì)應(yīng)基線。

所述應(yīng)用基線庫的作用是存儲(chǔ)多次在數(shù)據(jù)庫中運(yùn)行的相關(guān)任務(wù)信息,以便能從整體了解各任務(wù)占用的資源情況。

所述基線的作用可以理解為一個(gè)任務(wù)的基準(zhǔn)線,如果這個(gè)基準(zhǔn)線波動(dòng)很大,則說明該任務(wù)異常,需要修改、調(diào)整等。

實(shí)際應(yīng)用時(shí),所述校正所述對(duì)應(yīng)基線的相關(guān)數(shù)據(jù)的目的是:是為了減小對(duì)應(yīng)任務(wù)的基準(zhǔn)線,使得基準(zhǔn)線波動(dòng)盡可能的降低。

所述任務(wù)執(zhí)行單元84,具體用于:確定所述匹配出的待執(zhí)行任務(wù)有斷點(diǎn)時(shí),利用所述預(yù)估的周期性空閑資源從斷點(diǎn)處執(zhí)行所述匹配出的待執(zhí)行任務(wù);相應(yīng)地,確定所述匹配出的待執(zhí)行任務(wù)沒有斷點(diǎn)時(shí),則直接啟動(dòng)匹配出的待執(zhí)行任務(wù)。

其中,可以根據(jù)是否保存有暫停執(zhí)行的任務(wù)的中間狀態(tài)來確定對(duì)應(yīng)待執(zhí)行任務(wù)是否有斷點(diǎn)。

所述任務(wù)執(zhí)行單元84,還用于在利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù)的過程中,根據(jù)利用下一次采集的性能指標(biāo)得出的所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載大于等于所述預(yù)設(shè)值時(shí),暫停任務(wù)的執(zhí)行,釋放相應(yīng)的資源,并保存暫停執(zhí)行的任務(wù)的中間狀態(tài)。

實(shí)際應(yīng)用時(shí),所述第一評(píng)估單元81、第二評(píng)估單元82、任務(wù)匹配單元83及任務(wù)執(zhí)行單元84、第三評(píng)估單元、基線庫建立單元、排序模塊、以及任務(wù)匹配模塊可由資源調(diào)度裝置中的中央處理器(CPU,Central Processing Unit)、微處理器(MCU,Micro Control Unit)、數(shù)字信號(hào)處理器(DSP,Digital Signal Processor)或可編程邏輯陣列(FPGA,F(xiàn)ield-Programmable Gate Array)結(jié)合 存儲(chǔ)器實(shí)現(xiàn)。

本實(shí)施例提供的資源調(diào)度裝置,所述第一評(píng)估單元81利用當(dāng)前采集的性能指標(biāo),評(píng)估空閑資源;所述性能指標(biāo)表征數(shù)據(jù)庫資源的使用情況;所述第二評(píng)估單元82根據(jù)所述空閑資源評(píng)估結(jié)果確定數(shù)據(jù)庫的負(fù)載小于預(yù)設(shè)值時(shí),利用預(yù)估的資源周期性消耗結(jié)果,進(jìn)行空閑資源周期性預(yù)估;所述任務(wù)匹配單元83根據(jù)預(yù)估的周期性空閑資源及對(duì)應(yīng)時(shí)長(zhǎng),從隊(duì)列任務(wù)基線庫的任務(wù)隊(duì)列中匹配出待執(zhí)行任務(wù);所述任務(wù)執(zhí)行單元84利用所述預(yù)估的周期性空閑資源執(zhí)行匹配出的待執(zhí)行任務(wù),如此,能及時(shí)、有效、準(zhǔn)確地進(jìn)行資源調(diào)度。

另外,確定所述匹配出的待執(zhí)行任務(wù)有斷點(diǎn)時(shí),利用所述預(yù)估的周期性空閑資源從斷點(diǎn)處執(zhí)行所述匹配出的待執(zhí)行任務(wù),如此,能保證數(shù)據(jù)狀態(tài)的一致性,進(jìn)而節(jié)約了資源,提高資源的利用率。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用硬件實(shí)施例、軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
微博| 泊头市| 信宜市| 新安县| 虞城县| 东阿县| 长海县| 苍梧县| 灵石县| 浮梁县| 甘孜县| 大邑县| 镇江市| 长垣县| 顺平县| 嵊州市| 三都| 天峨县| 长春市| 治多县| 资源县| 南开区| 郓城县| 天峨县| 南郑县| 遂川县| 商洛市| 龙泉市| 淮滨县| 广昌县| 杭锦旗| 满洲里市| 淮北市| 江西省| 卢湾区| 昌图县| 定日县| 建湖县| 华宁县| 固安县| 忻州市|