首頁 > 新聞 > IT資訊 > 正文

        全球熱推薦:通俗解讀DPDK:云時代數據傳輸優化利器如何煉成?

        2022-09-14 21:30:03來源:閆躍龍微信號  

        我國正在加速進入數字經濟時代。


        (資料圖片)

        中國工信出版傳媒集團副總經理劉華魯表示,截至2021年底,我國企業上云、使用云的比例達到80%,上云已經成為數字化的必經之路。

        以上云為主要特征的數字時代,最典型的一個特征是數據的高速增長。據中國信通院數據,截止2021年底,我國在用數據中心機架規模高達520萬架,近5年年均復合增速超過30%,其中大型以上數據中心機架規模420萬架,占比達到80%。IDC更是預測,到2025年,數據中心流量預計將增長超過180ZB,數據中心業務高吞吐的發展趨勢非常明顯。

        在數據大爆發的大背景下,數據中心網絡內部交換系統也在大提速,從10GE、40GE向100GE、400GE提速,相應的,一場圍繞網絡數據傳輸優化的攻堅戰也在上演。

        云時代的數據傳輸痛點

        云時代,網絡傳輸(I/O)的變革是深刻的。

        在傳統網絡時代,路由器、交換機等設備都是采用硬件的解決方案,基于專用化、定制化的處理器。這種方式的缺點很明顯,存在調試維護難、升級迭代難等問題。而且,傳統通信專有化設備需要維護多個平臺硬件,控制平面、數據平面的軟硬件各不相同,維護成本高昂。

        尤其是當云時代到來時,通過網絡功能虛擬化共享硬件成為行業標配,即通過標準的服務器、標準的以太網交換機來實現各種功能。如英特爾公司早在10多年前就提出4合1戰略,即應用、控制、數據、信號處理都統一在IA(Intel Architecture)處理器平臺上。

        然而,云時代數據的大爆發,為網絡數據傳輸帶來極大挑戰。在業界,曾經相繼出現過C10K、C100K、C10M等難題就是這樣。所謂C10K,是單機1萬個并發連接問題,同樣,C100K是實現單機并發連接100萬,C10M是實現千萬并發連接。

        在硬件上這些問題解決起來不難,堆硬件就可以實現,但是這樣做的弊端也顯而易見,既成本高昂,又不通用。2013年,Errata Security公司CEO Robert Graham用軟件的方式解決了這一難題,他認為,Linux系統的設計初衷是傳統電話網絡的控制系統,而非服務器OS,不適合處理大規模的網絡數據包。

        更重要的是,他得出一個結論:OS的內核不是解決C10M問題的路徑,相反,OS內核正是導致C10M問題的瓶頸。

        數據可以很直觀地解釋這個結論。以40G接口為例,如果要達到40G線速,一個2.0主頻的CPU需要平均16.8ns / 33個cycles處理一個64字節包長的報文。而在IA平臺,基于Linux OS內核態的網卡驅動,單核的轉發能力只有2Mpps@64B,遠低于網卡的最大吞吐能力。

        為什么會這樣?在老調“芯”說最新一期視頻“DPDK:讓數據包極速狂奔”中,很形象地解釋了其中的重要原因。網絡數據傳輸就像是收發文件、蓋章抄送,要完成這個工作,有兩種路徑,一種路徑是專用處理器,另一種路徑是通用處理器,而通用處理器之所以效率低,并不是自己本身原因,而是Linux系統的工作模式:因為傳統的網卡驅動運行在操作系統內核態,而絕大多數軟件代碼運行在用戶態,內核態的網卡驅動采用中斷模式通知CPU處理數據包,而隨著網絡流量激增,僅僅響應中斷就讓CPU疲于應付,而在內核態和用戶態之間的切換和數據拷貝等額外開銷也會浪費CPU的處理能力。

        所以,這個時候,急需一套基于常用系統和標準服務器的高性能網絡傳輸開發框架,來規避傳統內核態網卡驅動的額外開銷,充分利用IA處理器的能力來實現高效的報文轉發和處理,更好地應對云時代對數據IO需求的激增。

        DPDK技術大揭秘

        DPDK技術正是在這種大背景下應運而生。

        2008年,DPDK由英特爾公司的網絡通信部門提出,主要是針對基于Intel的處理器和網卡開發。正如其全稱(Data Plane Development Kit,數據平面開發套件),DPDK提供豐富、完整的框架,讓CPU快速實現數據平面應用的數據包處理,高效完成網絡轉發等工作。

        說到這里,有必要解釋一下數據平面的概念。在通信框架中,數據傳輸和連接管理通常被拆分為多個獨立的操作,這些操作被稱為“平面”,平面包括管理平面、數據平面、控制平面。在傳統網絡,這些平面都在路由器和交換機的固件中實現,管理平面負責為網絡堆棧各個層級和網絡系統的其他部分提供管理、監控和配置服務;控制平面決定流量的傳輸路徑;數據平面又稱為用戶平面,承載用戶流量,并負責接口間的數據包轉發。

        DPDK的主要目的就是通過提供簡單、完整的框架,快速實現數據平面應用的數據包處理,其核心特征就是繞過了Linux內核態對數據包的處理過程,直接在用戶態收發包來解決內核的瓶頸。用收發文件來類比,傳統的方式是從網卡到用戶態,需要先通過內核,就像文件不是直接送給你,而是中間要經過傳達室一樣,這樣的效率可想而知。而DPDK繞過內核,避免了從內核態向用戶態拷貝數據的開銷,以及內核態與用戶態切換的開銷,就像文件直接送給你一樣,能夠實現更高的效率。

        除了用戶態驅動,DPDK用輪詢模式解決了中斷響應造成的上下文切換開銷。借用老調“芯”談視頻的類比,中斷模式,就像是每送來一個文件,就拍你一下,讓你看有文件來了,而輪詢模式則是直接將文件放到你的桌子上,你有空抬頭看一眼就拿過來處理。顯然,輪詢的模式效率更高。

        綁定處理核的做法,則讓DPDK解決了OS對報文處理核調度的開銷問題。傳統上,多核處理器在工作時,數據包可能會跨越多個CPU核心,這容易造成CPU緩存失效,DPDK具有CPU親和性,將線程和CPU核進行一對一綁定,減少了彼此之間的調度切換的開銷。同樣用收發文件來類比,原來是一份文件在運輸過程中由幾個人完成,每換一個人都需要交接,而DPDK的綁定處理核的做法則是每一份文件都由專人負責到底,中間省去了交接的開銷。

        此外,DPDK還用大頁內存代替普通內存,減少了緩存失效問題;用無鎖技術解決了資源競爭問題等等??梢赃@樣說,DPDK的每一個技術,或者采用的每一種方法都是為了節省數據包的處理時間,讓數據加速奔跑。

        目前,DPDK已經開源,越來越多的廠商參與進來貢獻代碼,這使得DPDK可以支持更多的CPU和網卡,如CPU不僅支持IA,還支持AMD、ARM等廠商的處理器,網卡支持的范圍也包括Intel網卡、Mellanox網卡、ARM集成網卡等。

        據了解,目前DPDK廣泛應用在通信、互聯網領域,很多的開源項目也利用DPDK作為傳輸的加速通道,比如OVS。作為優秀的用戶空間高性能數據包加速套件,DPDK現在已經作為“膠水”模塊被用于多個網絡數據處理方案中,用來提升性能。

        在招聘網站上,筆者也注意到DPDK相關職位也變得越來越熱門,很多云計算廠商都在高薪招聘“DPDK網絡開發工程師”等職位。

        總而言之,DPDK在云時代影響深遠,它解決了通用處理器如何快速處理數據包的問題,也一舉粉碎了“IA處理器不適用于數據平面IO高速轉發業務場景”的傳統觀點,讓通用處理器代替專用處理器,高效地支撐起數字時代的數據洪流。


        本文首發于微信公眾號:閆躍龍。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。

        關鍵詞: DPDK

        責任編輯:hnmd003

        相關閱讀

        相關閱讀

        推薦閱讀

        久久精品亚洲日本波多野结衣| 亚洲欧洲无码一区二区三区| 亚洲免费视频一区二区三区| 亚洲欧美国产国产综合一区| 亚洲av无码不卡久久| 亚洲国产精品成人精品软件| 亚洲视频在线免费播放| 久久亚洲日韩看片无码| 久久精品蜜芽亚洲国产AV| 亚洲视频一区调教| 国产精品亚洲精品观看不卡| 久久青青草原亚洲AV无码麻豆| 亚洲人成影院在线无码按摩店| 国产亚洲成AV人片在线观黄桃| 亚洲精品国产精品乱码视色| 久久亚洲国产欧洲精品一| 久久精品国产亚洲网站| 亚洲AV美女一区二区三区| 亚洲午夜精品久久久久久人妖| 精品无码一区二区三区亚洲桃色| 久久亚洲国产精品成人AV秋霞| 亚洲综合一区二区精品久久| 亚洲国产成人综合| 亚洲乱码在线卡一卡二卡新区| 亚洲午夜成人精品无码色欲| 亚洲精品无码少妇30P| 国产成人人综合亚洲欧美丁香花 | 大桥未久亚洲无av码在线| 麻豆亚洲AV成人无码久久精品| 国产亚洲视频在线播放大全| 亚洲国产一区二区视频网站| 中文亚洲AV片不卡在线观看 | tom影院亚洲国产一区二区| 亚洲精品123区在线观看| 亚洲av无码专区在线电影天堂 | 亚洲视频国产视频| 亚洲AV无码久久久久网站蜜桃| 亚洲乱码中文字幕在线| 亚洲Av无码乱码在线观看性色| 国产午夜亚洲不卡| 亚洲人成网www|