999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DPDK的流量測試平臺設計

2020-06-29 07:16:23朱星宇張倩武曹炳堯
微型電腦應用 2020年5期

朱星宇 張倩武 曹炳堯

摘 要:隨著網絡需求的不斷發展,網絡中的用戶越來越多,對于網絡的需求也越來越重度。對于服務商來說,保障大用戶規模下的網絡服務質量和穩定性顯得格外重要,需要一個高性能的流量測試平臺,能夠模擬大規模用戶的訪問請求,并且能夠高效率的解析模擬流量,以此便可以測試自己本身平臺的服務質量和應對高并發的能力。針對這種測試需求,設計了一個基于DPDK的流量測試平臺,能夠實現大規模網絡數據流量的發送,高性能的解析,并且將解析后流量數據收入進數據庫,進行后續的分析。

關鍵詞:流量測試;DPDK;高性能;數據解析

Abstract:With the continuous development of network requirements, the network contains more and more users, and the demand for the network is growing rapidly. For service providers, it is particularly important to ensure the quality and stability of network services under the scale of large users. A high-performance traffic test platform is needed to simulate large-scale user access requests and to efficiently analyze analog traffic. This allows you to test the quality of your own platform and the ability to cope with high concurrency. This platform is designed for this test demand. We designed a DPDK-based traffic test platform, which can achieve large-scale network data traffic transmission, high-performance analysis, and the parsed traffic data into the database for subsequent detailed analysis.

Key words:traffic test;DPDK;high-performance;data analysis

0 引言

隨著互聯網的飛速發展,互聯網每日的活躍流量正在飛速增長著,其中包括了使用用戶和使用場景的不斷增加,自然而然,使用者對于網絡服務的要求和標準也在不斷提升。為了保證網絡的順暢,提供高質量的服務,流量測試環節自然是重中之重,好的測試方案可以通過數據比對,找到系統服務的缺陷和不足之處,保障服務的質量和穩定。

針對企業級服務器的測試平臺方案就顯得至關重要。測試平臺首先性能要好,可以模擬超大規模用戶的使用場景,其次是要應用性強,可以靈活搭建測試場景,滿足測試需求。最后是要價格合理,疊加硬件和軟件模塊分開售賣是目前測試儀器廠家普遍使用的營銷手段,為達到合適效果,企業往往付出相當高的成本,而且實際測試儀性能和功能都會產生冗余[1]。 所以本文設計了一個能發揮高性能的高性價比的流量測試平臺。

1 測試平臺設計

本項目也是基于DPDK套件的二次開發應用,以DPDK的框架為核心,將本身的測試需求和大數據庫和數據分析平臺相結合,建立一個可以多處應用和自定義數據分析的相對價格低性能高的流量測試平臺,如圖1所示。

本平臺用建立在服務器的Linux系統上,在輸入方面采用Pktgen作為高性能發包工具,或者是自定義的流量回放作為輸入,DPDK進行解析,并且將關鍵數據的解析結果實時計算顯示到輸出。最后將解析后的流量數據轉發至Elasticsearch數據庫(ES庫)進行管理和后續操作。

1.1 基于DPDK的網絡流量解析

DPDK(Data Plane Development Kit)是一個在數據平面應用中為快速的數據包處理提供一個高效而完善的架構,對比于傳統的內核控制進行的網絡數據處理,對從內核層到用戶層的網絡數據流程進行了重大突破,同時發揮硬件最大性能,從而提高網絡數據流量處理效率和性能[2]。

DPDK解決方案需要在英特爾處理器的支持下,結合英特爾和其他公司的硬件,重新改寫其驅動程序。由于英特爾公司在服務器硬件平臺的強大產品生態,使得它不需要同Linux系統那樣,以通用性設計為目的。

傳統的基于OS內核的數據傳輸解析過程,如圖2所示。

在目前的高性能需求下顯現出一些弊端。首先是CPU的中斷機制在處理大量數據包到來時,會產生頻繁的高優先級的硬件中斷請求,打斷之前較低優先級的軟中斷或者系統調用的執行過程,將會產生較高的性能開銷。其次,頻繁被打斷切換進程,也會產生大量的進程上下文的切換開銷。鎖競爭的損耗也是不容忽視的一大開銷。包括包文的內容在內存中不斷被一層一層的拷貝到用戶態,非常耗時。同時,內存的分頁大小僅為4 KB,不能滿足高流量下的映射需求。

