所屬的技術人員能夠理解,本技術的各個方面可以實現(xiàn)為系統(tǒng)、方法或程序產品。因此,本技術的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。與上述方法實施例基于同一發(fā)明構思,本技術實施例中還提供了一種電子設備。在一種實施例中,該電子設備可以是服務器,如圖1所示的數(shù)據(jù)庫集群110中的各個節(jié)點,檢測數(shù)據(jù)庫集群資源的平臺的后臺服務器(資源檢測設備120),資源調度平臺的后臺服務器(調度設備130)。在該實施例中,電子設備的結構可以如圖14所示,包括存儲器1401,通訊模塊1403以及一個或多個處理器1402。存儲器1401,用于存儲處理器1402執(zhí)行的計算機程序。存儲器1401可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng),以及運行即時通訊功能所需的程序等;存儲數(shù)據(jù)區(qū)可存儲各種即時通訊信息和操作指令集等。存儲器1401可以是易失性存儲器(volatile?memory),例如隨機存取存儲器(random-access?memory,ram);存儲器1401也可以是非易失性存儲器(non-volatilememory),例如只讀存儲器,快閃存儲器(flash?memory),硬盤(hard?disk?drive,hdd)或固態(tài)硬盤(solid-state?drive,ssd);或者存儲器1401是能夠用于攜帶或存儲具有指令或數(shù)據(jù)結構形式的期望的計算機程序并能夠由計算機存取的任何其他介質,但不限于此。存儲器1401可以是上述存儲器的組合。處理器1402,可以包括一個或多個中央處理單元(central?processing?unit,cpu)或者為數(shù)字處理單元等等。處理器1402,用于調用存儲器1401中存儲的計算機程序時實現(xiàn)上述數(shù)據(jù)庫的資源調度方法。通訊模塊1403用于與終端設備和其他服務器進行通信。本技術實施例中不限定上述存儲器1401、通訊模塊1403和處理器1402之間的具體連接介質。本技術實施例在圖14中以存儲器1401和處理器1402之間通過總線1404連接,總線1404在圖14中以粗線描述,其它部件之間的連接方式,僅是進行示意性說明,并不引以為限??偩€1404可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于描述,圖14中僅用一條粗線描述,但并不描述僅有一根總線或一種類型的總線。存儲器1401中存儲有計算機存儲介質,計算機存儲介質中存儲有計算機可執(zhí)行指令,計算機可執(zhí)行指令用于實現(xiàn)本技術實施例的數(shù)據(jù)庫的資源調度方法。處理器1402用于執(zhí)行上述的數(shù)據(jù)庫的資源調度方法,如圖2所示。在一些可能的實施方式中,本技術提供的數(shù)據(jù)庫的資源調度方法的各個方面還可以實現(xiàn)為一種程序產品的形式,其包括計算機程序,當程序產品在電子設備上運行時,計算機程序用于使電子設備執(zhí)行本說明書上述描述的根據(jù)本技術各種示例性實施方式的數(shù)據(jù)庫的資源調度方法中的步驟,例如,電子設備可以執(zhí)行如圖2中所示的步驟。程序產品可以采用一個或多個可讀介質的任意組合??勺x介質可以是可讀信號介質或者可讀存儲介質??勺x存儲介質例如可以是但不限于電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合??勺x存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。本技術的實施方式的程序產品可以采用便攜式緊湊盤只讀存儲器(cd-rom)并包括計算機程序,并可以在電子設備上運行。然而,本技術的程序產品不限于此,在本文件中,可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被命令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用??勺x信號介質可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了可讀計算機程序。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。可讀信號介質還可以是可讀存儲介質以外的任何可讀介質,該可讀介質可以發(fā)送、傳播或者傳輸用于由命令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序??勺x介質上包含的計算機程序可以用任何適當?shù)慕橘|傳輸,包括但不限于無線、有線、光纜、rf等等,或者上述的任意合適的組合。可以以一種或多種程序設計語言的任意組合來編寫用于執(zhí)行本技術操作的計算機程序,程序設計語言包括面向對象的程序設計語言—諸如java、c++等,還包括常規(guī)的過程式程序設計語言—諸如“c”語言或類似的程序設計語言。計算機程序可以完全地在對象電子設備上執(zhí)行、部分地在對象電子設備上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在對象電子設備上部分在遠程電子設備上執(zhí)行、或者完全在遠程電子設備或服務器上執(zhí)行。在涉及遠程電子設備的情形中,遠程電子設備可以通過任意種類的網(wǎng)絡包括局域網(wǎng)(lan)或廣域網(wǎng)(wan)連接到對象電子設備,或者,可以連接到外部電子設備(例如利用因特網(wǎng)服務提供商來通過因特網(wǎng)連接)。應當注意,盡管在上文詳細描述中提及了裝置的若干單元或子單元,但是這種劃分僅僅是示例性的并非強制性的。實際上,根據(jù)本技術的實施方式,上文描述的兩個或更多單元的特征和功能可以在一個單元中具體化。反之,上文描述的一個單元的特征和功能可以進一步劃分為由多個單元來具體化。此外,盡管在附圖中以特定順序描述了本技術方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結果。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或將一個步驟分解為多個步驟執(zhí)行。本領域內的技術人員應明白,本技術的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本技術可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本技術可采用在一個或多個其中包含有計算機可用計算機程序的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。本技術是參照根據(jù)本技術實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序命令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序命令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的命令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序命令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的命令產生包括命令裝置的制造品,該命令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序命令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的命令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本技術的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本技術范圍的所有變更和修改。顯然,本領域的技術人員可以對本技術進行各種改動和變型而不脫離本技術的精神和范圍。這樣,倘若本技術的這些修改和變型屬于本技術權利要求及其等同技術的范圍之內,則本技術也意圖包含這些改動和變型在內。
背景技術:
1、隨著互聯(lián)網(wǎng)技術的發(fā)展,數(shù)據(jù)庫集群憑借其高可靠性、可擴展性以及高容錯性,逐漸將傳統(tǒng)的單一數(shù)據(jù)庫取代。相比于單一數(shù)據(jù)庫,數(shù)據(jù)庫集群中則存在多個節(jié)點,為了保證數(shù)據(jù)庫集群的穩(wěn)定性,需要對每個節(jié)點的資源(如,cpu、內存和存儲空間等)進行合理調度,即,需要將記錄有待處理數(shù)據(jù)的容器組分配至合適的節(jié)點。
2、相關技術中的資源調度策略往往是:根據(jù)每個容器組所申請的資源數(shù)量,以及各個節(jié)點的剩余資源數(shù)量,將各容器組分配至任意一個有能力接納的節(jié)點上,然而,容器組對各種資源的需求往往不平均,很容易出現(xiàn)對其中某一種或多種資源需求大,但對其他資源需求小的容器組,若某節(jié)點上恰好被分配了資源需求相似的多個容器組,則最后可能導致該節(jié)點上的某種資源還有大量剩余,但因另一種資源使用量已達到極限而不能再被分配其他容器組,從而導致節(jié)點的資源利用率低。
3、例如:若某類容器組對cpu資源需求較大,但對內存資源需求較小,某節(jié)點上被分配了多個該類容器組后,cpu資源幾乎已被占滿,但內存資源還有大量剩余,此時再有其他容器組需要分配到節(jié)點時,該節(jié)點雖然在內存資源上滿足分配條件,但由于cpu資源不足,也無法實現(xiàn)分配,最終造成該節(jié)點上大量的內存資源被浪費。
4、綜上,如何提高資源利用率是亟待解決的。
技術實現(xiàn)思路
1、本技術實施例提供一種數(shù)據(jù)庫的資源調度方法、系統(tǒng)、裝置與存儲介質,用以提高數(shù)據(jù)庫集群的資源利用率。
2、本技術實施例提供的一種數(shù)據(jù)庫的資源調度方法,包括:
3、當數(shù)據(jù)庫集群中存在新創(chuàng)建的初始容器組時,基于所述數(shù)據(jù)庫集群包含的各節(jié)點的節(jié)點資源信息,分別確定相應節(jié)點的節(jié)點剩余資源;
4、基于所述初始容器組關聯(lián)的至少一個歷史容器組的資源占用信息,獲得所述初始容器組的預測需求資源;所述初始容器組和所述歷史容器組是由同一資源申請對象申請創(chuàng)建的;
5、在節(jié)點剩余資源滿足所述預設需求資源的各節(jié)點中,選取至少一個候選節(jié)點,并針對每個候選節(jié)點執(zhí)行以下操作:預測將所述初始容器組調度至一個候選節(jié)點后,所述一個候選節(jié)點上最新的節(jié)點剩余資源的資源傾斜情況,所述資源傾斜情況表征:所述節(jié)點剩余資源在各資源維度下的分布差異;
6、選取資源傾斜情況滿足預設的資源分布條件的一個候選節(jié)點作為目標節(jié)點,并將所述初始容器組調度至所述目標節(jié)點。
7、本技術實施例提供的一種數(shù)據(jù)庫的資源調度裝置,包括:
8、確定單元,用于當數(shù)據(jù)庫集群中存在新創(chuàng)建的初始容器組時,基于所述數(shù)據(jù)庫集群包含的各節(jié)點的節(jié)點資源信息,分別確定相應節(jié)點的節(jié)點剩余資源;
9、第一選取單元,用于基于所述初始容器組關聯(lián)的至少一個歷史容器組的資源占用信息,獲得所述初始容器組的預測需求資源;所述初始容器組和所述歷史容器組是由同一資源申請對象申請創(chuàng)建的;
10、預測單元,用于在節(jié)點剩余資源滿足所述預設需求資源的各節(jié)點中,選取至少一個候選節(jié)點,并針對每個候選節(jié)點執(zhí)行以下操作:預測將所述初始容器組調度至一個候選節(jié)點后,所述一個候選節(jié)點上最新的節(jié)點剩余資源的資源傾斜情況,所述資源傾斜情況表征:所述節(jié)點剩余資源在各資源維度下的分布差異;
11、第二選取單元,用于選取資源傾斜情況滿足預設的資源分布條件的一個候選節(jié)點作為目標節(jié)點,并將所述初始容器組調度至所述目標節(jié)點。
12、在一種可能的實施方式中,所述預測單元具體用于:
13、針對每個所述節(jié)點,分別執(zhí)行以下操作:基于一個節(jié)點的節(jié)點剩余資源與所述初始容器組的預測需求資源之間的差異,結合所述一個節(jié)點在所述各資源維度下的分區(qū)大小,確定所述一個節(jié)點的節(jié)點剩余資源的評估值;
14、將評估值滿足預設選取條件的至少一個節(jié)點作為候選節(jié)點。
15、在一種可能的實施方式中,所述預測單元具體用于:
16、基于所述一個候選節(jié)點的節(jié)點剩余資源與所述初始容器組的預測需求資源之間的差異,預測將所述初始容器組調度至一個候選節(jié)點后,所述一個候選節(jié)點上最新的節(jié)點剩余資源;
17、針對預設的每個資源維度,執(zhí)行以下操作:基于所述最新的節(jié)點剩余資源,確定在所述初始容器組調度至所述一個候選節(jié)點后,所述一個候選節(jié)點在所述各資源維度下的剩余資源額度;
18、基于各剩余資源額度之間的差異大小,確定所述資源傾斜情況。
19、在一種可能的實施方式中,所述第二選取單元具體用于:
20、將各候選節(jié)點中,所述各剩余資源額度之間的差異大小滿足預設的資源差異閾值的候選節(jié)點,作為所述目標節(jié)點;
21、或者,
22、基于所述各候選節(jié)點各自對應的所述各剩余資源額度之間的差異大小,分別確定所述各候選節(jié)點各自對應的瓶頸資源,每個所述瓶頸資源為:相應候選節(jié)點在所述各資源維度下,剩余資源額度最低的資源;以及,將所述各候選節(jié)點各自對應的瓶頸資源下的剩余資源額度,進行跨資源維度比較,并基于比較結果,在所述各候選節(jié)點中確定一個目標節(jié)點。
23、在一種可能的實施方式中,所述預測單元具體用于:
24、在所述各資源維度下,分別確定所述預測需求資源與所述一個候選節(jié)點的節(jié)點剩余資源的資源相似度;
25、基于所述資源相似度,預測將所述初始容器組調度至一個候選節(jié)點后,所述一個候選節(jié)點上最新的節(jié)點剩余資源的資源傾斜情況,所述資源相似度與所述資源傾斜情況呈負相關;
26、所述第二選取單元具體用于:
27、選取所述資源相似度滿足預設的相似度條件的一個候選節(jié)點,作為所述目標節(jié)點。
28、在一種可能的實施方式中,所述裝置還包括:
29、遷移單元,用于將所述各節(jié)點中,對應的節(jié)點資源信息超出預設閾值的節(jié)點作為待遷出節(jié)點;
30、對于每個待遷出節(jié)點,獲取一個待遷出節(jié)點上負載的各執(zhí)行容器組各自對應的容器組資源信息;以及,將對應的容器組資源信息滿足遷移條件的執(zhí)行容器組,作為待遷移的執(zhí)行容器組;所述容器組資源信息表征對應的執(zhí)行容器組的資源消耗情況;
31、在除所述待遷出節(jié)點外的各其他節(jié)點中確定一個待遷入節(jié)點,并將所述待遷移的執(zhí)行容器組遷移至所述待遷入節(jié)點。
32、在一種可能的實施方式中,所述遷移單元具體用于:
33、基于所述各其他節(jié)點在預設的歷史時間段內,節(jié)點資源信息的歷史變化情況,分別預測所述各其他節(jié)點在預設的未來時間段內,節(jié)點資源信息的預估變化情況;
34、基于所述待遷移的執(zhí)行容器組在預設的歷史時間段內,容器組資源信息的歷史變化情況,預測所述待遷移的執(zhí)行容器組在預設的未來時間段內,容器組資源信息的預估變化情況;
35、將所述節(jié)點資源信息的預估變化情況,與所述容器組資源信息的預估變化情況之間的差異,滿足預設的遷入條件的一個其他節(jié)點,作為所述一個待遷入節(jié)點。
36、在一種可能的實施方式中,所述遷移單元具體用于:
37、基于所述各節(jié)點資源信息的預估變化情況,分別評估所述各其他節(jié)點在所述未來時間段內,各自對應的綜合節(jié)點資源情況;
38、基于所述容器組資源信息的預估變化情況,確定所述待遷移的執(zhí)行容器組在所述未來時間段內的綜合容器組資源情況;
39、在每個資源維度下,分別對比所述綜合容器組資源情況與各綜合節(jié)點資源情況的整體相似度;
40、將在所述各資源維度下的整體相似度均低于預設的相似度閾值的一個其他節(jié)點,作為所述一個待遷入節(jié)點。
41、在一種可能的實施方式中,所述綜合節(jié)點資源情況包括:對應的其他節(jié)點在所述各資源維度下的綜合節(jié)點資源分配情況,以及綜合節(jié)點資源使用情況;綜合容器組資源情況包括:所述待遷移的執(zhí)行容器組在所述各資源維度下的綜合容器組資源分配情況,以及綜合容器組資源使用情況;
42、所述遷移單元具體用于:
43、在每個資源維度下,分別對比所述綜合容器組資源分配情況與各綜合節(jié)點資源分配情況的第一相似度,以及分別對比所述綜合容器組資源使用情況與各綜合節(jié)點資源使用情況的第二相似度;并基于所述第一相似度與所述第二相似度,確定整體相似度。
44、本技術實施例提供的一種電子設備,包括處理器和存儲器,其中,所述存儲器存儲有計算機程序,當所述計算機程序被所述處理器執(zhí)行時,使得所述處理器執(zhí)行上述任意一種數(shù)據(jù)庫的資源調度方法的步驟。
45、本技術實施例提供一種計算機可讀存儲介質,其包括計算機程序,當所述計算機程序在電子設備上運行時,所述計算機程序用于使所述電子設備執(zhí)行上述任意一種數(shù)據(jù)庫的資源調度方法的步驟。
46、本技術實施例提供一種計算機程序產品,所述計算機程序產品包括計算機程序,所述計算機程序存儲在計算機可讀存儲介質中;當電子設備的處理器從計算機可讀存儲介質讀取所述計算機程序時,所述處理器執(zhí)行所述計算機程序,使得所述電子設備執(zhí)行上述任意一種數(shù)據(jù)庫的資源調度方法的步驟。
47、本技術有益效果如下:
48、本技術實施例提供了一種數(shù)據(jù)庫的資源調度方法、系統(tǒng)、裝置與存儲介質,在數(shù)據(jù)庫集群新創(chuàng)建一個初始容器組后,為該初始容器組選擇合適的放置節(jié)點。
49、首先確定數(shù)據(jù)庫集群中各個節(jié)點的節(jié)點剩余資源,也即各節(jié)點上還可以分配的各種資源的大小,進一步的,本技術考慮到,初始容器組在放置后對資源的占用往往會發(fā)生動態(tài)變化,僅根據(jù)初始容器組對資源的申請量,為初始容器組分配一個能滿足其申請量的節(jié)點的方法,則無法適應這種動態(tài)變化,因此本技術獲取申請創(chuàng)建該初始容器組的對象在過去申請創(chuàng)建的歷史容器組,以歷史容器組對資源的占用情況為參考,預測未來該初始容器組針對各種資源的需求情況,以篩選出節(jié)點剩余資源能夠滿足預測的需求的節(jié)點,使得在后續(xù)初始容器組放置到節(jié)點后,減少由于發(fā)生初始容器組對資源的占用量降低而導致的資源浪費,或者初始容器組對資源的占用量升高而導致的資源緊缺的情況。
50、進一步的,預測將初始容器組調度至一個節(jié)點后,該節(jié)點上最新的節(jié)點剩余資源在各資源維度下的分布差異;選擇分布差異滿足預設條件的節(jié)點作為初始容器組的放置節(jié)點,該方法可以預見初始容器組放置后節(jié)點的剩余資源是否平均,將最新剩余資源在各資源維度下分布較為平均的節(jié)點作為放置節(jié)點,可以避免放置節(jié)點在后續(xù)因資源傾斜嚴重(即一個或多個維度下的資源還存在大量剩余,但其他維度下的資源已不足)而導致無法再為新的容器組提供服務,進一步造成的資源浪費情況。
51、本技術的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本技術而了解。本技術的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現(xiàn)和獲得。