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