綜上所述,可以看出內核本身就是一個非常大的瓶頸所在。很明顯解決方案就是想辦法繞過內核。DPDK就是繞過了Linux內核協議棧對數據包的處理過程,在用戶空間實現了一套數據平面來進行數據包的收發與處理。在內核看來,DPDK就是一個普通的用戶態進程,它的編譯、連接和加載方式和普通程序沒有什么兩樣。

DPDK可以繞過內核協議棧,直接控制硬件來處理,最根本的原因在于UIO技術。通過UIO能夠攔截中斷,并且重設中斷回調行為,使之可以繞過內核協議棧后續的處理流程,如圖3所示。

UIO設備的實現機制其實是對用戶空間暴露文件接口,當注冊一個UIO的設備uioX,就會出現文件/dev/uioX,對該文件的讀寫就是對設備內存的讀寫。除此之外,對設備的控制還可以通過/sys/class/uio目錄下的各個文件的讀寫來完成。

同時,為了解決內核處理中所述的弊端,DPDK也在這幾個方面進行了著重的改進[3]。

(1) CPU親和性:DPDK首先將CPU的工作方式由中斷模式改為輪詢模式,同時利用CPU的親和性將一個線程或多個線程綁定到一個或多個CPU上,這樣在線程執行過程中,CPU只負責被綁定的線程而不參與服務器本身其他功能的控制和計算,也就不會被隨意調度和分配,一方面減少了線程間的頻繁切換帶來的開銷,另一方面避免了CPU緩存的局部失效性,增加了 CPU緩存的命中率。

(2) 內存池技術:在用戶空間上實現了一套精巧的內存池技術,內核空間和用戶空間的內存交互并不進行二次拷貝,只做控制權轉移。因此,當收發數據包時,就省去了內存拷貝遷移的開銷。

(3) 大頁內存管理:DPDK將內存分頁從4 KB變成2 MB,實現了一套大頁使用和釋放的API,上層應用可以很方便使用API申請使用大頁內存,同時也兼容普通的內存申請。

(4) NUMA:非統一內存訪問,根據/proc提供的內存物理信息,使CPU核心盡量使用靠近其所在節點的內存,不跨CPU節點去調用內存,避免了跨NUMA節點遠程訪問內存的性能問題。

(5) 多核調度框架:DPDK是基于多核架構,通常來說有主從核之分,可以設定。主核來負責完成各個模塊的初始化,從核則負責具體的業務處理,如圖4所示。

使用DPDK可以處理器核心數量,主頻頻率和機器緩存有限的情況下,盡可能的發揮硬件的性能,極大的提升在解析方面的效率,創造一個容量和速率更大的測試環境。

DPDK的部署需要配置環境變量

同時識別服務器上的千兆萬兆網口,并從Linux的OS內核中解除占用,如圖5所示。

1.2 Pktgen發包工具

Pktgen是一個位于Linux內核層的高性能網絡測試工具,主要用來測試網絡驅動與網卡設備,支持多線程,能夠產生隨機MAC地址、IP地址、UDP端口號的數據包[4]。

目前常見的服務器平臺的發包工具,由于其本身的技術依然是建立在Linux系統內核之上的,所以依舊存在性能上的瓶頸。在指定網口發包的時候,對于網絡數據包的長度十分敏感。若是以64字節長度的包來進行流量回放發送,則會因為包上下切換開銷太大,甚至無法在千兆網口滿速發送。

而隨著發送數據包長度變長,包切換的開銷變小,發包速度會慢慢上升至千兆網口滿速,但是仍然無法達到萬兆網口的速度標準。且在發包過程中CPU長時間處于極高的使用負荷狀態,發送包的效率依然不足以支撐服務器平臺的測試需求。

Pktgen優勢在于使用和DPDK相同的技術架構和框架,也可以通過指定某幾個CPU處理器在不同的PCI總線和選定的千兆和萬兆以太網卡綁定。Pktgen的表現當然也會依賴于CPU處理速率、內存延時、PCI總線速率等硬件參數,但是由于更有效率的技術架構和CPU綁定規則,其發送數據速率能夠一直維持在相當高速率,甚至可以大于10 GBit/s。可見是可以滿足大多數的服務器級別的網卡的測試需求。

而和其他硬件的發包測試儀相比,服務器本身的強大硬件性能就勝過市面上大部分的中端測試器本身硬件性能。而構架方面的優勢更能夠發揮服務器的硬件性能,使得Pktgen的發包性能比擬中高端的測試儀器的發包性能,同時大幅度減少支出開銷。

