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

基于DPDK的流量測試平臺設(shè)計

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

朱星宇 張倩武 曹炳堯

摘 要:隨著網(wǎng)絡(luò)需求的不斷發(fā)展,網(wǎng)絡(luò)中的用戶越來越多,對于網(wǎng)絡(luò)的需求也越來越重度。對于服務(wù)商來說,保障大用戶規(guī)模下的網(wǎng)絡(luò)服務(wù)質(zhì)量和穩(wěn)定性顯得格外重要,需要一個高性能的流量測試平臺,能夠模擬大規(guī)模用戶的訪問請求,并且能夠高效率的解析模擬流量,以此便可以測試自己本身平臺的服務(wù)質(zhì)量和應(yīng)對高并發(fā)的能力。針對這種測試需求,設(shè)計了一個基于DPDK的流量測試平臺,能夠?qū)崿F(xiàn)大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)流量的發(fā)送,高性能的解析,并且將解析后流量數(shù)據(jù)收入進數(shù)據(jù)庫,進行后續(xù)的分析。

關(guān)鍵詞:流量測試;DPDK;高性能;數(shù)據(jù)解析

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 引言

隨著互聯(lián)網(wǎng)的飛速發(fā)展,互聯(lián)網(wǎng)每日的活躍流量正在飛速增長著,其中包括了使用用戶和使用場景的不斷增加,自然而然,使用者對于網(wǎng)絡(luò)服務(wù)的要求和標準也在不斷提升。為了保證網(wǎng)絡(luò)的順暢,提供高質(zhì)量的服務(wù),流量測試環(huán)節(jié)自然是重中之重,好的測試方案可以通過數(shù)據(jù)比對,找到系統(tǒng)服務(wù)的缺陷和不足之處,保障服務(wù)的質(zhì)量和穩(wěn)定。

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

1 測試平臺設(shè)計

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

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

1.1 基于DPDK的網(wǎng)絡(luò)流量解析

DPDK(Data Plane Development Kit)是一個在數(shù)據(jù)平面應(yīng)用中為快速的數(shù)據(jù)包處理提供一個高效而完善的架構(gòu),對比于傳統(tǒng)的內(nèi)核控制進行的網(wǎng)絡(luò)數(shù)據(jù)處理,對從內(nèi)核層到用戶層的網(wǎng)絡(luò)數(shù)據(jù)流程進行了重大突破,同時發(fā)揮硬件最大性能,從而提高網(wǎng)絡(luò)數(shù)據(jù)流量處理效率和性能[2]。

DPDK解決方案需要在英特爾處理器的支持下,結(jié)合英特爾和其他公司的硬件,重新改寫其驅(qū)動程序。由于英特爾公司在服務(wù)器硬件平臺的強大產(chǎn)品生態(tài),使得它不需要同Linux系統(tǒng)那樣,以通用性設(shè)計為目的。

傳統(tǒng)的基于OS內(nèi)核的數(shù)據(jù)傳輸解析過程,如圖2所示。

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

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

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

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

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

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

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

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

(4) NUMA:非統(tǒng)一內(nèi)存訪問,根據(jù)/proc提供的內(nèi)存物理信息,使CPU核心盡量使用靠近其所在節(jié)點的內(nèi)存,不跨CPU節(jié)點去調(diào)用內(nèi)存,避免了跨NUMA節(jié)點遠程訪問內(nèi)存的性能問題。

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

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

DPDK的部署需要配置環(huán)境變量

同時識別服務(wù)器上的千兆萬兆網(wǎng)口,并從Linux的OS內(nèi)核中解除占用,如圖5所示。

1.2 Pktgen發(fā)包工具

Pktgen是一個位于Linux內(nèi)核層的高性能網(wǎng)絡(luò)測試工具,主要用來測試網(wǎng)絡(luò)驅(qū)動與網(wǎng)卡設(shè)備,支持多線程,能夠產(chǎn)生隨機MAC地址、IP地址、UDP端口號的數(shù)據(jù)包[4]。

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

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

Pktgen優(yōu)勢在于使用和DPDK相同的技術(shù)架構(gòu)和框架,也可以通過指定某幾個CPU處理器在不同的PCI總線和選定的千兆和萬兆以太網(wǎng)卡綁定。Pktgen的表現(xiàn)當然也會依賴于CPU處理速率、內(nèi)存延時、PCI總線速率等硬件參數(shù),但是由于更有效率的技術(shù)架構(gòu)和CPU綁定規(guī)則,其發(fā)送數(shù)據(jù)速率能夠一直維持在相當高速率,甚至可以大于10 GBit/s??梢娛强梢詽M足大多數(shù)的服務(wù)器級別的網(wǎng)卡的測試需求。

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

