本申請涉及計算機(jī)領(lǐng)域,具體涉及運維技術(shù)領(lǐng)域,尤其涉及負(fù)載均衡方法和裝置。
背景技術(shù):
負(fù)載均衡是提升服務(wù)器集群的承載能力的重要手段。用于存儲數(shù)據(jù)例如在線搜索服務(wù)的搜索數(shù)據(jù)的索引數(shù)據(jù)庫及其副本分布式地存儲在服務(wù)器集群中,服務(wù)器集群中的服務(wù)器處理對存儲在其上的索引數(shù)據(jù)庫的用戶的查詢請求。由于索引數(shù)據(jù)庫分布的不均勻性,導(dǎo)致在流量峰值時,部分服務(wù)器需要處理的對索引數(shù)據(jù)庫的用戶的查詢請求過多,導(dǎo)致部分服務(wù)器響應(yīng)用戶的查詢請求的時間過長,需要通過調(diào)整索引數(shù)據(jù)庫在服務(wù)器上的分布來實現(xiàn)負(fù)載均衡。目前,通常是將利用率最高的服務(wù)器的開銷最大的索引數(shù)據(jù)庫遷移至利用率最低的服務(wù)器。
然而,當(dāng)采用上述方式進(jìn)行負(fù)載均衡時,一方面,由于運行有高開銷的索引數(shù)據(jù)庫的熱點服務(wù)器的存在,會出現(xiàn)諸如調(diào)整后的新的分布與遷移前的分布相同的情況,導(dǎo)致調(diào)整后服務(wù)器的利用率的均衡性未得到任何實質(zhì)上的改進(jìn),并且,調(diào)整后會出現(xiàn)新的熱點服務(wù)器,依然存在熱點服務(wù)器響應(yīng)用戶查詢請求過長的問題,另一方面,采用單一的調(diào)整方式調(diào)整索引數(shù)據(jù)庫在服務(wù)器上的分布,沒有對不同的調(diào)整方式進(jìn)行探索。
技術(shù)實現(xiàn)要素:
本申請?zhí)峁┝素?fù)載均衡方法和裝置,用于解決上述背景技術(shù)部分存在的技術(shù)問題。
第一方面,本申請?zhí)峁┝素?fù)載均衡方法,該方法包括:執(zhí)行預(yù)處理操作:從多個服務(wù)器中確定包含預(yù)設(shè)數(shù)量開銷大于開銷閾值的高開銷索引數(shù)據(jù)庫的熱點服務(wù)器和包含的索引數(shù)據(jù)庫的開銷均小于開銷閾值的冷服務(wù)器,其中,開銷為服務(wù)器處理對索引數(shù)據(jù)庫的查詢請求使用的資源與服務(wù)器的資源的比例;將冷服務(wù)器上的索引數(shù)據(jù)庫進(jìn)行遷移,以及將高開銷索引數(shù)據(jù)庫遷移到冷服務(wù)器;確定對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整后滿足預(yù)設(shè)條件的最優(yōu)調(diào)整方式,以及以最優(yōu)調(diào)整方式對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整,預(yù)設(shè)條件包括:服務(wù)器的利用率之間的差值之和最小,其中,服務(wù)器的利用率為服務(wù)器上的索引數(shù)據(jù)庫的開銷之和。
第二方面,本申請?zhí)峁┝素?fù)載均衡裝置,該裝置包括:預(yù)處理單元,配置用于執(zhí)行預(yù)處理操作:從多個服務(wù)器中確定包含預(yù)設(shè)數(shù)量開銷大于開銷閾值的高開銷索引數(shù)據(jù)庫的熱點服務(wù)器和包含的索引數(shù)據(jù)庫的開銷均小于開銷閾值的冷服務(wù)器,其中,開銷為服務(wù)器處理對索引數(shù)據(jù)庫的查詢請求使用的資源與服務(wù)器的資源的比例;將冷服務(wù)器上的索引數(shù)據(jù)庫進(jìn)行遷移,以及將高開銷索引數(shù)據(jù)庫遷移到冷服務(wù)器;探索單元,配置用于確定對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整后滿足預(yù)設(shè)條件的最優(yōu)調(diào)整方式,以及以最優(yōu)調(diào)整方式對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整,預(yù)設(shè)條件包括:服務(wù)器的利用率之間的差值之和最小,其中,服務(wù)器的利用率為服務(wù)器上的索引數(shù)據(jù)庫的開銷之和。
本申請?zhí)峁┑呢?fù)載均衡方法和裝置,通過執(zhí)行預(yù)處理操作,確定對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整后滿足預(yù)設(shè)條件的最優(yōu)調(diào)整方式,以最優(yōu)調(diào)整方式對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整。一方面,預(yù)處理操作將高開銷索引數(shù)據(jù)庫均衡地分散在不同的服務(wù)器上,從而,避免了諸如調(diào)整后的新的分布與遷移前的分布相同而導(dǎo)致調(diào)整后服務(wù)器的利用率的均衡性未得到任何實質(zhì)上的改進(jìn)的問題,同時,也避免了調(diào)整后會出現(xiàn)新的熱點服務(wù)器,依然存在熱點服務(wù)器響應(yīng)用戶查詢請求過長的問題,進(jìn)而消除熱點服務(wù)器對負(fù)載均衡過程的影響,為后續(xù)的對索引數(shù)據(jù)庫在服務(wù)器上的分布的調(diào)整方式的探索提供更大的空間。另一方面,在消除熱點服務(wù)器對負(fù)載均衡過程的影響的基礎(chǔ)上,對索引數(shù)據(jù)庫在服務(wù)器上的分布的調(diào)整方式進(jìn)行多種方式的探索,探索出的最優(yōu)的調(diào)整方式,從而,以最優(yōu)的調(diào)整方式調(diào)整索引數(shù)據(jù)庫在服務(wù)器上的分布,進(jìn)一步平衡資源的利用率,實現(xiàn)負(fù)載均衡。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1示出了可以應(yīng)用于本申請的負(fù)載均衡方法或裝置的實施例的示例性系統(tǒng)架構(gòu);
圖2示出了根據(jù)本申請的負(fù)載均衡方法的一個實施例的流程圖;
圖3示出了消除熱點服務(wù)器的一個效果示意圖;
圖4示出了改進(jìn)的索引數(shù)據(jù)庫MOVE操作的一個效果示意圖;
圖5示出了索引數(shù)據(jù)庫交換操作的一個效果示意圖;
圖6示出了深度搜索操作的一個效果示意圖;
圖7示出了根據(jù)本申請的負(fù)載均衡裝置的一個實施例的結(jié)構(gòu)示意圖;
圖8是適于用來實現(xiàn)本申請實施例的負(fù)載均衡裝置的服務(wù)器的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本申請作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖牵颂幩枋龅木唧w實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本申請。
圖1示出了可以應(yīng)用于本申請的負(fù)載均衡方法或裝置的示例性系統(tǒng)架構(gòu)。
如圖1所示,系統(tǒng)架構(gòu)可以包括服務(wù)器101、網(wǎng)絡(luò)102、多個服務(wù)器103。服務(wù)器103可以為數(shù)據(jù)中心的機(jī)房中的服務(wù)器。網(wǎng)絡(luò)102用以在服務(wù)器101和服務(wù)器103之間提供傳輸鏈路的介質(zhì)。服務(wù)器103可以存儲有用于存儲線上服務(wù)例如在線搜索服務(wù)的數(shù)據(jù)的索引數(shù)據(jù)庫,線上每天產(chǎn)生的海量數(shù)據(jù)經(jīng)過清洗、處理、分析之后,建成不同的索引數(shù)據(jù)庫。索引數(shù)據(jù)庫分布及其副本分布式存儲在多個服務(wù)器103中,每一個服務(wù)器103處理對存儲在其上的索引數(shù)據(jù)庫的用戶的查詢請求。服務(wù)器101可以執(zhí)行預(yù)處理操作,向至少一部分服務(wù)器103發(fā)送與為消除多個服務(wù)器103中包含高開銷的索引數(shù)據(jù)庫的熱點服務(wù)器對負(fù)載均衡過程的影響相關(guān)的指令,控制索引數(shù)據(jù)庫在服務(wù)器103之間的遷移,消除熱點服務(wù)器對負(fù)載均衡的影響。在執(zhí)行預(yù)處理操作,之后,服務(wù)器101可以向至少一部分服務(wù)器103發(fā)送與探索索引數(shù)據(jù)庫在服務(wù)器103上的分布進(jìn)行調(diào)整的調(diào)整方式相關(guān)的指令,控制索引數(shù)據(jù)庫在服務(wù)器103之間的遷移,從而,對調(diào)整方式進(jìn)行探索,探索出多種調(diào)整方式,可以按照探索出的最優(yōu)的調(diào)整方式,對索引數(shù)據(jù)庫在多個服務(wù)器103上的分布進(jìn)行調(diào)整,使得多個服務(wù)器103的利用率更加均衡,實現(xiàn)負(fù)載均衡。
請參考圖2,其示出了根據(jù)本申請的負(fù)載均衡方法的一個實施例的流程圖。該方法可以由服務(wù)器例如圖1中的服務(wù)器101執(zhí)行,相應(yīng)地,負(fù)載均衡裝置可以設(shè)置于服務(wù)器例如圖1中的服務(wù)器101中。
步驟201,執(zhí)行預(yù)處理操作。
在本實施例中,在對多個服務(wù)器上的索引數(shù)據(jù)庫調(diào)整進(jìn)行負(fù)載均衡時,經(jīng)常會出現(xiàn)在將利用率最高的服務(wù)器的開銷最大的索引數(shù)據(jù)庫遷移到利用率最低的服務(wù)器之后,依然難以實現(xiàn)負(fù)載均衡的情況。例如,三個服務(wù)器的資源總量相同,三個服務(wù)器的利用率分別為60%,100%,50%,第一個服務(wù)器上運行10%、20%、30%的索引數(shù)據(jù)庫,第二個服務(wù)器上運行開銷均為50%的索引數(shù)據(jù)庫,第三個服務(wù)器上運行開銷為50%的索引數(shù)據(jù)庫。在將利用率最高的服務(wù)器上的索引數(shù)據(jù)庫遷移到利用率最低的服務(wù)器上時,即將第二個服務(wù)器上的開銷為50%的數(shù)據(jù)庫遷移到第三個服務(wù)器上,然而,調(diào)整后的三個服務(wù)器的利用率分別為60%,50%,100%,并沒有使得服務(wù)器的利用率在均衡性上有任何實質(zhì)上的改進(jìn),第三個服務(wù)器成為新的熱點服務(wù)器,依然存在響應(yīng)用戶的查詢請求的時間過長的問題。
在本實施例中,在對索引數(shù)據(jù)庫在多個服務(wù)器上的分布的調(diào)整方式進(jìn)行探索之前,可以首先執(zhí)行預(yù)處理操作,在預(yù)處理操作中,可以首先確定包含預(yù)設(shè)數(shù)量開銷大于開銷閾值的高開銷索引數(shù)據(jù)庫的熱點服務(wù)器和包含的索引數(shù)據(jù)庫的開銷均小于開銷閾值的冷服務(wù)器。預(yù)設(shè)數(shù)量可以為至少兩個。索引數(shù)據(jù)庫的開銷可以是指服務(wù)器處理對索引數(shù)據(jù)庫的查詢請求使用的資源與服務(wù)器所有的資源的比例。
例如,資源為CPU資源,可以將服務(wù)器處理對索引數(shù)據(jù)庫的查詢請求的使用的CPU資源與服務(wù)器的所有CPU資源的比例即CPU使用率大于40%的索引數(shù)據(jù)庫定義為高開銷索引數(shù)據(jù)庫??梢允紫葟亩鄠€服務(wù)器中選取出難調(diào)的熱點服務(wù)器。難調(diào)的熱點服務(wù)器可以為包含至少兩個高開銷索引數(shù)據(jù)庫的服務(wù)器。然后,可以將冷服務(wù)器上的索引數(shù)據(jù)庫進(jìn)行遷移,以及將熱點服務(wù)器上的高開銷索引數(shù)據(jù)庫遷移到冷服務(wù)器。
在本實施例的一些可選的實現(xiàn)方式中,在預(yù)處理操作中,可以從冷服務(wù)器上選取出索引數(shù)據(jù)庫,例如選取冷服務(wù)器上開銷最大的索引數(shù)據(jù)庫,將冷服務(wù)器上選取出的索引數(shù)據(jù)庫遷移至利用率小于利用率閾值的服務(wù)器。
請參考圖3,其示出了消除熱點服務(wù)器的一個效果示意圖。
在圖3中,示出了服務(wù)器301、服務(wù)器302、服務(wù)器303。服務(wù)器301存儲三個開銷分別為10%、20%、30%的索引數(shù)據(jù)庫,服務(wù)器302上存儲開銷均為50%的兩個索引數(shù)據(jù)庫,服務(wù)器303上存儲開銷為50%的索引數(shù)據(jù)庫。將開銷大于40%的索引數(shù)據(jù)庫定義為高開銷索引數(shù)據(jù)庫。服務(wù)器302為存儲兩個高開銷索引數(shù)據(jù)庫的熱點服務(wù)器。服務(wù)器301為未存儲高開銷索引數(shù)據(jù)庫的冷服務(wù)器。在預(yù)處理操作中,可以將冷服務(wù)器即服務(wù)器301上開銷為30%的索引數(shù)據(jù)庫遷移到利用率較低的服務(wù)器303,將熱點服務(wù)器即服務(wù)器302上一個開銷為50%的高開銷索引數(shù)據(jù)庫遷移到冷服務(wù)器即服務(wù)器301上。
在本實施例中,通過預(yù)處理操作,一方面,將熱點服務(wù)器上的高開銷索引數(shù)據(jù)庫均衡地分散在不同的服務(wù)器上,均衡了高開銷索引數(shù)據(jù)庫在服務(wù)器上的分布,從而,避免了諸如調(diào)整后的新的分布與遷移前的分布相同而導(dǎo)致調(diào)整后服務(wù)器的利用率的均衡性未得到任何實質(zhì)上的改進(jìn)的問題,同時,也避免了調(diào)整后會出現(xiàn)新的熱點服務(wù)器,依然存在熱點服務(wù)器響應(yīng)用戶查詢請求過長的問題,進(jìn)而消除熱點服務(wù)器對負(fù)載均衡過程的影響。另一方面,為后續(xù)的對索引數(shù)據(jù)庫在服務(wù)器上的分布的調(diào)整方式的探索創(chuàng)造了更大的空間,在后續(xù)的對索引數(shù)據(jù)庫在服務(wù)器上的分布的調(diào)整方式的探索中,鄰域狀態(tài)搜索的空間和分支顯著增多。
步驟202,確定最優(yōu)調(diào)整方式,以及以最優(yōu)調(diào)整方式調(diào)整索引數(shù)據(jù)庫在服務(wù)器上的分布。
在通過步驟201的預(yù)處理操作之后,可以對索引數(shù)據(jù)庫在服務(wù)器上的分布的調(diào)整方式進(jìn)行探索。從而,探索出最優(yōu)的調(diào)整方式,利用最優(yōu)的調(diào)整方式對索引數(shù)據(jù)庫在服務(wù)器上的分布進(jìn)行調(diào)整,進(jìn)一步平衡服務(wù)器的資源的利用率,到達(dá)負(fù)載均衡。在采用多種類型的操作對調(diào)整方式的探索的過程中,每進(jìn)行一次操作,可以使得索引數(shù)據(jù)庫在各個服務(wù)器的分布發(fā)生改變,得到一個相對于操作之前索引數(shù)據(jù)庫在服務(wù)器上的分布的指示操作之后索引數(shù)據(jù)庫在服務(wù)器上的分布的鄰域狀態(tài)。
在本實施例的一些可選的實現(xiàn)方式中,可以通過第一調(diào)整操作(也可稱之為改進(jìn)的索引數(shù)據(jù)庫MOVE操作)來探索最優(yōu)的調(diào)整方式。改進(jìn)的索引數(shù)據(jù)庫MOVE操作可以為:從服務(wù)器上選取出兩個服務(wù)器作為第一服務(wù)器和第二服務(wù)器,可以將第一服務(wù)器上開銷小于開銷閾值的索引數(shù)據(jù)庫遷移至第二服務(wù)器,例如,可以將第一服務(wù)器上開銷最小的索引數(shù)據(jù)庫遷移至第二服務(wù)器,得到一個鄰域狀態(tài)。
請參考圖4,其示出了改進(jìn)的索引數(shù)據(jù)庫MOVE操作的一個效果示意圖。
在圖4中,示出了服務(wù)器401、服務(wù)器402、服務(wù)器403。在進(jìn)行改進(jìn)的索引數(shù)據(jù)庫MOVE操作之前,索引數(shù)據(jù)庫在服務(wù)器401、服務(wù)器402、服務(wù)器403上的分布為:服務(wù)器401上存儲開銷分別為10%、20%、50%的索引數(shù)據(jù)庫,服務(wù)器402上存儲開銷為50%的索引數(shù)據(jù)庫,服務(wù)器403上存儲開銷分別為30%、50%的索引數(shù)據(jù)庫。在一次改進(jìn)的索引數(shù)據(jù)庫MOVE操作中,可以將服務(wù)器401上的開銷最小的開銷為10%的索引數(shù)據(jù)庫遷移到服務(wù)器402,得到一個領(lǐng)域狀態(tài),即服務(wù)器401上存儲開銷分別為20%、50%的索引數(shù)據(jù)庫,服務(wù)器402上存儲開銷分別為10%、50%的索引數(shù)據(jù)庫,服務(wù)器403上存儲開銷分別為30%、50%的索引數(shù)據(jù)庫。僅消耗了10%的服務(wù)器的I/O資源,帶寬消耗小,同時,使得服務(wù)器的利用率更加均衡。
每進(jìn)行一次改進(jìn)的索引數(shù)據(jù)庫MOVE操作,使得索引數(shù)據(jù)庫在服務(wù)器上的分布發(fā)生改變,得到一個指示進(jìn)行索引數(shù)據(jù)庫MOVE操作之后索引數(shù)據(jù)庫在多個服務(wù)器上的分布的領(lǐng)域狀態(tài)。通過多次改進(jìn)的索引數(shù)據(jù)庫MOVE操作,可得到多個領(lǐng)域狀態(tài)??梢詮亩鄠€鄰域狀態(tài)中選取出滿足預(yù)設(shè)條件例如服務(wù)器之間的利用率的差值之和最小的最優(yōu)鄰域狀態(tài)。然后,可以將可以到達(dá)最優(yōu)鄰域狀態(tài)的調(diào)整方式作為最優(yōu)調(diào)整方式。從而,通過改進(jìn)的索引數(shù)據(jù)庫MOVE操作,進(jìn)行對最優(yōu)調(diào)整方式的探索。
在本實施例的一些可選的實現(xiàn)方式中,可以通過第二調(diào)整操作(也可稱之為索引數(shù)據(jù)庫交換操作)來探索最優(yōu)的調(diào)整方式。索引數(shù)據(jù)庫交換操作可以為:從多個服務(wù)器中選取出剩余利用率均小于剩余利用率閾值的兩個服務(wù)器作為第三服務(wù)器和第四服務(wù)器。然后,可以分別從第三服務(wù)器和第四服務(wù)器上選取出索引數(shù)據(jù)庫??梢詫牡谌?wù)器選取出的索引數(shù)據(jù)庫遷移至第四服務(wù)器,以及將從第四服務(wù)器選取出的索引數(shù)據(jù)庫遷移至第三服務(wù)器,得到一個經(jīng)過索引數(shù)據(jù)庫交換操作后指示索引數(shù)據(jù)庫在多個服務(wù)器上的分布的鄰域狀態(tài)。
請參考圖5,其示出了索引數(shù)據(jù)庫交換操作的一個效果示意圖。
在圖5中,示出了服務(wù)器501、服務(wù)器502。在進(jìn)行索引數(shù)據(jù)庫交換操作之前,索引數(shù)據(jù)庫在服務(wù)器501、服務(wù)器502上的分布為:服務(wù)器501上存儲開銷分別為50%、40%的索引數(shù)據(jù)庫,服務(wù)器502上存儲開銷分別為30%、40%的索引數(shù)據(jù)庫。服務(wù)器501、服務(wù)器502的剩余利用率分別為10%、30%,均小于剩余利用率閾值,無法將其他服務(wù)器上的索引數(shù)據(jù)庫遷移至服務(wù)器501、服務(wù)器502。在一次索引數(shù)據(jù)庫交換操作中,可以將服務(wù)器501上的開銷為40%的索引數(shù)據(jù)庫遷移到服務(wù)器502,將服務(wù)器502上的開銷為30%的索引數(shù)據(jù)庫遷移到服務(wù)器501,得到一個領(lǐng)域狀態(tài),即服務(wù)器501上存儲開銷分別為30%、50%的索引數(shù)據(jù)庫,服務(wù)器502上存儲開銷均為40%的兩個索引數(shù)據(jù)庫,服務(wù)器501、502的利用率調(diào)整成為80%、80%,使得服務(wù)器501、502的利用率更加均衡。
每進(jìn)行一次索引數(shù)據(jù)庫交換操作,索引數(shù)據(jù)庫在服務(wù)器上的分布發(fā)生改變,得到一個指示進(jìn)行數(shù)據(jù)庫交換操作之后的索引數(shù)據(jù)庫在服務(wù)器上的分布的領(lǐng)域狀態(tài)。通過多次索引數(shù)據(jù)庫交換,可得到多個領(lǐng)域狀態(tài)??梢詮亩鄠€鄰域狀態(tài)中選取出滿足預(yù)設(shè)條件例如服務(wù)器之間的利用率的差值之和最小的狀態(tài)作為最優(yōu)鄰域狀態(tài)。然后,可以將可到達(dá)最優(yōu)鄰域狀態(tài)的調(diào)整方式作為最優(yōu)調(diào)整方式。從而,通過索引數(shù)據(jù)庫交換操作,進(jìn)行對最優(yōu)調(diào)整方式的探索。
在本實施例的一些可選的實現(xiàn)方式中,可以通過第三調(diào)整操作(也可稱之為深度搜索操作)來探索最優(yōu)的調(diào)整方式。深度搜索操作可以為:從多個服務(wù)器中選取出三個服務(wù)器作為第五服務(wù)器、第六服務(wù)器和第七服務(wù)器??梢苑謩e從第五服務(wù)器和第六服務(wù)器上選取出索引數(shù)據(jù)庫,將從第五服務(wù)器選取出的索引數(shù)據(jù)庫遷移至第六服務(wù)器,以及將從第六服務(wù)器選取出的索引數(shù)據(jù)庫遷移至第七服務(wù)器,得到指示在進(jìn)行一次深度搜索操作后索引數(shù)據(jù)庫在多個服務(wù)器上的分布的鄰域狀態(tài)。例如,選取出的第五服務(wù)器的利用率高于第六服務(wù)器,第六服務(wù)器的利用率高于第七服務(wù)器,可以將第五服務(wù)器上開銷最大的索引數(shù)據(jù)庫遷移到第六服務(wù)器,以及將第六服務(wù)器上開銷最大的索引數(shù)據(jù)庫遷移到第七服務(wù)器,得到一個鄰域狀態(tài)。
請參考圖6,其示出了深度搜索操作的一個效果示意圖。
在圖6中,示出了服務(wù)器601、服務(wù)器602、服務(wù)器603。在進(jìn)行深度搜索操作之前,索引數(shù)據(jù)庫在服務(wù)器601、服務(wù)器602、服務(wù)器603上的分布為:服務(wù)器601上存儲開銷分別為30%、30%、40%的索引數(shù)據(jù)庫。服務(wù)器602上存儲開銷分別為20%、50%的索引數(shù)據(jù)庫。服務(wù)器603上存儲一個開銷為10%的索引數(shù)據(jù)庫。在一次深度搜索操作中,可以將服務(wù)器601上開銷為40%的索引數(shù)據(jù)庫遷移到服務(wù)器602,將服務(wù)器602上開銷為50%的索引數(shù)據(jù)庫遷移到服務(wù)器603上,服務(wù)器601、服務(wù)器602、服務(wù)器603的利用率調(diào)整為均為60%,使得服務(wù)器601、服務(wù)器602、服務(wù)器603的利用率更加均衡。
每進(jìn)行一次深度搜索操作,索引數(shù)據(jù)庫在服務(wù)器上的分布發(fā)生改變,得到一個指示進(jìn)行深度搜索操作之后的索引數(shù)據(jù)庫在服務(wù)器上的分布的領(lǐng)域狀態(tài)。通過多次深度搜索操作,可得到多個領(lǐng)域狀態(tài)??梢詮亩鄠€鄰域狀態(tài)中選取出滿足預(yù)設(shè)條件例如服務(wù)器之間的利用率的差值之和最小的狀態(tài)作為最優(yōu)鄰域狀態(tài)。然后,可以將可到達(dá)最優(yōu)鄰域狀態(tài)的調(diào)整方式作為最優(yōu)調(diào)整方式。從而,通過深度搜索操作,進(jìn)行對最優(yōu)調(diào)整方式的探索。
在本實施例中,在確定出最優(yōu)調(diào)整方式之后,可以以確定出的最優(yōu)的調(diào)整方式對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整。
例如,可以通過改進(jìn)的索引數(shù)據(jù)庫MOVE操作、索引數(shù)據(jù)庫交換操作、深度搜索操作分別對最優(yōu)的調(diào)整方式進(jìn)行探索。然后,可以選取探索出最優(yōu)的調(diào)整方式對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整,從而使得多個服務(wù)器的利用率更加均衡,進(jìn)一步平衡資源的利用率,進(jìn)而增大服務(wù)器集群的吞吐量,加強服務(wù)器集群在流量高峰期的承載能力。
請參考圖7,其示出了根據(jù)本申請的負(fù)載均衡裝置的一個實施例的結(jié)構(gòu)示意圖,負(fù)載均衡裝置包括:預(yù)處理單元701,探索單元702。其中,預(yù)處理單元701配置用于執(zhí)行預(yù)處理操作:從多個服務(wù)器中確定包含預(yù)設(shè)數(shù)量開銷大于開銷閾值的高開銷索引數(shù)據(jù)庫的熱點服務(wù)器和包含的索引數(shù)據(jù)庫的開銷均小于開銷閾值的冷服務(wù)器,其中,開銷為服務(wù)器處理對索引數(shù)據(jù)庫的查詢請求使用的資源與服務(wù)器的資源的比例;將冷服務(wù)器上的索引數(shù)據(jù)庫進(jìn)行遷移,以及將高開銷索引數(shù)據(jù)庫遷移到冷服務(wù)器;探索單元702配置用于確定對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整后滿足預(yù)設(shè)條件的最優(yōu)調(diào)整方式,以及以最優(yōu)調(diào)整方式對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整,預(yù)設(shè)條件包括:服務(wù)器的利用率之間的差值之和最小,其中,服務(wù)器的利用率為服務(wù)器上的索引數(shù)據(jù)庫的開銷之和。
在本實施例的一些可選的實現(xiàn)方式中,預(yù)處理單元701包括:索引數(shù)據(jù)庫遷移子單元(未示出),配置用于從冷服務(wù)器上選取出索引數(shù)據(jù)庫;將冷服務(wù)器上選取出的索引數(shù)據(jù)庫遷移至利用率小于利用率閾值的服務(wù)器。
在本實施例的一些可選的實現(xiàn)方式中,負(fù)載均衡裝置還包括:第一調(diào)整方式確定單元(未示出),配置用于執(zhí)行多次以下第一調(diào)整操作:從多個服務(wù)器中選取出第一服務(wù)器和第二服務(wù)器;從第一服務(wù)器上選取出開銷小于開銷閾值的索引數(shù)據(jù)庫;將從第一服務(wù)器上選取出的索引數(shù)據(jù)庫遷移至第二服務(wù)器,得到指示索引數(shù)據(jù)庫在服務(wù)器上的分布的鄰域狀態(tài);從得到的所有鄰域狀態(tài)中選取出滿足預(yù)設(shè)條件的最優(yōu)鄰域狀態(tài);將最優(yōu)鄰域狀態(tài)對應(yīng)的調(diào)整方式確定為最優(yōu)調(diào)整方式;第二調(diào)整方式確定單元(未示出),配置用于執(zhí)行多次以下第二調(diào)整操作:從多個服務(wù)器中選取出剩余利用率均小于剩余利用率閾值的第三服務(wù)器和第四服務(wù)器;分別從第三服務(wù)器和第四服務(wù)器上選取出索引數(shù)據(jù)庫;將從第三服務(wù)器選取出的索引數(shù)據(jù)庫遷移至第四服務(wù)器,以及將從第四服務(wù)器選取出的索引數(shù)據(jù)庫遷移至第三服務(wù)器,得到指示索引數(shù)據(jù)庫在服務(wù)器上的分布的鄰域狀態(tài);從得到的所有鄰域狀態(tài)中選取出滿足預(yù)設(shè)條件的最優(yōu)鄰域狀態(tài);將最優(yōu)鄰域狀態(tài)對應(yīng)的調(diào)整方式確定為最優(yōu)調(diào)整方式;第三調(diào)整方式確定單元(未示出),配置用于執(zhí)行多次以下第三調(diào)整操作:從多個服務(wù)器中選取出第五服務(wù)器、第六服務(wù)器和第七服務(wù)器;分別從第五服務(wù)器和第六服務(wù)器上選取出索引數(shù)據(jù)庫;將從第五服務(wù)器選取出的索引數(shù)據(jù)庫遷移至第六服務(wù)器,以及將從第六服務(wù)器選取出的索引數(shù)據(jù)庫遷移至第七服務(wù)器,得到指示索引數(shù)據(jù)庫在服務(wù)器上的分布的鄰域狀態(tài);從得到的所有鄰域狀態(tài)中選取出滿足預(yù)設(shè)條件的最優(yōu)鄰域狀態(tài);將最優(yōu)鄰域狀態(tài)對應(yīng)的調(diào)整方式確定為最優(yōu)調(diào)整方式
本申請還提供了一種服務(wù)器,該服務(wù)器可以包括圖7所描述的負(fù)載均衡裝置。該服務(wù)器可以配置有一個或多個處理器;存儲器,用于存儲一個或多個程序,一個或多個程序中可以包含用以執(zhí)行上述步驟201-202中描述的操作的指令。當(dāng)一個或多個程序被一個或多個處理器執(zhí)行時,使得一個或多個處理器執(zhí)行上述步驟201-202中描述的操作。
圖8示出了適于用來實現(xiàn)本申請的負(fù)載均衡方法的服務(wù)器的結(jié)構(gòu)示意圖。
如圖8所示,包括中央處理單元(CPU)801,其可以根據(jù)存儲在只讀存儲器(ROM)802中的程序或者從存儲部分808加載到隨機(jī)訪問存儲器(RAM)803中的程序而執(zhí)行各種適當(dāng)?shù)膭幼骱吞幚?。CPU 801、ROM802以及RAM 803通過總線804彼此相連。輸入/輸出(I/O)接口805也連接至總線804。
以下部件連接至I/O接口805:輸入部分806;輸出部分807;包括硬盤等的存儲部分808;以及包括諸如LAN卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分809。通信部分809經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動器810也根據(jù)需要連接至I/O接口805??刹鹦督橘|(zhì)811,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲器等等,根據(jù)需要安裝在驅(qū)動器810上,以便于從其上讀出的計算機(jī)程序根據(jù)需要被安裝入存儲部分808。
本申請中的上述各個步驟描述的過程可以被實現(xiàn)為計算機(jī)程序。該計算機(jī)程序可以承載在計算機(jī)可讀介質(zhì)上,該計算機(jī)程序包括用于執(zhí)行流程圖所示的方法的指令。該計算機(jī)程序可以通過通信部分809從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)811被安裝。
本申請還提供了一種計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以是服務(wù)器上所包括的;也可以是單獨存在,未裝配入服務(wù)器上。該計算機(jī)可讀介質(zhì)承載有一個或者多個程序,當(dāng)一個或者多個程序被該服務(wù)器執(zhí)行時,使得該服務(wù)器:執(zhí)行預(yù)處理操作:從多個服務(wù)器中確定包含預(yù)設(shè)數(shù)量開銷大于開銷閾值的高開銷索引數(shù)據(jù)庫的熱點服務(wù)器和包含的索引數(shù)據(jù)庫的開銷均小于開銷閾值的冷服務(wù)器,其中,開銷為服務(wù)器處理對索引數(shù)據(jù)庫的查詢請求使用的資源與服務(wù)器的資源的比例;將冷服務(wù)器上的索引數(shù)據(jù)庫進(jìn)行遷移,以及將高開銷索引數(shù)據(jù)庫遷移到冷服務(wù)器;確定對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整后滿足預(yù)設(shè)條件的最優(yōu)調(diào)整方式,以及以最優(yōu)調(diào)整方式對索引數(shù)據(jù)庫在多個服務(wù)器上的分布進(jìn)行調(diào)整,預(yù)設(shè)條件包括:服務(wù)器的利用率之間的差值之和最小,其中,服務(wù)器的利用率為服務(wù)器上的索引數(shù)據(jù)庫的開銷之和。
需要說明的是,上述計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)或者是上述兩者的任意組合。計算機(jī)可讀存儲介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子可以包括但不限于:具有一個或多個導(dǎo)線的電連接、便攜式計算機(jī)磁盤、硬盤、隨機(jī)訪問存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本申請中,計算機(jī)可讀存儲介質(zhì)可以是任何包括或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。而在本申請中,計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以為多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計算機(jī)可讀介質(zhì)上包括的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于:無線、電線、光纜、RF等等,或者上述的任意合適的組合。
以上描述僅為本申請的較佳實施例以及對所運用技術(shù)原理的說明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時也應(yīng)涵蓋在不脫離本申請的構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。