由于Pktgen是基于DPDK框架,其安裝使用在DPDK部署后,只需將從Linux內核解綁的網口按需綁定,DPDK的Igb_uio驅動。設置大頁,CPU和網口的控制關系后即可。

1.3 ELK大數據平臺

測試平臺本身的發送解析性能是一個方面,而對于測試數據本身的關注則是另外一方面。在測試過程中開發者可能只專注于一個或者兩個的重點性能數據指標,而網絡流其他的數據則被忽略。

通過在后端添加一個數據庫,使得所有網絡流量在最終解析完成后,所有的參數都能變成索引標簽入庫,能夠保存完整的整個測試的所有數據信息。方便進行測試的回溯,查看更多更全面的測試數據[5]。同時根據參數索引入庫,能夠方便的進行查找和篩選數據,有助于數據分析。兩個結合,能夠更好的了解測試性能,挖掘到一些被忽略的問題,如圖6所示。

平臺采用Elasticserach&Logstash&Kibana的大數據平臺。Elasticsearch作為數據庫收錄解析后的流量數據,Logstash為數據收集管道,Kibana則為數據查詢和聚合的前端,以WEB形式呈現。三者結合,便可以實現數據定向收集,快速存儲,索引檢索,可視化分析。

部署ELK平臺,設定ES庫為本機IP,開機自啟動服務。配置Logstash,使其以Netflow V5的格式[6]解析接收DPDK解析的數據,轉發至本機的ES庫中,并且建立以日期為分隔的索引,并且轉發至ES庫,如圖7所示。

2 平臺測試

2.1 發包測試

在搭建完成后,以此啟動DPDK,Pktgen,和ELK平臺。開始測試,本次測試平臺模擬普通中端測試儀性能,硬件參數如表1所示。

針對平臺進行各項測試,采用是功能性測試和性能測試,驗證設計功能是否一一達到設計要求,以白盒測試為主要測試方法。

發包性能測試,首先進行Pktgen工具的發包性能測試,編譯DPDK運行Pktgen,設定CPU一物理核只綁定單一網口,大頁為1 024*2M。發送報文最小包為64字節包長,之后每次測試遞增,逐漸遞增至1 448字節包長。每次測試時間均維持30分鐘,取穩定平均速率。測試數據如表2所示。

可以看到,64字節包長度情況下,是包文開銷比較大,理論性能比較低的情況,依然做到了幾乎滿足率的發包,速率為9 989 MB/s,并且十分穩定,速錄沒有起伏,達到了理論性能的99.3%。而隨著包長度的不斷增大,包處理開銷的不斷減少,可以做到滿速率發送。說明單個CPU承載單個網口的收發任務是游刃有余的。

所以為提高利用率,增加CPU負荷,測試一核綁定多網口時的發包效率。我們將CPU綁定同一個PCI-e總線上的多個網口。根據目前PCI-e總線的數據規格,服務器普遍使用的主流PCI-e 2.0 x8上至多有4個萬兆網口,如圖8所示。

從圖8中可以看出,當多個網口綁定使用同一個CPU同時進行高速發包時,因為CPU性能和負載有上限,勢必會產生影響,從而使得每個網口的發送速率比單個網口發送的速率產生下降。不同包長情況下,包處理開銷不同,影響也不同。

由測試數據可知,兩個網口同時綁定一個CPU的情況是比較理想的,速度下降十分微小,基本與之前的測試速率維持在同一水平線,同時對于CPU的使用效率比較高,適合單一場景的高性能發包測試[7]。

2.2 解析轉發測試

若使用已有的流量,進行網絡流量鏡像回放,那DPDK的解析性能也十分關鍵。于是進行3層轉發吞吐量測試。包長從64字節到1 448字節。測試數據如表3所示。

可以看到在解析方面的性能十分優秀。64字節有著百分之90的速率,而從128字節開始就能穩定保持幾乎滿速率的解析和轉發。滿足進行流量回放的測試性能要求。

2.3 ELK入庫功能測試

而經過解析的網絡流量,也已經通過多個線程支持的Logstash管道收入進ES庫中,通過Kibana的Web前端進行查看,如圖9所示。

流量經過解析并且被依照解析的字段標簽建立索引,可依照索引查看數據。錄入格式選擇Netflow V5的流量格式,含有的信息比較多。

3 總結

