欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多cpu核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法

文檔序號(hào):7866431閱讀:521來源:國(guó)知局
專利名稱:一種多cpu核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種網(wǎng)絡(luò)數(shù)據(jù)處理方法,尤其是涉及一種多CPU核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法。
背景技術(shù)
現(xiàn)有技術(shù)對(duì)于單一接收隊(duì)列網(wǎng)卡芯片,接收?qǐng)?bào)文處理往往采用硬中斷觸發(fā)輪詢收?qǐng)?bào)文方式,由于受限于單一隊(duì)列的特性,報(bào)文一般送往一個(gè)CPU核上,這樣其他CPU核無法和一起從單一接收隊(duì)列并行取報(bào)文,當(dāng)網(wǎng)卡接收?qǐng)?bào)文負(fù)荷大于CPU處理能力時(shí),造成一個(gè)CPU核繁忙,其他所有CPU核空閑的局面。單一接收隊(duì)列網(wǎng)卡芯片,接收?qǐng)?bào)文時(shí)只會(huì)送往CPU的一個(gè)核處理,造成處理能力無法有效利用等問題。

發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種充分利用CPU資源、可實(shí)現(xiàn)自動(dòng)均衡的多CPU核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法。本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn)一種多CPU核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法,該方法首先指定一個(gè)CPU核從網(wǎng)卡接收隊(duì)列收取報(bào)文,并分發(fā)到其他CPU核的報(bào)文接收隊(duì)列中,直至報(bào)文接收隊(duì)列達(dá)到其最大閥值,其他CPU核從與其對(duì)應(yīng)的報(bào)文接收隊(duì)列收取報(bào)文,然后對(duì)報(bào)文進(jìn)行協(xié)議棧處理。所述的每個(gè)CPU核均設(shè)有對(duì)應(yīng)的ID,所述的ID的取值范圍為[O,CPU_C0RE_NUMBERS-1]間的整數(shù),其中,CPU_CORE_NUMBERS為CPU核的總數(shù)。所述的網(wǎng)絡(luò)報(bào)文處理方法具體包括以下步驟I)指定ID為⑶RRENT_CPU_ID的CPU核為當(dāng)前從網(wǎng)卡接收隊(duì)列收取報(bào)文的當(dāng)前核;2)當(dāng)前核從網(wǎng)卡接收隊(duì)列收取報(bào)文,且變量recv_packet_count的值加一,所述的變量recv_packet_count表示當(dāng)前核已收取的報(bào)文個(gè)數(shù);3)判斷hash_cpu是否大于或等于QJRRENT_CPU_ID,若是,則hash_cpu的值加一,執(zhí)行步驟4),若否,直接執(zhí)行步驟4);其中,hash_cpu= recv—packet-count^i (CPU_C0RE_NUMBERS_1);4)判斷ID為hash_cpu的CPU核上的報(bào)文接收隊(duì)列中的報(bào)文數(shù)是否達(dá)到最大閥值,若是,則執(zhí)行步驟5),若否,則執(zhí)行步驟6);5)當(dāng)前核直接對(duì)收取的報(bào)文進(jìn)行協(xié)議棧處理,返回步驟I);6)當(dāng)前核將收取的報(bào)文發(fā)送至ID為hash_cpu的CPU核的報(bào)文接收隊(duì)列中,并通知該CPU核處理報(bào)文,返回步驟I)。所述的recv_packet_count和hash_cpu均為靜態(tài)無符號(hào)整數(shù)變量。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)I)本發(fā)明方法在單一隊(duì)列網(wǎng)卡配合多核CPU硬件架構(gòu)下,能夠充分使用CPU各個(gè)核,從而達(dá)到最大網(wǎng)絡(luò)報(bào)文處理能力,不浪費(fèi)CPU資源;2)本發(fā)明單核分發(fā)和其他核協(xié)議棧處理能力之間實(shí)現(xiàn)了流水的自動(dòng)均衡。