由于Pktgen是基于DPDK框架,其安裝使用在DPDK部署后,只需將從Linux內(nèi)核解綁的網(wǎng)口按需綁定,DPDK的Igb_uio驅(qū)動。設(shè)置大頁,CPU和網(wǎng)口的控制關(guān)系后即可。

1.3 ELK大數(shù)據(jù)平臺

測試平臺本身的發(fā)送解析性能是一個方面,而對于測試數(shù)據(jù)本身的關(guān)注則是另外一方面。在測試過程中開發(fā)者可能只專注于一個或者兩個的重點性能數(shù)據(jù)指標,而網(wǎng)絡(luò)流其他的數(shù)據(jù)則被忽略。

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

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

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

2 平臺測試

2.1 發(fā)包測試

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

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

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

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

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

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

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

2.2 解析轉(zhuǎn)發(fā)測試

若使用已有的流量,進行網(wǎng)絡(luò)流量鏡像回放,那DPDK的解析性能也十分關(guān)鍵。于是進行3層轉(zhuǎn)發(fā)吞吐量測試。包長從64字節(jié)到1 448字節(jié)。測試數(shù)據(jù)如表3所示。

可以看到在解析方面的性能十分優(yōu)秀。64字節(jié)有著百分之90的速率,而從128字節(jié)開始就能穩(wěn)定保持幾乎滿速率的解析和轉(zhuǎn)發(fā)。滿足進行流量回放的測試性能要求。

2.3 ELK入庫功能測試

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

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

3 總結(jié)

本文提出了一個基于DPDK架構(gòu)的流量測試平臺。從上述的測試結(jié)果和數(shù)據(jù)來看,這個平臺給予了服務(wù)器級別網(wǎng)絡(luò)流量測試的一種新的可能性,性能測試達到設(shè)計預(yù)期水平,功能性上也給予了性能測試,流量回放,流量解析,數(shù)據(jù)分析這個方面。

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

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

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

參考文獻

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

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

[3] 趙寧, 謝淑翠. 基于DPDK的高效數(shù)據(jù)包捕獲技術(shù)分析與應(yīng)用[J].計算機工程與科學(xué),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記錄的高速應(yīng)用流量分類方法[J].通信學(xué)報,2012,33(1):145-152.

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

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

(收稿日期:2019.09.22)

主站蜘蛛池模板: 国产96在线 | 五月婷婷亚洲综合| 97国产精品视频自在拍| 97国产在线视频| 麻豆a级片| 动漫精品啪啪一区二区三区| 波多野吉衣一区二区三区av| 香蕉国产精品视频| 国产精品自拍露脸视频| 国产精品刺激对白在线| 国产黑丝一区| 黑色丝袜高跟国产在线91| 在线观看免费人成视频色快速| 中文无码精品a∨在线观看| 亚洲 欧美 中文 AⅤ在线视频| 欧洲av毛片| 99国产精品一区二区| 无码精油按摩潮喷在线播放| 中文字幕在线一区二区在线| 国产欧美在线观看视频| 精品无码人妻一区二区| 直接黄91麻豆网站| 国产91麻豆视频| 亚洲三级电影在线播放| 久久99久久无码毛片一区二区| 首页亚洲国产丝袜长腿综合| 国产免费人成视频网| 国产 在线视频无码| 久久中文字幕2021精品| 99人体免费视频| 国产免费黄| 国产尤物在线播放| 日韩少妇激情一区二区| 日韩欧美一区在线观看| 午夜免费视频网站| 欧美日韩国产精品va| 亚洲无码电影| 91精品国产福利| 久久国语对白| 亚洲男人的天堂久久精品| 手机看片1024久久精品你懂的| 尤物国产在线| 97成人在线视频| 亚洲欧美日韩中文字幕一区二区三区| 国产欧美日韩18| 99精品国产自在现线观看| 亚洲欧美不卡视频| 免费毛片在线| 国产色伊人| 欧美黄色网站在线看| 久久人搡人人玩人妻精品| 国产91在线|中文| 日韩成人在线网站| 在线播放真实国产乱子伦| 国产在线第二页| 好久久免费视频高清| 日韩欧美国产另类| 国产精品yjizz视频网一二区| 在线免费a视频| 国产激情在线视频| 99热国产在线精品99| 久久青草视频| 国产免费人成视频网| 国产精品女同一区三区五区| 国产另类视频| 久久午夜夜伦鲁鲁片无码免费| 亚洲码在线中文在线观看| 国产激情无码一区二区三区免费| 午夜在线不卡| 在线观看91香蕉国产免费| 好紧好深好大乳无码中文字幕| 99人体免费视频| 热99精品视频| 亚洲国产精品无码久久一线| 91毛片网| 特级做a爰片毛片免费69| 亚洲第一成网站| 国产精品污污在线观看网站| 色135综合网| 国产免费久久精品99re不卡 | 国产亚洲视频播放9000| 成人亚洲天堂|