[發(fā)明專利]一種基于流水線轉(zhuǎn)發(fā)模型的負(fù)載均衡方法及裝置在審
| 申請?zhí)枺?/td> | 202010853485.4 | 申請日: | 2020-08-24 |
| 公開(公告)號: | CN111984415A | 公開(公告)日: | 2020-11-24 |
| 發(fā)明(設(shè)計)人: | 林飛;晏義威;易永波;毛華陽;劉俊;古元 | 申請(專利權(quán))人: | 北京亞鴻世紀(jì)科技發(fā)展有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/54;H04L9/06 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100095 北京市海淀區(qū)高里*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 流水線 轉(zhuǎn)發(fā) 模型 負(fù)載 均衡 方法 裝置 | ||
一種基于流水線轉(zhuǎn)發(fā)模型的負(fù)載均衡方法及裝置涉及信息技術(shù)領(lǐng)域,本發(fā)明由I/O收包邏輯引擎、對稱哈希計算器、環(huán)形區(qū)緩存隊列、第一個業(yè)務(wù)邏輯引擎至第N?1個業(yè)務(wù)邏輯引擎組成;本發(fā)明的I/O收包邏輯引擎和業(yè)務(wù)邏輯引擎分別獨自占用不同的CPU核,通過環(huán)形區(qū)緩存隊列銜接收包和業(yè)務(wù)處理的數(shù)據(jù),這樣收包和業(yè)務(wù)處理各自獨立而相互不影響。不需要分流設(shè)備就可以做到同源同宿,同時業(yè)務(wù)處理不影響原有數(shù)據(jù)包的接收或是轉(zhuǎn)發(fā)。解決了在不同流量模型下,流量分發(fā)到各個CPU核上不是很均勻,影響整體服務(wù)器的處理性能的問題。
技術(shù)領(lǐng)域
本發(fā)明涉及信息技術(shù)領(lǐng)域,特別計算機計算核心在多核狀態(tài)下的負(fù)載均衡技術(shù)領(lǐng)域。
背景技術(shù)
在過去10年里,以太網(wǎng)接口技術(shù)經(jīng)歷了飛速發(fā)展,Intel和Mellanox等公司還推出了40Gbit/s、100Gbit/s、200Gbit/s的超高速網(wǎng)絡(luò)接口技術(shù)。而CPU的運行頻率基本停留在10年前的水平,嚴(yán)重阻礙了速度的提升,為了迎接超高速網(wǎng)絡(luò)技術(shù)的挑戰(zhàn),以軟件優(yōu)化為主的數(shù)據(jù)面技術(shù)DPDK應(yīng)時而生,它為高性能數(shù)據(jù)包處理提供了一個絕佳的平臺。DPDK是Intel提供的數(shù)據(jù)平面開發(fā)工具集,主要應(yīng)用x86通用平臺,為用戶空間高效的數(shù)據(jù)包處理提供庫函數(shù)和驅(qū)動的支持。它不同于Linux系統(tǒng)以通用性設(shè)計為目的,而是專注于網(wǎng)絡(luò)應(yīng)用中數(shù)據(jù)包的高性能處理。DPDK基于現(xiàn)有Linux網(wǎng)絡(luò)模型所存在的問題進(jìn)行了如下方面的改進(jìn):數(shù)據(jù)層全部由應(yīng)用程序來處理,減少系統(tǒng)調(diào)度,減少了系統(tǒng)調(diào)用,減少了系統(tǒng)中斷和上下文切換;摒棄Linux內(nèi)核協(xié)議棧,將數(shù)據(jù)包傳輸?shù)接脩艨臻g定制協(xié)議棧;使用多核編程技術(shù)替代多線程,將OS綁在指定核上運行;針對SMP對稱多處理系統(tǒng),使CPU盡量使用所在NUMA非統(tǒng)一內(nèi)存訪問系統(tǒng)節(jié)點的內(nèi)存,減少內(nèi)存刷寫;使用大頁面,減少訪問;采用無鎖技術(shù)解決多核或多線程的竟?fàn)巻栴}。
由于原有數(shù)據(jù)鏈路的負(fù)載均衡和路由不對稱等原因,同一個會話的多個報文,可能被負(fù)載均衡到多條鏈路上。所謂負(fù)載均衡就是將負(fù)載分?jǐn)偟蕉鄠€執(zhí)行單元上進(jìn)行執(zhí)行。對應(yīng)網(wǎng)絡(luò)流量而言,就是將數(shù)據(jù)包處理分發(fā)到多條鏈路或是多個CPU核上。這樣同一個會話的報文就會分發(fā)到不同的端口,服務(wù)器從不同網(wǎng)卡端口收到同一個會話的報文,這樣不同CPU之間就存在報文的交互,這必須會影響性能。業(yè)界通常采用分流設(shè)備,可通過針對所有鏈路的會話交換匯聚完美地解決這個問題。這就是所謂的同源同宿,就是把屬于同一個會話的所有報文,都匯聚到同一個端口,以便完成數(shù)據(jù)處理。簡單來說,同源同宿即保障不同輸入線路上,相同會話的流量,能夠在同一接口輸出。
流水線模型借鑒于工業(yè)上的流水線模型,將一個功能分解成多個獨立的階段,不同階段間通過隊列傳遞產(chǎn)品。這樣,對于一些CPU密集與I/O密集的應(yīng)用,通過流水線模型,可以把CPU密集的任務(wù)放在一個CPU核上執(zhí)行,將I/O密集的任務(wù)放在另外一個CPU核上執(zhí)行。通過綁定不同的CPU核可以為不同的任務(wù)分配不同的線程,連接兩者的隊列匹配兩者的處理速度,從而達(dá)到最好的并發(fā)性能。
現(xiàn)有技術(shù)中DPDK開啟RSS功能,雖說同一個會話的報文會分發(fā)到同一個CPU,但是同一個會話的雙向報文會被分發(fā)到兩個不同的CPU,因為DPDK 自帶的RSS key不是對稱的,這樣兩個CPU就存在這個會話信息的交互,必然會影響性能。需要把同一個會話的雙向報文都分發(fā)到同一個CPU上。
本發(fā)明提出了一種基于流水線轉(zhuǎn)發(fā)模型的負(fù)載均衡方法及裝置,利用簡易信息聚合RSS技術(shù)分發(fā)到一些CPU核上,專門做數(shù)據(jù)包的接收;再通過二次哈希分發(fā)到另外一些CPU核上專門做業(yè)務(wù)處理。利用流水線模型,解決了不需要分流設(shè)備就可以做到同源同宿,同時業(yè)務(wù)處理不影響數(shù)據(jù)包的接收。充分利用CPU多核,提高服務(wù)器整體性能。
現(xiàn)有技術(shù)說明
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京亞鴻世紀(jì)科技發(fā)展有限公司,未經(jīng)北京亞鴻世紀(jì)科技發(fā)展有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010853485.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種轉(zhuǎn)發(fā)表的生成方法及裝置
- 報文轉(zhuǎn)發(fā)的方法及網(wǎng)絡(luò)設(shè)備
- 一種轉(zhuǎn)發(fā)表項的存儲方法和裝置
- 一種計算轉(zhuǎn)發(fā)路徑的方法及網(wǎng)絡(luò)設(shè)備
- 一種報文轉(zhuǎn)發(fā)方法及裝置
- 報文轉(zhuǎn)發(fā)方法及裝置
- 一種信息發(fā)布及轉(zhuǎn)發(fā)方法
- 報文轉(zhuǎn)發(fā)方法及裝置
- 數(shù)據(jù)轉(zhuǎn)發(fā)的控制系統(tǒng)、方法、電子設(shè)備及存儲介質(zhì)
- 一種5G數(shù)據(jù)轉(zhuǎn)發(fā)平面的轉(zhuǎn)發(fā)效率控制方法、系統(tǒng)及終端