本文提出了一個基于DPDK架構的流量測試平臺。從上述的測試結果和數據來看,這個平臺給予了服務器級別網絡流量測試的一種新的可能性,性能測試達到設計預期水平,功能性上也給予了性能測試,流量回放,流量解析,數據分析這個方面。

同時由于直接可以搭建在服務器平臺上,在使用服務器極高的硬件性能的同時,顧不需要額外的高費用去購買測試儀和測試軟件,省去了大筆研究成本和時間開銷[8]。

并且基于最廣為使用的英特爾硬件改寫的驅動,也保障了其能夠更好的發揮硬件的高性能和軟件的高效率,使得性能測試的硬件門檻進一步的下降。

本平臺效果達到設計預期,同時也容易推廣,方便以后擴展測試場景使用。

參考文獻

[1] 竇長江,王宇.流量分析儀在網絡測試中的應用.國外電子測量技術,2001(3):34-36.

[2] 朱河清,梁存銘,胡雪. 深入淺出DPDK[M]. 北京:機械工業出版社,2016.

[3] 趙寧, 謝淑翠. 基于DPDK的高效數據包捕獲技術分析與應用[J].計算機工程與科學,2016,38(11):2209-2215.

[4] Li G, Zhang D, Li Y, et al. Toward energy-efficiency optimization of pktgen-DPDK for green network testbeds[J]. China Communications, 2018, 15(11):199-207.

[5] Yang S, Zhang X, Xi L, et al. The network test tools based on SDN[J]. Chinese Optics Letters,2014,121s 25-2.

[6] 陳亮,龔儉.基于NetFlow記錄的高速應用流量分類方法[J].通信學報,2012,33(1):145-152.

[7] 唐宏,柴桌原,任平,等.DPDK應用基礎[J].電信科學,2017(S1):268.

[8] 張棣興.下一代網絡業務流量識別與控制的研究[J].電信網技術,2006(11):12-15.

(收稿日期:2019.09.22)

主站蜘蛛池模板: 国产一在线| 欧美丝袜高跟鞋一区二区| 青青草一区| 99久久精品免费观看国产| 国产农村1级毛片| 国产精品无码一二三视频| 亚洲精品午夜无码电影网| 乱人伦99久久| 波多野结衣一级毛片| 久久毛片基地| 国产麻豆精品在线观看| 久久99精品久久久大学生| 日韩精品免费一线在线观看| 99久久亚洲综合精品TS| h网站在线播放| 亚洲第一成网站| 成人在线不卡| 91最新精品视频发布页| 国产精品成人观看视频国产 | 欧美久久网| 国产欧美专区在线观看| 99re热精品视频中文字幕不卡| 欧美区国产区| 日韩在线1| 五月天丁香婷婷综合久久| 成色7777精品在线| 日韩精品毛片人妻AV不卡| 国产91无码福利在线| 久久夜色精品国产嚕嚕亚洲av| 亚洲成aⅴ人片在线影院八| 亚洲一区波多野结衣二区三区| 白丝美女办公室高潮喷水视频| 国产一区二区网站| 99久久亚洲综合精品TS| 国产香蕉国产精品偷在线观看 | 红杏AV在线无码| 亚洲一区毛片| 日韩免费视频播播| 成年人视频一区二区| 国产免费网址| 国产高清在线观看| 精品久久久无码专区中文字幕| 亚洲无码免费黄色网址| 免费大黄网站在线观看| 婷婷色婷婷| 久久亚洲天堂| 成年A级毛片| 波多野结衣亚洲一区| 亚洲欧美自拍视频| 九九九国产| 久久a毛片| 国产白浆一区二区三区视频在线 | 青青青视频91在线 | 91久久偷偷做嫩草影院电| 久久久久无码国产精品不卡| 国产成人精品一区二区三区| 91精品国产无线乱码在线| 激情在线网| 久久精品这里只有精99品| 国产在线一二三区| 在线日韩一区二区| 97成人在线视频| 天堂岛国av无码免费无禁网站| 在线欧美a| 日韩毛片在线视频| 亚洲IV视频免费在线光看| 国产黄网站在线观看| 国产人碰人摸人爱免费视频| 91免费国产高清观看| 国产区在线看| 成年人国产视频| 国产毛片一区| 亚洲—日韩aV在线| 亚洲天堂福利视频| 国产福利免费视频| 欧洲在线免费视频| 国产精鲁鲁网在线视频| 亚洲视频a| 欧美全免费aaaaaa特黄在线| 久久精品亚洲热综合一区二区| 亚洲精品无码AV电影在线播放| 午夜国产大片免费观看|