新四季網

一種基於ring的多核CPU負載均衡方法及系統的製作方法

2023-10-08 05:29:54

專利名稱:一種基於ring的多核CPU負載均衡方法及系統的製作方法
技術領域:
本發明涉及多核CPU (Central Processing Unit,中央處理單元),尤其涉及多核 CPU的網絡負載均衡。
背景技術:
當前網絡已經非常普及,網際網路高速發展使得網絡訪問越來越頻繁,因此引起用 戶對網絡帶寬、網絡訪問速度的要求也越來越高。網絡設備中的網卡已經隨著用戶對網絡 訪問速度的要求從十兆網卡、百兆網卡發展到千兆網卡。隨著現有網絡各個核心部分業務量的提高以及訪問量和數據流量的快速增長,對 數據處理能力和計算強度要求也大大增強,使得單一伺服器設備無法承擔。在此情況下,如 果扔掉現有設備去做大量硬體升級,這將造成現有資源巨大浪費,而且如果再面臨下一次 業務量提升時,又將導致再一次硬體升級的高額成本投入,甚至性能再卓越的設備也不能 滿足當前業務量增長的需求。針對此情況而衍生出來的一種廉價有效透明的技術即為負載均衡,負載均衡是一 種擴展現有網絡設備和伺服器帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活 性和可用性的技術。在多核CPU系統中有多個網卡和多個CPU,通常情況下,一個網卡只對應一個CPU, 此時最小負載平衡單元是網卡,當網卡流量很大時與其對應的CPU將非常忙,因此很可能 導致網絡丟包,進而大大影響訪問網絡速度。

發明內容
本發明提供了一種能夠提高CPU負載均衡的方法及系統。在第一方面,本發明提供了一種基於ring的多核CPU負載均衡方法,該方法首先 實時檢測該多核CPU中各CPU負載均衡情況並判定該多核CPU是否均衡;然後在該多核CPU 不均衡情況下,評估各ring負載情況;最後以ring為單位調整ring與CPU之間的綁定關係。在第二方面,本發明提供了一種基於ring的多核CPU負載均衡系統,該系統包括 均衡模塊,用於實時檢測該多核CPU中各CPU負載均衡情況並判定該多核CPU是否均衡;在 該多核CPU不均衡情況下,評估各ring負載情況;並以ring為單位調整ring與CPU之間 的綁定關係。在本發明的一個實施例中,實時檢測多核CPU中各CPU負載均衡情況包括實時檢 測該多核CPU實際佔用率、CPU運行進程數量、CPU處理數據包數量、CPU處理數據包大小、 CPU負載網卡ring的數量。在本發明的另一個實施例中,評估各ring負載情況包括實時檢測多核CPU中各 ring通過ring數據包數量、通過ring數據包長度、ring的連接數。本發明通過判定CPU負載是否均衡,檢測每個ring負載情況,以及調整ring與CPU綁定關係,解決了多核CPU負載均衡問題。本發明方法以ring為最小平衡單元來調整CPU負載度,網卡流量劃分更細,多核CPU負載更加均衡。


