專(zhuān)利名稱(chēng):實(shí)現(xiàn)多核處理器間中斷負(fù)載均衡的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),尤其涉及高速網(wǎng)絡(luò)流量監(jiān)測(cè)系統(tǒng)多核處理器間操作系統(tǒng)技術(shù)。
背景技術(shù):
高速網(wǎng)絡(luò)流量監(jiān)測(cè)過(guò)程中,系統(tǒng)每秒鐘將接收海量數(shù)據(jù)包,并對(duì)其進(jìn)行分析處理, 涉及數(shù)據(jù)采集、數(shù)據(jù)分析、數(shù)據(jù)存儲(chǔ)等。系統(tǒng)一般采用高性能的多核硬件平臺(tái),高效的并行接收和處理網(wǎng)絡(luò)報(bào)文分組。在多核處理器環(huán)境中,如果所有中斷都集中在某一個(gè)處理器核上處理,則在某一個(gè)處理器核上高優(yōu)先級(jí)中斷處理過(guò)頻,則會(huì)導(dǎo)致低優(yōu)先級(jí)中斷丟失,或者由于某處理器核的中斷負(fù)載過(guò)重,導(dǎo)致一些關(guān)鍵實(shí)時(shí)任務(wù)無(wú)法運(yùn)行。
中國(guó)專(zhuān)利(公開(kāi)號(hào)CN 1013M664A)文獻(xiàn)中涉及到的一種“多核處理器中斷負(fù)載均衡方法和裝置”,該方法預(yù)先配置中斷設(shè)備對(duì)應(yīng)的調(diào)度內(nèi)核組和默認(rèn)處理內(nèi)核;當(dāng)中斷設(shè)備的中斷個(gè)數(shù)超過(guò)中斷閥值或默認(rèn)處理內(nèi)核的處理量超過(guò)中斷負(fù)載時(shí),控制中斷控制器將中斷設(shè)備路由到默認(rèn)處理內(nèi)核所屬的調(diào)度內(nèi)核組中的一個(gè)或多個(gè)內(nèi)核。該方法主要是對(duì)中斷設(shè)備進(jìn)行調(diào)度,沒(méi)有涉及到具體的數(shù)據(jù)報(bào)處理;它需要預(yù)先設(shè)定中斷設(shè)備對(duì)應(yīng)的調(diào)度內(nèi)核, 靈活性差,不能根據(jù)系統(tǒng)負(fù)載實(shí)時(shí)的調(diào)整中斷調(diào)度。中國(guó)專(zhuān)利(公開(kāi)號(hào)CN 102004673A)文獻(xiàn)中涉及到的一種“多核處理器負(fù)載均衡的處理方法及系統(tǒng)”,該方法提取輸入報(bào)文的標(biāo)識(shí)信息,對(duì)標(biāo)識(shí)信息進(jìn)行HASH運(yùn)算,將輸入報(bào)文發(fā)送到與HASH值對(duì)應(yīng)的核中進(jìn)行處理;以及根據(jù)多核處理器中各個(gè)核的負(fù)載情況對(duì)選擇的HASH散列因子進(jìn)行調(diào)整。該方法屬于已有的靜態(tài)映射算法,需要對(duì)每個(gè)輸入報(bào)文進(jìn)行HASH散列計(jì)算,在高速網(wǎng)絡(luò)環(huán)境下調(diào)度的實(shí)時(shí)性不高。
與本發(fā)明最接近的中斷負(fù)載均衡技術(shù)為irqbalance技術(shù),irqbalance技術(shù)針對(duì)多核以及超線(xiàn)程采用共享緩存的系統(tǒng)只處理一次設(shè)備中斷均衡,即以靜態(tài)方式分配各設(shè)備中斷對(duì)應(yīng)的處理器核。但在SMP系統(tǒng)的中斷負(fù)載均衡處理中,特別是在高速網(wǎng)絡(luò)流量測(cè)量系統(tǒng)中,irqbalance技術(shù)僅僅以靜態(tài)方式將設(shè)備中斷均衡分配到對(duì)應(yīng)的處理器核上是遠(yuǎn)遠(yuǎn)不夠的。
在高速網(wǎng)絡(luò)流量監(jiān)測(cè)系統(tǒng)中,不僅要考慮網(wǎng)卡設(shè)備硬中斷在各處理器核上的負(fù)載均衡,同時(shí)還要考慮各處理器后續(xù)對(duì)所有數(shù)據(jù)包的處理。跟硬中斷相比,軟中斷消耗的處理器資源則要大得多,所以必須采用一套完整高效的負(fù)載均衡方案,解決多處理器核對(duì)海量數(shù)據(jù)包的硬中斷和軟中斷的均衡處理。發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有中斷負(fù)載均衡技術(shù)中僅以靜態(tài)方式將設(shè)備中斷均衡分配到對(duì)應(yīng)的處理器核上,在某一個(gè)處理器核上高優(yōu)先級(jí)中斷處理過(guò)頻,則會(huì)導(dǎo)致低優(yōu)先級(jí)中斷丟失, 或者由于某處理器核的中斷負(fù)載過(guò)重,導(dǎo)致一些關(guān)鍵實(shí)時(shí)任務(wù)無(wú)法運(yùn)行等技術(shù)問(wèn)題,本發(fā)明提供一種高速網(wǎng)絡(luò)流量監(jiān)測(cè)系統(tǒng)中多核處理器間的中斷負(fù)載均衡實(shí)現(xiàn)方法。該方法具體包括如下步驟 1、建立調(diào)度域
處理器初始化過(guò)程中,訪問(wèn)每個(gè)處理器,劃分調(diào)度域,將共享二級(jí)緩存的處理器劃分到同一個(gè)調(diào)度域中。調(diào)度域內(nèi)部各處理器之間要實(shí)現(xiàn)中斷負(fù)載均衡。2、IP 分流
根據(jù)源IP地址將所有數(shù)據(jù)包分流到各個(gè)調(diào)度域中去,要求各調(diào)度域間沒(méi)有重合。具體可采用如下方法將源IP地址跟00000001相與,計(jì)算結(jié)果為0的數(shù)據(jù)包進(jìn)入調(diào)度域一,計(jì)算結(jié)果為1的數(shù)據(jù)包進(jìn)入調(diào)度域二。3、建立 hash 表
針對(duì)每個(gè)調(diào)度域,以源IP地址和目的IP地址為hash關(guān)鍵字分別建立一個(gè)hash表,每個(gè)調(diào)度域只對(duì)自己的hash表進(jìn)行臨界訪問(wèn)。4、處理器負(fù)載向量計(jì)算
獲取CPU工作時(shí)間、CPU空閑時(shí)間,根據(jù)CPU工作時(shí)間Tuse、CPU空閑時(shí)間Ti die,調(diào)用公式
PF = Tuse / ( Tuse + Tidle ),計(jì)算處理器負(fù)載向量PF。5、調(diào)度域內(nèi)的負(fù)載均衡
在各調(diào)度域內(nèi)采用加權(quán)輪轉(zhuǎn)調(diào)度算法實(shí)現(xiàn)負(fù)載均衡。用相應(yīng)的權(quán)值表示服務(wù)器的處理性能,將網(wǎng)卡發(fā)來(lái)的中斷分配到各處理器,根據(jù)權(quán)值設(shè)置服務(wù)器優(yōu)先級(jí),權(quán)值高的服務(wù)器優(yōu)先收到中斷并處理,相同權(quán)值的處理器輪轉(zhuǎn)調(diào)度處理中斷。具體技術(shù)方案為訪問(wèn)每個(gè)處理器,將共享二級(jí)緩存的處理器劃分到同一個(gè)調(diào)度域中;根據(jù)源IP地址將所有數(shù)據(jù)包分流到各個(gè)調(diào)度域中;以源IP地址和目的IP地址為 hash關(guān)鍵字分別建立一個(gè)hash表,每個(gè)調(diào)度域只對(duì)自己的hash表進(jìn)行臨界訪問(wèn),對(duì)數(shù)據(jù)包進(jìn)行分析統(tǒng)計(jì);根據(jù)CPU工作時(shí)間、CPU空閑時(shí)間,計(jì)算處理器負(fù)載向量PF ;在各調(diào)度域內(nèi)采用加權(quán)輪轉(zhuǎn)調(diào)度算法實(shí)現(xiàn)負(fù)載均衡,將網(wǎng)卡發(fā)來(lái)的中斷分配到各處理器,根據(jù)權(quán)值設(shè)置服務(wù)器優(yōu)先級(jí),權(quán)值高的服務(wù)器優(yōu)先收到中斷并處理,相同權(quán)值的處理器輪轉(zhuǎn)調(diào)度處理中斷。在系統(tǒng)對(duì)所監(jiān)控網(wǎng)絡(luò)的所有數(shù)據(jù)包進(jìn)行分析統(tǒng)計(jì)的過(guò)程中,系統(tǒng)將源/目的IP地址相同的數(shù)據(jù)包歸并為同一條“流”,將每個(gè)數(shù)據(jù)包的分析結(jié)果按數(shù)據(jù)“流”的方式臨時(shí)存儲(chǔ)在緩存中。根據(jù)公式PF = Tuse / ( Tuse + Tidle )計(jì)算處理器負(fù)載向量PF,其中Tuse 為CPU工作時(shí)間,Tidle為CPU空閑時(shí)間。根據(jù)上一次調(diào)度選擇的最優(yōu)處理器核及其配置權(quán)值,選舉當(dāng)前的最優(yōu)處理器核,各調(diào)度域獨(dú)自保存自己的最優(yōu)處理器核,調(diào)度域內(nèi)所有處理器核權(quán)值的最大值為“最大權(quán)值”,各調(diào)度域獨(dú)立保存自己的當(dāng)前權(quán)值,配置權(quán)值大于或者等于當(dāng)前權(quán)值的處理器核才可以被調(diào)度。各個(gè)調(diào)度域從處理器核鏈表表頭開(kāi)始,在該輪次中選擇配置權(quán)值大于或者等于當(dāng)前權(quán)值的處理器核,當(dāng)出現(xiàn)配置權(quán)值小于當(dāng)前權(quán)值的處理器核,或者已經(jīng)到達(dá)鏈表表尾時(shí),當(dāng)前權(quán)值減1,回到表頭,開(kāi)始新一輪的調(diào)度,如當(dāng)前權(quán)值減至0,則將其翻轉(zhuǎn)為最大權(quán)值,重新開(kāi)始加權(quán)輪轉(zhuǎn)。本發(fā)明是一種用于高速網(wǎng)絡(luò)環(huán)境下流量監(jiān)測(cè)的多核處理器操作系統(tǒng)的負(fù)載均衡方法,其主要功能是通過(guò)構(gòu)建調(diào)度域,在調(diào)度域內(nèi)部和調(diào)度域之間進(jìn)行負(fù)載的均衡,從而在多核處理器操作系統(tǒng)的調(diào)度下,網(wǎng)卡發(fā)來(lái)的中斷被均勻分布在不同的處理器核上,從而提高多處理器核的執(zhí)行效率。
由操作系統(tǒng)對(duì)中斷負(fù)載進(jìn)行均衡,使得網(wǎng)卡發(fā)來(lái)的中斷能夠均衡的分布在多個(gè)處理器核上,提高系統(tǒng)的處理效率。負(fù)載均衡能夠提高多核運(yùn)行的并行度,具有很好的實(shí)用性。
圖1本發(fā)明實(shí)施過(guò)程示意圖;圖2八核二路多處理器調(diào)度域構(gòu)建示意圖。
具體實(shí)施方式
在高速網(wǎng)絡(luò)流量監(jiān)測(cè)過(guò)程中,網(wǎng)絡(luò)每秒傳輸大于三百萬(wàn)個(gè)數(shù)據(jù)包。對(duì)于監(jiān)測(cè)系統(tǒng)來(lái)說(shuō),也就是每秒至少會(huì)產(chǎn)生三百萬(wàn)個(gè)中斷(包括硬中斷和軟中斷)?;赟MP平臺(tái)的監(jiān)測(cè)系統(tǒng)必須將這些中斷均衡的分配到各處理器上,同步并行響應(yīng)并處理,才能實(shí)現(xiàn)系統(tǒng)的高效工作。
本發(fā)明是一種在高速網(wǎng)絡(luò)流量監(jiān)測(cè)系統(tǒng)中多核處理器間的中斷負(fù)載均衡實(shí)現(xiàn)方法,下面結(jié)合圖1說(shuō)明其具體實(shí)施過(guò)程。
1.建立調(diào)度域。調(diào)度域是中斷負(fù)載需要達(dá)到平衡的處理器核的集合,對(duì)于共享二級(jí)高速緩存的處理器核來(lái)說(shuō),是調(diào)度域構(gòu)建的前提。將共享二級(jí)緩存的處理器核劃分到同一個(gè)調(diào)度域中。
在計(jì)算機(jī)執(zhí)行程序的過(guò)程中,由于出現(xiàn)某個(gè)特殊情況(或稱(chēng)為“事件”),使得CPU 中止現(xiàn)行程序,而轉(zhuǎn)去執(zhí)行處理該事件的處理程序(俗稱(chēng)中斷處理或中斷服務(wù)程序),待中斷服務(wù)程序執(zhí)行完畢,再返回?cái)帱c(diǎn)繼續(xù)執(zhí)行原來(lái)的程序,這個(gè)過(guò)程稱(chēng)為中斷。在高速網(wǎng)絡(luò)流量監(jiān)測(cè)過(guò)程中,監(jiān)測(cè)系統(tǒng)的流量采集網(wǎng)卡每秒會(huì)接收海量數(shù)據(jù)包,并發(fā)出相應(yīng)中斷,系統(tǒng)處理器均將接受并處理。
在該發(fā)明中,中斷是調(diào)度的基本單位,而負(fù)載是不同的處理器核需要響應(yīng)的所有網(wǎng)卡中斷。多核處理器有三個(gè)典型的特點(diǎn)多核處理器、處理器核間共享二級(jí)高速緩存、處理器核之間能通過(guò)寄存器直接通信。在這樣的處理器上,一級(jí)高速緩存是各個(gè)處理器核私有的。
調(diào)度域是級(jí)層式結(jié)構(gòu)。最高層(第η級(jí)的調(diào)度域,若有η層調(diào)度域)包含所有的處理器核,而最底層(第0級(jí),基層調(diào)度域)的調(diào)度域表示調(diào)度中中斷負(fù)載關(guān)系最為密切的處理器核。兩個(gè)處理器核處在同一調(diào)度域中,則需要進(jìn)行中斷負(fù)載均衡。調(diào)度域之間如果有父子、祖先或者兄弟關(guān)系,那么調(diào)度域之間的處理器核能進(jìn)行中斷負(fù)載均衡。處理器初始化過(guò)程中,訪問(wèn)每個(gè)處理器,劃分調(diào)度域,將共享二級(jí)緩存的處理器劃分到同一個(gè)調(diào)度域中。調(diào)度域內(nèi)部各處理器之間要實(shí)現(xiàn)中斷負(fù)載均衡。
調(diào)度域內(nèi)建立哈希存儲(chǔ)鏈表。圖2以八核二路多處理器為例,說(shuō)明調(diào)度域的結(jié)構(gòu)。
處理器核0、處理器核1、處理器核2和處理器核3為級(jí)層調(diào)度域,處理器核4、處理器核5、處理器核6和處理器核7亦為級(jí)層調(diào)度域。兩個(gè)級(jí)層調(diào)度域共同構(gòu)成上一層調(diào)度域。每個(gè)處理器核在啟動(dòng)時(shí)都會(huì)被分配一個(gè)邏輯ID,這些邏輯ID從0開(kāi)始遞增,建立哈希存儲(chǔ)鏈表。在處理器核初始化的過(guò)程中,訪問(wèn)每個(gè)處理器核。共享二級(jí)緩存的處理器被劃分到同一個(gè)調(diào)度域當(dāng)中。這樣,就可以形成若干個(gè)不同的調(diào)度域??蓪⑷鐖D2所示的多處理器,建立兩個(gè)調(diào)度域(調(diào)度域一CPUO CPUl CPU2 CPU3 調(diào)度域二 CPU4 CPU5 CPU6 CPU7 )。2. IP分流。中斷負(fù)載均衡,根據(jù)接收數(shù)據(jù)包的IP地址(比如數(shù)據(jù)包源IP地址) 將所有數(shù)據(jù)包分流到各個(gè)調(diào)度域中去。例如,系統(tǒng)有兩個(gè)調(diào)度域,可將源IP跟數(shù)據(jù)序列00000001相與,其結(jié)果分別為0 或?yàn)?,于是所有的數(shù)據(jù)包被分成均衡的兩部分。將計(jì)算結(jié)果為0的數(shù)據(jù)包進(jìn)入調(diào)度域一, 計(jì)算結(jié)果為1的數(shù)據(jù)包進(jìn)入調(diào)度域二。即,源IP的值為偶數(shù)的數(shù)據(jù)包的中斷響應(yīng)被劃分進(jìn)調(diào)度域一,同時(shí),源IP的值為奇數(shù)的數(shù)據(jù)包的中斷響應(yīng)被劃分進(jìn)調(diào)度域二。也可采用其他方式,如按照接收數(shù)據(jù)包的IP地址順序、數(shù)據(jù)包的IP地址的奇、偶性等特征進(jìn)行調(diào)度域分配。如此一來(lái),各調(diào)度域間沒(méi)有IP地址重合的數(shù)據(jù)包,這樣可以提高系統(tǒng)工作效率。如采用1)輪詢(xún)調(diào)度算法,以輪詢(xún)的方式依次將請(qǐng)求調(diào)度不同的服務(wù)器,即每次調(diào)度執(zhí)行i = (i + 1) mod η,并選出第i個(gè)CPU。2)最小連接調(diào)度,該算法是把新的連接請(qǐng)求分配到當(dāng)前連接數(shù)最小的CPU。3)IP地址散列調(diào)度,該算法針對(duì)IP地址的負(fù)載均衡, 但它是一種靜態(tài)映射算法,通過(guò)一個(gè)散列(Hash )函數(shù)將一個(gè)IP地址映射到一個(gè)CPU。3.建立哈希hash表。針對(duì)每個(gè)調(diào)度域,以源IP地址和目的IP地址為hash關(guān)鍵字分別建立一個(gè)hash表,每個(gè)調(diào)度域只對(duì)自己的hash表進(jìn)行臨界訪問(wèn),對(duì)數(shù)據(jù)包進(jìn)行分析統(tǒng)計(jì)。根據(jù)系統(tǒng)層處理流程,在系統(tǒng)對(duì)所監(jiān)控網(wǎng)絡(luò)的所有數(shù)據(jù)包進(jìn)行分析統(tǒng)計(jì)的過(guò)程中,涉及到數(shù)據(jù)流信息的存儲(chǔ)和查找,采用基于數(shù)據(jù)流的數(shù)據(jù)測(cè)量方式進(jìn)行流歸并,系統(tǒng)可將源/目的IP地址相同的數(shù)據(jù)包歸并為同一條“流”,將每個(gè)數(shù)據(jù)包的分析結(jié)果按數(shù)據(jù)“流” 的方式臨時(shí)存儲(chǔ)在緩存中。同時(shí),系統(tǒng)采用鏈表存儲(chǔ)結(jié)構(gòu)以及hash算法查找,可以在緩存中高效實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)功能。針對(duì)每個(gè)調(diào)度域分別建立一個(gè)hash表,每個(gè)調(diào)度域只對(duì)自己的 hash表進(jìn)行臨界訪問(wèn)。例如,在上述的兩個(gè)調(diào)度域里,為了高效的對(duì)數(shù)據(jù)流信息存儲(chǔ)查找, 要分別建立兩個(gè)hash表,hash表中hash關(guān)鍵字是源IP地址和目的IP地址。顯然,由上述的IP分流可知,兩表之間不會(huì)有相同的表項(xiàng)。如果只有一個(gè)hash表,對(duì)其操作必須是臨界異步的,現(xiàn)在兩表是獨(dú)立的,每個(gè)調(diào)度域只要對(duì)自己的hash表實(shí)現(xiàn)臨界異步訪問(wèn)即可, 效率提高。對(duì)于調(diào)度域內(nèi)多核之間共享雙向存儲(chǔ)鏈表,那么必須實(shí)現(xiàn)對(duì)其臨界訪問(wèn),可采用 Linux多核同步機(jī)制自旋鎖技術(shù)。自旋鎖最多只能被一個(gè)可執(zhí)行線(xiàn)程持有,且不會(huì)引起調(diào)用者睡眠。在自旋鎖保持期間的搶占是失效的,只有在可搶占內(nèi)核或SMP情況下才真正需要。4.處理器中斷負(fù)載向量計(jì)算。根據(jù)CPU工作時(shí)間、CPU空閑時(shí)間,計(jì)算處理器負(fù)載向量PF。中斷負(fù)載向量是指進(jìn)行中斷負(fù)載比較的尺度。為了對(duì)中斷負(fù)載均衡進(jìn)行有效的評(píng)估,需要使用中斷負(fù)載向量。中斷負(fù)載向量,定義為判斷處理器核中斷負(fù)載的基本單位。本發(fā)明使用CPU工作時(shí)間和CPU空閑時(shí)間作為計(jì)算中斷負(fù)載向量的因子。下面的公式給出了處理器核的中斷處理器負(fù)載向量PF的計(jì)算方式,其中Tuse為CPU工作時(shí)間,Tidle為CPU 空閑時(shí)間,有
PF = Tuse / ( Tuse + Tidle )。5.調(diào)度域內(nèi)的負(fù)載均衡。在各調(diào)度域內(nèi)采用加權(quán)輪轉(zhuǎn)調(diào)度算法實(shí)現(xiàn)負(fù)載均衡。用相應(yīng)的權(quán)值表示服務(wù)器的處理性能,將網(wǎng)卡發(fā)來(lái)的中斷分配到各處理器,權(quán)值由中斷負(fù)載向量PF取倒數(shù)后再取整。根據(jù)權(quán)值設(shè)置服務(wù)器優(yōu)先級(jí),權(quán)值高的服務(wù)器優(yōu)先收到中斷并處理,相同權(quán)值的處理器輪轉(zhuǎn)調(diào)度處理中斷。加權(quán)輪轉(zhuǎn)算法是指在輪轉(zhuǎn)算法中綜合考慮調(diào)度域內(nèi)各處理器核的權(quán)值,在響應(yīng)新中斷時(shí)盡量使調(diào)度域內(nèi)各處理器核的負(fù)載趨于平衡。當(dāng)調(diào)度域內(nèi)各處理器核的權(quán)值相等時(shí),為普通的輪轉(zhuǎn)算法。為了滿(mǎn)足調(diào)度域內(nèi)各處理器核的負(fù)載趨于均衡,將調(diào)度域內(nèi)各處理器核的組織結(jié)構(gòu)設(shè)置為按權(quán)值高低排列的雙向鏈表。系統(tǒng)根據(jù)計(jì)算處理器中斷負(fù)載向量PF來(lái)表示相應(yīng)的權(quán)值,處理器核的權(quán)值與其中斷負(fù)載向量PF成反比。將網(wǎng)卡發(fā)來(lái)的中斷分配到各處理器,權(quán)值高的服務(wù)器優(yōu)先收到中斷并處理, 相同權(quán)值的處理器輪轉(zhuǎn)調(diào)度處理中斷。
調(diào)度域內(nèi)的負(fù)載均衡具體可采用如下調(diào)度算法當(dāng)前選中的處理器核為“最優(yōu)處理器核”。根據(jù)上一次調(diào)度選擇的處理器核(上一次的最優(yōu)處理器核)及其配置權(quán)值,選舉當(dāng)前的最優(yōu)處理器核,最優(yōu)處理器核為權(quán)值最大者。同樣,各調(diào)度域獨(dú)自保存自己的最優(yōu)處理器核。
各個(gè)處理器核配置的權(quán)值為“配置權(quán)值”,調(diào)度域內(nèi)所有處理器核權(quán)值的最大值為 “最大權(quán)值”,“當(dāng)前權(quán)值”用于權(quán)衡最優(yōu)處理器核。每個(gè)調(diào)度域內(nèi)均有自己當(dāng)前調(diào)度的當(dāng)前權(quán)值,初始值為域內(nèi)的最大權(quán)值。各調(diào)度域獨(dú)立保存自己的當(dāng)前權(quán)值,配置權(quán)值大于或者等于當(dāng)前權(quán)值的處理器核才可以被調(diào)度。當(dāng)前權(quán)值初始化為最大權(quán)值,各個(gè)調(diào)度域內(nèi)加權(quán)輪轉(zhuǎn)調(diào)度過(guò)程如表1所示。
表1加權(quán)輪轉(zhuǎn)調(diào)度過(guò)程
權(quán)利要求
1.實(shí)現(xiàn)多核處理器間中斷負(fù)載均衡的方法,其特征在于,訪問(wèn)每個(gè)處理器,將共享二級(jí)緩存的處理器劃分到同一個(gè)調(diào)度域中;根據(jù)源IP地址將所有數(shù)據(jù)包分流到各個(gè)調(diào)度域中; 以源IP地址和目的IP地址為hash關(guān)鍵字分別建立一個(gè)hash表,每個(gè)調(diào)度域只對(duì)自己的 hash表進(jìn)行臨界訪問(wèn),對(duì)數(shù)據(jù)包進(jìn)行分析統(tǒng)計(jì);根據(jù)CPU工作時(shí)間、CPU空閑時(shí)間,計(jì)算處理器負(fù)載向量PF;在各調(diào)度域內(nèi)采用加權(quán)輪轉(zhuǎn)調(diào)度算法實(shí)現(xiàn)負(fù)載均衡,將網(wǎng)卡發(fā)來(lái)的中斷分配到各處理器,根據(jù)權(quán)值設(shè)置服務(wù)器優(yōu)先級(jí),權(quán)值高的服務(wù)器優(yōu)先收到中斷并處理,相同權(quán)值的處理器輪轉(zhuǎn)調(diào)度處理中斷。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,如系統(tǒng)有兩個(gè)調(diào)度域,將數(shù)據(jù)包源IP地址跟數(shù)據(jù)序列00000001相與,其結(jié)果分別為0或?yàn)?,將計(jì)算結(jié)果為0的數(shù)據(jù)包進(jìn)入調(diào)度域一,計(jì)算結(jié)果為1的數(shù)據(jù)包進(jìn)入調(diào)度域二。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在系統(tǒng)對(duì)所監(jiān)控網(wǎng)絡(luò)的所有數(shù)據(jù)包進(jìn)行分析統(tǒng)計(jì)的過(guò)程中,系統(tǒng)將源/目的IP地址相同的數(shù)據(jù)包歸并為同一條“流”,將每個(gè)數(shù)據(jù)包的分析結(jié)果按數(shù)據(jù)“流”的方式臨時(shí)存儲(chǔ)在緩存中。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)公式PF= Tuse / ( Tuse + Tidle )計(jì)算處理器負(fù)載向量PF,其中Tuse為CPU工作時(shí)間,Tidle為CPU空閑時(shí)間。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)上一次調(diào)度選擇的最優(yōu)處理器核及其配置權(quán)值,選舉當(dāng)前的最優(yōu)處理器核,各調(diào)度域獨(dú)自保存自己的最優(yōu)處理器核,調(diào)度域內(nèi)所有處理器核權(quán)值的最大值為“最大權(quán)值”,各調(diào)度域獨(dú)立保存自己的當(dāng)前權(quán)值,配置權(quán)值大于或者等于當(dāng)前權(quán)值的處理器核才可以被調(diào)度。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,各個(gè)調(diào)度域從處理器核鏈表表頭開(kāi)始,在該輪次中選擇配置權(quán)值大于或者等于當(dāng)前權(quán)值的處理器核,當(dāng)出現(xiàn)配置權(quán)值小于當(dāng)前權(quán)值的處理器核,或者已經(jīng)到達(dá)鏈表表尾時(shí),當(dāng)前權(quán)值減1,回到表頭,開(kāi)始新一輪的調(diào)度,如當(dāng)前權(quán)值減至0,則將其翻轉(zhuǎn)為最大權(quán)值,重新開(kāi)始加權(quán)輪轉(zhuǎn)。
全文摘要
本發(fā)明涉及保護(hù)網(wǎng)絡(luò)中多核處理器間中斷負(fù)載均衡的方法,涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)。本發(fā)明均衡方法采用的技術(shù)方案是將共享二級(jí)緩存的處理器劃分到同一個(gè)調(diào)度域中,根據(jù)源IP地址將所有數(shù)據(jù)包分流到各個(gè)調(diào)度域中,建立一個(gè)hash表,每個(gè)調(diào)度域只對(duì)自己的hash表進(jìn)行臨界訪問(wèn),對(duì)數(shù)據(jù)包進(jìn)行分析統(tǒng)計(jì);在各調(diào)度域內(nèi)采用加權(quán)輪轉(zhuǎn)調(diào)度算法實(shí)現(xiàn)負(fù)載均衡,將網(wǎng)卡發(fā)來(lái)的中斷分配到各處理器,根據(jù)權(quán)值設(shè)置服務(wù)器優(yōu)先級(jí),權(quán)值高的服務(wù)器優(yōu)先收到中斷并處理,相同權(quán)值的處理器輪轉(zhuǎn)調(diào)度處理中斷。由操作系統(tǒng)對(duì)中斷負(fù)載進(jìn)行均衡,使得網(wǎng)卡發(fā)來(lái)的中斷能夠均衡的分布在多個(gè)處理器核上,提高系統(tǒng)的處理效率。
文檔編號(hào)G06F9/50GK102521047SQ20111036130
公開(kāi)日2012年6月27日 申請(qǐng)日期2011年11月15日 優(yōu)先權(quán)日2011年11月15日
發(fā)明者唐紅, 張毅, 徐川, 趙國(guó)鋒 申請(qǐng)人:重慶郵電大學(xué)