亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于DPDK的流量測(cè)試平臺(tái)設(shè)計(jì)

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

        朱星宇 張倩武 曹炳堯

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

        關(guān)鍵詞:流量測(cè)試;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)每日的活躍流量正在飛速增長著,其中包括了使用用戶和使用場(chǎng)景的不斷增加,自然而然,使用者對(duì)于網(wǎng)絡(luò)服務(wù)的要求和標(biāo)準(zhǔn)也在不斷提升。為了保證網(wǎng)絡(luò)的順暢,提供高質(zhì)量的服務(wù),流量測(cè)試環(huán)節(jié)自然是重中之重,好的測(cè)試方案可以通過數(shù)據(jù)比對(duì),找到系統(tǒng)服務(wù)的缺陷和不足之處,保障服務(wù)的質(zhì)量和穩(wěn)定。

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

        1 測(cè)試平臺(tái)設(shè)計(jì)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        1.2 Pktgen發(fā)包工具

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

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

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

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

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

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

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

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

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

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

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

        2 平臺(tái)測(cè)試

        2.1 發(fā)包測(cè)試

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

        針對(duì)平臺(tái)進(jìn)行各項(xiàng)測(cè)試,采用是功能性測(cè)試和性能測(cè)試,驗(yàn)證設(shè)計(jì)功能是否一一達(dá)到設(shè)計(jì)要求,以白盒測(cè)試為主要測(cè)試方法。

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

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

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

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

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

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

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

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

        2.3 ELK入庫功能測(cè)試

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

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

        3 總結(jié)

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

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

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

        本平臺(tái)效果達(dá)到設(shè)計(jì)預(yù)期,同時(shí)也容易推廣,方便以后擴(kuò)展測(cè)試場(chǎng)景使用。

        參考文獻(xiàn)

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

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

        [3] 趙寧, 謝淑翠. 基于DPDK的高效數(shù)據(jù)包捕獲技術(shù)分析與應(yīng)用[J].計(jì)算機(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é)報(bào),2012,33(1):145-152.

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

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

        (收稿日期:2019.09.22)

        欧美成人三级一区二区在线观看| 97在线观看| 亚洲成av人最新无码| 亚洲欧美成人久久综合中文网| 亚洲捆绑女优一区二区三区| 国产精品成熟老女人| 97久久天天综合色天天综合色hd | 人妻少妇出轨中文字幕| 国产av无码专区亚洲av| 亚洲AV永久无码精品表情包| 亚洲精品中文字幕乱码无线| 国产亚洲成av人片在线观看| 亚洲永久精品ww47| 亚洲精品国产成人| 亚洲欧美日韩国产精品网| 亚洲不卡高清av在线| 日韩视频在线观看| 999久久久免费精品国产| 完整在线视频免费黄片| 国产激情在线观看免费视频| 国产成人av一区二区三区| 午夜婷婷国产麻豆精品| 在线一区二区三区免费视频观看| 永久免费观看的黄网站在线| 欧美又粗又长又爽做受| 国产黑色丝袜在线观看下 | 日韩三级一区二区三区四区| 欧美伦费免费全部午夜最新| 国产精品视频二区不卡| 中文字幕高清无码不卡在线| 亚洲国产av一区二区三区| 又爽又黄又无遮挡的视频| 一本色道久久综合亚洲精品小说| 日本高清色一区二区三区| 亚洲 欧美 综合 在线 精品| 老头巨大挺进莹莹的体内免费视频| 天堂av无码大芭蕉伊人av孕妇黑人| 日本一二三区免费在线| 免费少妇a级毛片人成网| 尤物无码一区| 日韩一二三四区免费观看 |