下面將參照附圖對本發明的具體實施方案進行更詳細的說明,在附圖中圖1是本發明一個實施例的基於ring的多核CPU負載均衡系統框圖;圖2是本發明一個實施例的基於ring的多核CPU負載均衡流程圖。
具體實施例方式圖1是本發明一個實施例的基於ring的多核CPU負載均衡系統框圖。該系統包 括第一 CPU111、第二 CPU112、第三CPU113、均衡模塊120和第一網卡130、第二網卡140。其 中,第一網卡130包含第一 ringl31、第二 ringl32、第三ringl33 ;第二網卡140包含第四 ringl41、第五ringl42、第六ringl43、第七ringl44。圖 1 中,第一 CPUlll 與第二ringl32、 第四ringl41綁定,第二 CPU112與第一 ringl31、第六ringl43綁定,第三CPU113與第三 ringl33、第五 ringl42、第七 ringl44 綁定。為了方便描述,圖1僅示意性地描述出CPU數量為三個,網卡數量為兩個,ring數 量為七個,以及CPU與ring之間綁定關係,實際上,CPU、網卡、ring的數量均不限,且CPU 與ring之間綁定關係也不固定。第一 CPU111、第二 CPU112、第三CPU113用於處理來自第一網卡130或第二網卡 140中某個或某些ring中的數據。第一網卡130、第二網卡140分別包含多個ring,且每個網卡ring數量均可以根 據系統需求進行配置,該第一網卡130、第二網卡140用於將其所在系統接入到網絡中,該 第一網卡130、第二網卡140中的每個ring用於接收來自網絡的數據包以及向網絡中發送 數據包。均衡模塊120實時檢測第一 CPUl 11、第二 CPUl 12、第三CPUl 13的均衡狀況,同時 衡量第一網卡130、第二網卡140中各ring負載情況,根據所述各CPU均衡狀況及所述各 ring負載情況,調整CPU與ring之間的綁定關係,進而使多核CPU負載均衡。下面詳細闡 述均衡模塊120如何判定CPU均衡情況、如何衡量ring負載情況,以及如何調整CPU與ring 之間的綁定關係。假定均衡模塊120檢測到當前時刻第一 CPUlll與第一網卡130中的第二 ringl32 及第二網卡140中的第四ringl41綁定;第二 CPU112與第一網卡130中的第一 ringl31、 第二網卡140中的第六ringl43綁定;第三CPU123與第一網卡中的第三ringl33、第二網 卡140中的第五ringl42、第二網卡140中的第七ringl44綁定,如圖1所示。均衡模塊120實時檢查各CPU (第一 CPUl 11、第二 CPUl 12、第三CPUl 13)實際佔用 率、運行進程數量、處理數據包數量、處理數據包大小、負載網卡ring的數量等技術指標, 計算CPU(第一 CPU111、第二 CPU112、第三CPU113)各技術指標所佔百分比,並分別賦予各 技術指標一定權重,進而得到每個CPU (CPU111、CPUl 12、CPUl 13)均衡值。具體地,假設均衡模塊120實時檢測到當前時刻第一 CPUlll實際佔用率為10%, 第一 CPUlll運行進程數量佔多核CPU總運行進程數量20%,第一 CPUlll處理數據包數量佔多核CPU總處理數據包數量40%,第一 CPUl 11處理數據包大小佔多核CPU總處理數據包 大小20%,第一 CPUlll負載網卡ring數量佔多核CPU總負載網卡ring數量60%,以及負 載程度所佔權重為a,運程進程數量所佔權重為b,處理數據包數量所佔權重為c,處理數據 包大小所佔權重為d,負載網卡ring數量所佔權重為e,則該第一 CPUlll均衡值xl為,
xl = a*10% +b*20% +c*40% +d*20% +e*60%(1)假設此時第二 CPUl 12實際佔用率為40%,第二 CPUl 12運行進程數量佔多核CPU 總運行進程數量30%,第二 CPUl 12處理數據包數量佔多核CPU總處理數據包數量30%,第 二 CPUl 12處理數據包大小佔多核CPU總處理數據包大小60%,第二 CPUl 12負載網卡ring 數量佔多核CPU總負載網卡ring數量40%,則該第二 CPUl 12均衡值x2為,x2 = a*40% +b*30% +c*30% +d*60% +e*40%(2)則此時第三CPUl 13均衡值x3為,X3 = a*50% +b*50% +c*30% +d*20% +e*0%(3)取a = 100,b = 10,c = 10,d = 10,e = 20,則 xl = 30,x2 = 60,x3 = 60。均衡模塊120根據該第一 CPUlll均衡值xl、第二 CPUl 12均衡值x2、第三CPUl 13 均衡值x3,得到多核CPU均衡平均值,並根據該平均值分別得到該CPU111、CPU112、CPUl 13 均衡值與該平均值之間的差值yl、y2、y3,以及該差值yl、y2、y3分別佔其相應均衡值xl、 x2、x3百分比111%、112%、113%。具體地,yl值為,yl = xl-(xl+x2+x3)/3(4)y2 值為,y2 = x2-(xl+x2+x3)/3(5)y3 值為,y3 = x3-(xl+x2+x3)/3(6)ul 值為,ul = (yl/xl) 100%(7)u2 值為,u2 = (y2/x2) 100%(8)u3 值為,u3 = (y3/x3) 100%(9)將公式(1)、(2)、(3)代入公式(4)、(5)、(6),得到yl = -20, y2 = 10,y3 = 10 ; 再將 yl、y2、y3 代入公式(7)、(8)、(9),得到 ul = -66. 6%, u2 = 16. 7%,u3 = 16. 7%。假設由均衡模塊120設定的CPU均衡閾值η為50,被均衡閾值m為40,由於第一 〇 肌12均衡值110^1 = 30)小於該均衡閾值η (η = 50),則第一 CPU112不需要做均衡,而 第二 0 譏12、第三0 譏13均衡值12、13(乂2 = 60,χ3 = 60)大於均衡閾值η (η = 50),則該 第二 CPU112、第三CPU113需要做均衡。同時由於該第一 CPU112均衡值xl (xl = 30)小於被均衡閾值m(m = 40),則該第 一 CPUl 12 可以被均衡,而第二 CPUl 12、第三 CPUl 13 均衡值 x2、x3 (x2 = 60,x3 = 60)大 於被均衡閾值m(m = 40),則該第二 CPU112、第三CPU113不可以被均衡。由此可知,該第 一 CPUlll可以被均衡,該第二 CPU112、第三CPU113需要均衡,因此將該第二 CPU112、第三 CPU113均衡到第一CPUlll中,具體均衡數量需要通過評估ring負載情況來完成,以下將詳細闡述如何評估ring負載情況。均衡模塊120實時檢測各ring通過該ring數據包數量、數據包長度、連接數 (UDP、TCP連接數)等技術指標,計算各ring每個技術指標在與其綁定CPU中所佔百分比, 並分別賦予各技術指標一定權重,從而得到每個ring的負載。具體地,假設均衡模塊120實時監測到當前時刻第一 ringl31通過其數據包數量佔與其綁定CPU(即CPU112)通過數據包總數20%,第一 ringl31通過數據包包長佔與其 綁定CPU(即CPU112)通過數據包總包長30%,第一 ringl31連接數佔與其綁定CPU(即 CPUl 12)總連接數70 %,以及所述數據包數量權重為f,數據包包長權重為g,連接數權重為 h,則該第一 ringl31負載zl為,zl = f*20% +g*30% +h*70%(10)同理可得第二 ringl32負載z2、第三ringl33負載z3、第四ringl41負載z4、第五 ringl42負載z5、第六ringl43負載z6、第七ringl44負載z7。根據ring負載可得該ring負載在與其綁定CPU總ring負載中的百分比ν。圖1 中,第一 ringl31、第六ringl43與第二 CPUl 12綁定,假定該第一 ringl31負載zl值為10, 第六ringl43負載z6值為40,則該第一 ringl31負載在與其綁定CPUl 12總ring負載中的 百分比vl等於20% (通過10/(10+40)得到),則該第六1^叫143負載在與其綁定0 肌12 總ring負載中的百分比v6等於80%。同理可得,其他ring負載在與其綁定CPU總ring 負載中的百分比。在此假設與該第一 CPUlll綁定的第二 ringl32、第四ringl41負載在該第一 CPUlll總ring負載中的百分比v2、v4分別為40%、60%,並假設與第三CPUl 13綁定的第 三ringl33、第五ringl42、第七ringl44負載在該第三CPU113總ring負載中的百分比v3、 v5、v7分別為10%、20%、70%,如圖1中所標註。均衡模塊120分別用每個ring負載在與其綁定CPU總ring負載中的百分比v,減 去該CPU均衡值與多核CPU均衡平均值之間差值佔該CPU均衡值百分比u,再求得V減u最 小差值絕對值,最後將該最小差值絕對值對應ring與CPU之間綁定關係調整為被均衡CPU 中。具體地,第一ringl31負載在CPUl 12總ring負載中的百分比vl等於20%,CPUl 12 均衡值與多核CPU均衡平均值之間差值佔該CPU112均衡值百分比u2等於16. 7%,用該 vl減去該u2後的絕對值等於3. 3% ;而第六ringl43的v6 (80 % )與該第二 CPU112的 u2(16. 7% )之間差值絕對值等於63. 3%;由於3. 3%小於63. 3%,因此將第一 ringl31與 第二 CPU112之間的綁定關係調整為將該第一 ringl31綁定到第一 CPUlll上。同理將第三 CPUl 13與第五ringl42之間綁定關係調整為將該第五ringl43綁定到第一 CPUl 11上,如圖 1所示,其中虛線為調整後的綁定關係。圖2是本發明一個實施例的基於ring的多核CPU負載均衡流程圖。在步驟210,實時檢測多核CPU中各CPU均衡狀況並判定該多核CPU是否均衡。在本發明的一個實施例中,均衡模塊實時檢測各CPU實際佔用率、運行進程數量、 處理數據包數量、處理數據包大小、負載網卡ring的數量等技術指標,計算CPU各技術指 標所佔百分比,並分別賦予各技術指標一定權重,從而得到每個CPU均衡值;然後判定每個 CPU均衡值與系統設定的均衡閾值及被均衡閾值之間大小關係,當存在某個或某些CPU均衡值大於均衡閾值且存在某個或某些CPU均衡值小於被均衡閾值情況下,說明該多核CPU 不均衡。在判定到該多核CPU不均衡情況下,求得該多核CPU中所有CPU均衡值的平均值, 且均衡值大於均衡平均值的CPU為需要均衡的CPU,均衡值小於均衡平均值的CPU為需要被 均衡的CPU ;再求得各CPU均衡值與該多核CPU均衡平均值之間的差值,最後計算該差值與 該差值對應CPU均衡值的百分比。在步驟220,在多核CPU不均衡情況下,評估每個ring負載情況。 在本發明的一個實施例中,均衡模塊實時檢測各ring通過該ring數據包數量、數 據包長度、連接數等技術指標,計算ring各項技術指標在與其綁定CPU中所佔百分比,並分 別賦予各技術指標一定權重,從而得到每個ring的負載,然後再求該ring負載在與其綁定 CPU總ring負載中的百分比,從而得到該多核CPU中每個ring負載情況。在步驟230,以ring為單位調整ring與CPU之間綁定關係,以便該多核CPU負載 均衡。在需要均衡的所有CPU中,分別用每個ring負載在與其綁定CPU總ring負載中 百分比,減去該CPU均衡值與均衡平均值之間差值佔該CPU均衡值百分比,再求得該差值最 小絕對值,最後將該最小絕對值對應ring與CPU之間的綁定關係調整到被均衡CPU中。以上所述檢測CPU均衡情況、評估ring負載情況的算法有多種,需要說明的是,只 要是判定CPU不均衡後以ring為最小單位對CPU與ring之間綁定關係進行調整的方法及 相應設備就都在本發明保護範圍之內。顯而易見,在不偏離本發明的真實精神和範圍的前提下,在此描述的本發明可以 有許多變化。因此,所有對於本領域技術人員來說顯而易見的改變,都應包括在本權利要求 書所涵蓋的範圍之內。本發明所要求保護的範圍僅由所述的權利要求書進行限定。
權利要求
一種基於ring的多核CPU負載均衡方法,包括步驟a,實時檢測該多核CPU中各CPU負載均衡情況並判定該多核CPU是否均衡;步驟b,在該多核CPU不均衡情況下,評估各ring負載情況;步驟c,以ring為單位調整ring與CPU之間的綁定關係。
2.如權利要求1所述的一種基於ring的多核CPU負載均衡方法,其特徵在於,所述步 驟a中實時檢測該多核CPU中各CPU負載均衡情況包括步驟d ;步驟d,實時檢測該多核CPU中各CPU技術指標。
3.如權利要求2所述的一種基於ring的多核CPU負載均衡方法,其特徵在於,所述CPU 技術指標包括CPU實際佔用率、CPU運行進程數量、CPU處理數據包數量、CPU處理數據包大 小、CPU負載網卡ring的數量中的一個或多個。
4.如權利要求2所述的一種基於ring的多核CPU負載均衡方法,其特徵在於,在步驟 d之後包括步驟e ;步驟e,根據所述實時檢測到的多核CPU中各CPU技術指標,計算CPU各技術指標所佔 百分比,並分別賦予各技術指標一定權重,從而得到每個CPU均衡值。
5.如權利要求4所述的一種基於ring的多核CPU負載均衡方法,其特徵在於,所述步 驟a中判定該多核CPU是否均衡包括步驟f ;步驟f,判定每個CPU均衡值與系統設定的均衡閾值及被均衡閾值之間大小關係,當存 在CPU均衡值大於均衡閾值且存在CPU均衡值小於被均衡閾值時,判定該多核CPU不均衡。
6.如權利要求4所述的一種基於ring的多核CPU負載均衡方法,其特徵在於,在步驟 e之後包括步驟g ;步驟g,求該多核CPU中所有CPU均衡值的平均值,然後再求各CPU均衡值與多核CPU 均衡平均值之間的差值,再計算該差值在與該差值對應CPU均衡值中的百分比。
7.如權利要求1所述的一種基於ring的多核CPU負載均衡方法,其特徵在於,步驟b 中評估各ring負載情況包括步驟h ;步驟h,實時檢測該多核CPU中各ring技術指標。
8.如權利要求7所述的一種基於ring的多核CPU負載均衡方法,其特徵在於,所述 ring技術指標包括通過ring數據包數量、通過ring數據包長度、ring的連接數。
9.如權利要求8所述的一種基於ring的多核CPU負載均衡方法,其特徵在於,所述步驟;步驟i,計算ring各項技術指標在與其綁定CPU中所佔百分比,並分別賦予各技術指標 一定權重,從而得到每個ring負載,然後再求該ring負載在與其綁定CPU總ring負載中 的百分比。
10.如權利要求1所述的一種基於ring的多核CPU負載均衡方法,其特徵在於,所述步 驟c為根據所述CPU負載均衡情況及ring負載情況,以ring為單位調整ring與CPU之間 的綁定關係。
11.一種基於ring的多核CPU負載均衡系統,包括均衡模塊;所述均衡模塊用於實時檢測該多核CPU中各CPU負載均衡情況並判定該多核CPU是否 均衡;在該多核CPU不均衡情況下,評估各ring負載情況;並以ring為單位調整ring與 CPU之間的綁定關係。
全文摘要
本發明涉及一種基於ring的多核CPU負載均衡方法及系統。該方法包括實時檢測該多核CPU中各CPU負載均衡情況並判定該多核CPU是否均衡;在該多核CPU不均衡情況下,評估各ring負載情況;以ring為單位調整ring與CPU之間的綁定關係。本發明方法以ring為最小單位調整CPU負載度,網卡流量劃分更細,進而使多核CPU負載更加均衡。本發明方法及系統能夠廣泛應用於多核CPU中。
文檔編號G06F9/50GK101840356SQ20091024357
公開日2010年9月22日 申請日期2009年12月25日 優先權日2009年12月25日
發明者梁志勇, 王慶官, 米嘉, 陳鑫 申請人:北京網康科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