圖I為本發(fā)明的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
實(shí)施例如圖I所示,一種多CPU核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法,該方法總體可描述為首先指定一個(gè)CPU核從網(wǎng)卡接收隊(duì)列收取報(bào)文,并分發(fā)到其他CPU核的報(bào)文接收隊(duì)列中,直至報(bào)文接收隊(duì)列達(dá)到其最大閥值,其他CPU核從與其對(duì)應(yīng)的報(bào)文接收隊(duì)列收取報(bào)文,然后對(duì)報(bào)文進(jìn)行協(xié)議棧處理。其中,每個(gè)CPU核均設(shè)有對(duì)應(yīng)的ID,所述的ID的取值范圍為[O, CPU_C0RE_NUMBERS-1]間的整數(shù),其中,CPU_CORE_NUMBERS 為 CPU 核的總數(shù)。定義靜態(tài)無符號(hào)整數(shù)變量recv_packet_count,用于表示已接收的報(bào)文個(gè)數(shù);定義靜態(tài)無符號(hào)整數(shù)變量hash_Cpu,用于表示要分發(fā)到的CPU核的ID。所述的網(wǎng)絡(luò)報(bào)文處理方法具體包括以下步驟I)指定ID為⑶RRENT_CPU_ID的CPU核為當(dāng)前從網(wǎng)卡接收隊(duì)列收取報(bào)文的當(dāng)前核;2)當(dāng)前核從網(wǎng)卡接收隊(duì)列收取報(bào)文,且變量recv_packet_count的值加一,所述的變量recv_packet_count表示當(dāng)前核已收取的報(bào)文個(gè)數(shù);3)判斷hash_cpu是否大子或等于QJRRENT_CPU_ID,若是,則hash_cpu的值加一,執(zhí)行步驟4),若否,直接執(zhí)行步驟4);其中,hash_cpu= recv—packei^count^i (CPU_C0RE_NUMBERS_1),米用基于已接收?qǐng)?bào)文個(gè)數(shù)對(duì)CPU核總數(shù)減一后取余的完全平均算法求?。?)判斷ID為hash_cpu的CPU核上的報(bào)文接收隊(duì)列中的報(bào)文數(shù)是否達(dá)到最大閥值,若是,則執(zhí)行步驟5),若否,則執(zhí)行步驟6);5)當(dāng)前核直接對(duì)收取的報(bào)文進(jìn)行協(xié)議棧處理,從而減少當(dāng)前核從網(wǎng)卡接收隊(duì)列取報(bào)文的機(jī)會(huì),減少其他核報(bào)文處理壓力,達(dá)到分發(fā)和協(xié)議棧流水處理的自動(dòng)均衡,然后返回步驟I);6)當(dāng)前核將收取的報(bào)文發(fā)送至ID為hash_cpu的CPU核的報(bào)文接收隊(duì)列中,并通知該CPU核處理報(bào)文,返回步驟I),進(jìn)入下一次從網(wǎng)卡接收隊(duì)列收?qǐng)?bào)文過程。上述多CPU核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法在單一隊(duì)列網(wǎng)卡配合多核CPU硬件架構(gòu)下,能夠充分使用CPU各個(gè)核,從而達(dá)到最大網(wǎng)絡(luò)報(bào)文處理能力,不浪費(fèi)CPU資源;單核分發(fā)和其他核協(xié)議棧處理能力之間實(shí)現(xiàn)了流水的自動(dòng)均衡。
權(quán)利要求
1.一種多CPU核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法,其特征在于,該方法首先指定一個(gè)CPU核從網(wǎng)卡接收隊(duì)列收取報(bào)文,并分發(fā)到其他CPU核的報(bào)文接收隊(duì)列中,直至報(bào)文接收隊(duì)列達(dá)到其最大閥值,其他CPU核從與其對(duì)應(yīng)的報(bào)文接收隊(duì)列收取報(bào)文,然后對(duì)報(bào)文進(jìn)行協(xié)議棧處理。
2.根據(jù)權(quán)利要求I所述的一種多CPU核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法,其特征在于,所述的每個(gè)CPU核均設(shè)有對(duì)應(yīng)的ID,所述的ID的取值范圍為
間的整數(shù),其中,CPU_CORE_NUMBERS為CPU核的總數(shù)。
3.根據(jù)權(quán)利要求2所述的一種多CPU核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法,其特征在于,所述的網(wǎng)絡(luò)報(bào)文處理方法具體包括以下步驟 1)指定ID為CURRENT_CPU_ID的CPU核為當(dāng)前從網(wǎng)卡接收隊(duì)列收取報(bào)文的當(dāng)前核; 2)當(dāng)前核從網(wǎng)卡接收隊(duì)列收取報(bào)文,且變量recv_packet_count的值加一,所述的變量recv_packet_count表示當(dāng)前核已收取的報(bào)文個(gè)數(shù); 3)判斷hash_cpu是否大于或等于CURRENT_CPU_ID,若是,則hash_cpu的值加一,執(zhí)行步驟4),若否,直接執(zhí)行步驟4);其中,hash_cpu = recv_packet_count*% (CPU_C0RE_NUMBERS_1); 4)判斷ID為hash_cpu的CPU核上的報(bào)文接收隊(duì)列中的報(bào)文數(shù)是否達(dá)到最大閥值,若是,則執(zhí)行步驟5),若否,則執(zhí)行步驟6); 5)當(dāng)前核直接對(duì)收取的報(bào)文進(jìn)行協(xié)議棧處理,返回步驟I); 6)當(dāng)前核將收取的報(bào)文發(fā)送至ID為hash_cpu的CPU核的報(bào)文接收隊(duì)列中,并通知該CPU核處理報(bào)文,返回步驟I)。
4.根據(jù)權(quán)利要求3所述的一種多CPU核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法,其特征在于,所述的recv_packet_count和hash_cpu均為靜態(tài)無符號(hào)整數(shù)變量。
全文摘要
本發(fā)明涉及一種多CPU核間負(fù)載均衡的網(wǎng)絡(luò)報(bào)文處理方法,該方法首先指定一個(gè)CPU核從網(wǎng)卡接收隊(duì)列收取報(bào)文,并分發(fā)到其他CPU核的報(bào)文接收隊(duì)列中,直至報(bào)文接收隊(duì)列達(dá)到其最大閥值,其他CPU核從與其對(duì)應(yīng)的報(bào)文接收隊(duì)列收取報(bào)文,然后對(duì)報(bào)文進(jìn)行協(xié)議棧處理。與現(xiàn)有技術(shù)相比,本發(fā)明具有充分利用CPU資源、可實(shí)現(xiàn)自動(dòng)均衡等優(yōu)點(diǎn)。
文檔編號(hào)H04L12/803GK102970244SQ20121048465
公開日2013年3月13日 申請(qǐng)日期2012年11月23日 優(yōu)先權(quán)日2012年11月23日
發(fā)明者裴建成 申請(qǐng)人:上海寰創(chuàng)通信科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
佛坪县| 马边| 永宁县| 和平县| 绥芬河市| 富平县| 含山县| 彭州市| 社会| 马龙县| 彩票| 广河县| 定边县| 昆明市| 永寿县| 平乐县| 南通市| 盐山县| 新乡县| 萨迦县| 科技| 甘洛县| 大埔区| 修水县| 屏东县| 西峡县| 乌拉特后旗| 宁蒗| 伊宁县| 临潭县| 德安县| 新竹县| 双辽市| 观塘区| 佛山市| 马公市| 西乡县| 襄城县| 连州市| 遂溪县| 松原市|