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

        ?

        高效可擴(kuò)展的網(wǎng)絡(luò)流量分析系統(tǒng)優(yōu)化方法

        2022-07-08 14:58:28盧子晉姜海洋張廣興
        江蘇通信 2022年3期
        關(guān)鍵詞:優(yōu)化能力系統(tǒng)

        景 陽(yáng) 盧子晉 姜海洋 張廣興 曾 彬

        1.江蘇省未來網(wǎng)絡(luò)創(chuàng)新研究院;2.吉林大學(xué)通信工程學(xué)院;

        3.中國(guó)科學(xué)院計(jì)算技術(shù)研究所;4.湖南友道信息技術(shù)有限公司

        0 引言

        為了監(jiān)測(cè)和防御網(wǎng)絡(luò)入侵行為,網(wǎng)絡(luò)中部署了大量的安全設(shè)備,如網(wǎng)絡(luò)流量分析(Network Traffic Analysis,NTA)系統(tǒng)、入侵防御檢測(cè)系統(tǒng)、防火墻等。隨著網(wǎng)絡(luò)帶寬的快速增長(zhǎng),安全設(shè)備面臨嚴(yán)峻的性能挑戰(zhàn)。目前針對(duì)網(wǎng)絡(luò)安全設(shè)備性能提升及擴(kuò)展性問題的研究,大多集中在算法優(yōu)化層面,如針對(duì)硬件資源的調(diào)度算法優(yōu)化、針對(duì)具體業(yè)務(wù)層面的算法優(yōu)化等,但是在生產(chǎn)環(huán)境中,所有資源都接近滿負(fù)荷運(yùn)行的情況下,各種調(diào)度算法就不能很好地發(fā)揮效果了。本研究以江蘇省未來網(wǎng)絡(luò)創(chuàng)新研究院建設(shè)的未來網(wǎng)絡(luò)實(shí)驗(yàn)設(shè)施(China Environment for Network Innovations,CENI)中的NTA 系統(tǒng)為例,分析如何在多核、眾核處理器上獲得可擴(kuò)展的流量處理能力。NTA 的系統(tǒng)架構(gòu)是典型的安全設(shè)備系統(tǒng)架構(gòu),本研究通過分析NTA 的業(yè)務(wù)特性和使用場(chǎng)景,得出影響NTA 系統(tǒng)處理能力擴(kuò)展性的兩個(gè)主要方面:硬件層面的資源競(jìng)爭(zhēng)問題和軟件層面的資源競(jìng)爭(zhēng)。然后從硬件和軟件兩個(gè)層面對(duì)NTA 系統(tǒng)的性能擴(kuò)展性提出相應(yīng)的優(yōu)化方法。通過該方法,CENI 網(wǎng)管的NTA 探針子系統(tǒng)獲得了200 Gbps 的處理能力。本研究提出的方法同樣也可以應(yīng)用到防火墻、入侵防御、入侵檢測(cè)等安全設(shè)備中。

        1 相關(guān)工作

        在硬件層面,影響NTA 系統(tǒng)處理能力及擴(kuò)展性的主要是處理器、三級(jí)緩存、內(nèi)存、PCIe 網(wǎng)卡的工作方式。這些硬件之間的協(xié)作關(guān)系如圖1 所示。對(duì)系統(tǒng)處理能力的影響主要有兩個(gè)方面:一是報(bào)文在PCIe 網(wǎng)卡和內(nèi)存之間傳遞時(shí),跨NUMA 節(jié)點(diǎn)處理報(bào)文造成的性能消耗;二是內(nèi)存和處理器之間的三級(jí)緩存占用不均勻,產(chǎn)生大量緩存不命中現(xiàn)象造成的性能消耗。

        圖1 處理器系統(tǒng)架構(gòu)圖

        如何使用這些硬件設(shè)備才能使系統(tǒng)整體性能達(dá)到最優(yōu)?學(xué)者們給出了一些解決方法,如,(1)Peter Zijlstra 等人提出的使用任務(wù)本地節(jié)點(diǎn)化來減少非本地內(nèi)存訪問頻率的方法;(2)Mohammad Dashti 提出的使用優(yōu)化算法“Carrefour”解決內(nèi)存控制器和NUMA 節(jié)點(diǎn)互聯(lián)中擁塞問題的方法;(3)intel DPDK 中對(duì)三級(jí)緩存的使用做的各種優(yōu)化。但是這些方法都不能很好地解決NTA 系統(tǒng)中硬件最優(yōu)化使用的問題。因?yàn)樵贜TA 業(yè)務(wù)場(chǎng)景中,通常需要接收、處理大量網(wǎng)絡(luò)報(bào)文,這幾乎可以消耗掉系統(tǒng)上所有的硬件資源,所以無論算法怎樣合理,都會(huì)出現(xiàn)任務(wù)分配不均、數(shù)據(jù)擁塞等問題。因此,基于算法和系統(tǒng)自由調(diào)度的方式做的優(yōu)化效果就會(huì)失效,從而使系統(tǒng)整體處理能力下降。所以還是希望能夠根據(jù)設(shè)備的硬件特征自由配置特定的NTA 系統(tǒng)。

        在軟件層面,影響NTA 系統(tǒng)處理能力及擴(kuò)展性的主要是NTA 系統(tǒng)的業(yè)務(wù)處理模型。NTA 的基礎(chǔ)業(yè)務(wù)數(shù)據(jù)處理流程如圖2 所示。其業(yè)務(wù)模型主要包括業(yè)務(wù)處理模塊和數(shù)據(jù)維護(hù)兩個(gè)方面。業(yè)務(wù)處理模塊,指的是NTA 系統(tǒng)中負(fù)責(zé)特定業(yè)務(wù)功能的函數(shù)的集合組成的一個(gè)系統(tǒng)調(diào)用。NTA 業(yè)務(wù)主要的業(yè)務(wù)處理模塊包括:報(bào)文采集、報(bào)文解析、流信息處理、流信息掃描、流信息導(dǎo)出等等。數(shù)據(jù)維護(hù),主要指流數(shù)據(jù)維護(hù)。流數(shù)據(jù)不僅是各個(gè)業(yè)務(wù)模塊處理的核心數(shù)據(jù),還是其他重要數(shù)據(jù)間的橋梁,因此流數(shù)據(jù)的維護(hù)和管理是NTA 系統(tǒng)數(shù)據(jù)維護(hù)的核心。正是因?yàn)楦鱾€(gè)業(yè)務(wù)處理模塊對(duì)數(shù)據(jù)操作的競(jìng)爭(zhēng)關(guān)系,以及流數(shù)據(jù)的全局橋梁作用,影響了多線程架構(gòu)的NTA 系統(tǒng)的性能擴(kuò)展能力。

        圖2 NTA 基礎(chǔ)業(yè)務(wù)數(shù)據(jù)處理流程圖

        要解決軟件層面的資源競(jìng)爭(zhēng)問題,主要是解決流表操作的沖突問題。人們給出了一些解決方法,如,(1)開源項(xiàng)目Suricata 中使用的擴(kuò)大流表存儲(chǔ)量,減少?zèng)_突概率的方法:(2)張建宇等人提出的使用多張流表按照某種方法做倒換使用的方法。這兩種方法雖然可以緩解或者避免流表使用沖突,但是耗費(fèi)了大量緩存,增加了I/O 開銷。在流節(jié)點(diǎn)數(shù)量龐大的NTA 環(huán)境中,成本增長(zhǎng)的流表緩存和I/O 開銷,會(huì)使NTA 設(shè)備難以支撐。

        綜上所述,在NTA 這種特定類型的系統(tǒng)應(yīng)用上,目前硬件層面已有的優(yōu)化方法達(dá)不到想要的效果,而在軟件層面已有的一些優(yōu)化方法,在生產(chǎn)實(shí)踐中的資源使用性價(jià)比又比較低。因此,本研究針對(duì)NTA 業(yè)務(wù)的特殊性以及在生產(chǎn)實(shí)踐中的資源使用性價(jià)比和可行性,提出了對(duì)軟件和硬件分別做優(yōu)化的方法來解決上述問題。

        2 基于DPDK 可擴(kuò)展的收包框架

        2.1 概述

        本研究設(shè)計(jì)了一套基于DPDK 的收包可擴(kuò)展框架,來解決硬件層面上各種資源使用策略及競(jìng)爭(zhēng)問題。收包可擴(kuò)展框架圖如圖3 所示。所謂框架是指一種基于模塊化設(shè)計(jì)軟件應(yīng)用的場(chǎng)景,按照特定策略,設(shè)置、編排軟件模塊的全局層面的部署方式。此收包框架包括:信息提取器、模塊編排器、模塊部署裝置。信息提取器的主要功能是:收集運(yùn)行設(shè)備的硬件信息。模塊編排器的主要功能是:按照收集到的硬件信息,根據(jù)預(yù)制的模塊設(shè)置、編排模型,得出部署要使用的模塊類型、模塊個(gè)數(shù)、以及相互之前的協(xié)作關(guān)系。模塊部署裝置:根據(jù)模塊編排器給出的模塊設(shè)置參數(shù),啟動(dòng)、運(yùn)行、監(jiān)控各個(gè)功能模塊。

        圖3 收包可擴(kuò)展框架系統(tǒng)圖

        這套收包框架的重點(diǎn)是“模塊編排器”,其工作重點(diǎn)就是為了解決硬件層面的資源競(jìng)爭(zhēng)問題,其輸入是硬件設(shè)備信息,輸出是業(yè)務(wù)模塊部署時(shí)使用的各種參數(shù)。編排器的輸入?yún)?shù)為:(1)PCIe 網(wǎng)卡所在NUMA、吞吐量、硬件特性;(2)處理器所在NUMA、總核數(shù)、單個(gè)NUMA 中核數(shù)、單核性能參數(shù);(3)三級(jí)緩存分布情況、共享核數(shù);(4)內(nèi)存所在NUMA、大小。經(jīng)過編排器得到的參數(shù)為:(1)使用到的系統(tǒng)模塊類型,各個(gè)模塊占用的核號(hào)及數(shù)量;(2)申請(qǐng)內(nèi)存的節(jié)點(diǎn)位置及大小。對(duì)于給定的硬件資源,綜合了生產(chǎn)實(shí)踐中經(jīng)常使用到的NTA 業(yè)務(wù)模塊的排布使用方式,預(yù)設(shè)了一些模塊編排方法,后續(xù)也會(huì)根據(jù)生產(chǎn)實(shí)踐需要,不斷完善和豐富模塊編排器的編排策略,且模塊編排器的修改并不會(huì)影響框架的其他部分。

        本系統(tǒng)以動(dòng)態(tài)庫(kù)的形式實(shí)現(xiàn)了收包框架,提供對(duì)外接口給NTA 系統(tǒng)使用。配置NTA 系統(tǒng)時(shí),根據(jù)系統(tǒng)的硬件信息配置參數(shù),系統(tǒng)啟動(dòng)時(shí)會(huì)按照配置的參數(shù),根據(jù)策略運(yùn)行指定的收包及分發(fā)模式。

        2.2 系統(tǒng)準(zhǔn)備工作

        模塊編排器從硬件信息需要得到系統(tǒng)啟動(dòng)的準(zhǔn)備工作指的是信息提取器獲取到設(shè)備信息,將設(shè)備信息輸入編排器得到系統(tǒng)啟動(dòng)參數(shù),并啟動(dòng)系統(tǒng)的過程。

        首先,信息提取器需要獲取的硬件信息包括:網(wǎng)卡端口的流量采集能力、網(wǎng)卡收包隊(duì)列的最大個(gè)數(shù)、處理器框架結(jié)構(gòu)、內(nèi)存分布情況及容量大小、共享三級(jí)緩存與對(duì)應(yīng)的處理器核心信息。其中,網(wǎng)卡端口的流量采集能力代表可以接入系統(tǒng)的總流量大??;網(wǎng)卡收包隊(duì)列的最大個(gè)數(shù)決定了每個(gè)端口的流量最多可以分成多少份;處理器框架結(jié)構(gòu)及共享三級(jí)緩存與對(duì)應(yīng)的處理器核心,決定了系統(tǒng)接入的流量如何分布在各個(gè)處理器核心上做處理;處理器的處理能力決定了單個(gè)處理器核心可以處理的報(bào)文量;內(nèi)存分布情況及容量大小決定了可以申請(qǐng)的內(nèi)存節(jié)點(diǎn)及大小。

        其次,模塊編排器從硬件信息需要得到的配置參數(shù)包括:(1)網(wǎng)卡初始化相關(guān)的參數(shù):需要使用的端口、端口個(gè)數(shù)、端口啟用的硬件隊(duì)列個(gè)數(shù)、端口隊(duì)列可容納的報(bào)文個(gè)數(shù)等;(2)收包線程設(shè)置相關(guān)的參數(shù):是否需要單獨(dú)開設(shè)收包線程、線程個(gè)數(shù)及使用的邏輯核號(hào)等;(3)業(yè)務(wù)線程設(shè)置相關(guān)的參數(shù):?jiǎn)⒂媚男I(yè)務(wù)線程、各種業(yè)務(wù)線程個(gè)數(shù)、是否綁核等;(4)報(bào)文轉(zhuǎn)發(fā)方式相關(guān)的參數(shù):丟棄、轉(zhuǎn)發(fā)到指定端口、投遞到共享內(nèi)存給其他進(jìn)程使用。

        最后,模塊部署裝置按照啟動(dòng)信息,設(shè)置網(wǎng)卡、內(nèi)存,啟動(dòng)收包線程、監(jiān)控線程、掃描線程、信息導(dǎo)出線程,設(shè)置業(yè)務(wù)處理線程個(gè)數(shù),等待收包。各個(gè)啟動(dòng)線程定義如下:

        (1)收包線程定義:是本系統(tǒng)動(dòng)態(tài)庫(kù)創(chuàng)建的,直接調(diào)用DPDK 收包接口,并將DPDK 的報(bào)文結(jié)構(gòu)轉(zhuǎn)換成本系統(tǒng)動(dòng)態(tài)庫(kù)自有的報(bào)文結(jié)構(gòu)的線程,此線程主要的工作是從DPDK 驅(qū)動(dòng)層接受報(bào)文,然后根據(jù)配置需要做些簡(jiǎn)單的統(tǒng)計(jì)、解析工作。

        (2)監(jiān)控線程定義:是本系統(tǒng)動(dòng)態(tài)庫(kù)創(chuàng)建的,負(fù)責(zé)監(jiān)控系統(tǒng)狀態(tài)、連接狀態(tài)、端口狀態(tài)并定期輸出狀態(tài)信息的一類線程。

        (3)掃描線程定義:非本系統(tǒng)動(dòng)態(tài)庫(kù)創(chuàng)建的,負(fù)責(zé)定期掃描、老化流表信息,并將流信息組織成固定輸出格式的線程。

        (4)信息導(dǎo)出線程定義:非本系統(tǒng)動(dòng)態(tài)庫(kù)創(chuàng)建的,負(fù)責(zé)導(dǎo)出動(dòng)態(tài)庫(kù)統(tǒng)計(jì)、收集的報(bào)文層次的基礎(chǔ)信息的線程。

        (5)業(yè)務(wù)處理線程定義:非本系統(tǒng)動(dòng)態(tài)庫(kù)創(chuàng)建的,專門做NTA 復(fù)雜業(yè)務(wù)解析的線程。但此線程的個(gè)數(shù)由本系統(tǒng)動(dòng)態(tài)庫(kù)設(shè)置并傳遞給創(chuàng)建此線程的進(jìn)程,此線程的主要工作包括創(chuàng)建流表、做深層次的報(bào)文解析、做流量測(cè)量等工作。

        2.3 收包分配策略

        收包分配策略是按照配置文件具體參數(shù)部署收包模型的策略。策略設(shè)置是根據(jù)DPDK 的特性,以及實(shí)踐中的使用習(xí)慣設(shè)置的,需要不斷積累和調(diào)整。這里只介紹三種NTA 系統(tǒng)中常用的收包分配策略。

        (1)針對(duì)小流量場(chǎng)景,一般情況是收包線程數(shù)量小于收包端口數(shù)量??梢园凑斩丝跀?shù)量,為系統(tǒng)分配1-2 個(gè)收包線程,然后再由收包線程將流量均衡地分配到多個(gè)業(yè)務(wù)線程。

        (2)針對(duì)大流量、業(yè)務(wù)負(fù)載重的場(chǎng)景,一般情況是合并收?qǐng)?bào)線程和業(yè)務(wù)線程??梢园凑斩丝诹髁看笮。瑸槊總€(gè)端口分配多個(gè)處理線程,每個(gè)處理線程均使用運(yùn)行到完成(Run To Completion,RTC)的處理方式。

        (3)針對(duì)單核處理能力差但是總核數(shù)多的場(chǎng)景,一般需要充分利用設(shè)備的硬件特性,盡量將業(yè)務(wù)模塊分散到多個(gè)CPU 線程中去,盡可能達(dá)到負(fù)載均衡的效果。

        3 基于硬件資源分區(qū)的競(jìng)爭(zhēng)消除方法

        3.1 概述

        本研究提出了一種基于硬件的資源分區(qū)的競(jìng)爭(zhēng)消除方法,來解決軟件層面上的資源競(jìng)爭(zhēng)問題。系統(tǒng)結(jié)構(gòu)圖如圖4 所示。主要包括以下三個(gè)方面:(1)對(duì)流節(jié)點(diǎn)管理方式做了改造。對(duì)流表劃分了兩級(jí)區(qū)域,第一級(jí)以收包端口為單位劃分區(qū)域,第二級(jí)以端口對(duì)應(yīng)的收?qǐng)?bào)線程為單位劃分區(qū)域,因此每個(gè)業(yè)務(wù)處理線程只從對(duì)應(yīng)的流表區(qū)域獲取、歸還流節(jié)點(diǎn),從而消除各個(gè)業(yè)務(wù)處理線程之間的沖突。(2)對(duì)流表的掃描方式做了相應(yīng)的改造。以端口為單位創(chuàng)建掃描線程,做分區(qū)掃描,按照預(yù)估的端口流量情況,通過配置為每個(gè)端口創(chuàng)建1 個(gè)或多個(gè)掃描線程,減輕了整體掃描的負(fù)擔(dān)。(3)對(duì)數(shù)據(jù)的導(dǎo)出方式做了改造。按照不同的分區(qū),通過配置預(yù)設(shè)的方式,增加導(dǎo)出線程數(shù)量、壓縮導(dǎo)出數(shù)據(jù),以此增加導(dǎo)出能力。

        3.2 流表管理

        為了實(shí)現(xiàn)流表添加、刪除的無鎖操作,本系統(tǒng)對(duì)流表做了區(qū)域劃分管理,見圖4 綠色的流表存儲(chǔ)結(jié)構(gòu)。以下將從流節(jié)點(diǎn)內(nèi)存管理和流節(jié)點(diǎn)使用兩個(gè)方面來描述對(duì)流表管理方式的優(yōu)化。

        圖4 系統(tǒng)結(jié)構(gòu)圖

        (1)流節(jié)點(diǎn)內(nèi)存管理。設(shè)計(jì)了一種無鎖的流節(jié)點(diǎn)內(nèi)存池管理結(jié)構(gòu)。流節(jié)點(diǎn)存儲(chǔ)使用的是一個(gè)二維數(shù)組全局變量,行數(shù)是鏈路個(gè)數(shù),列數(shù)是業(yè)務(wù)處理線程個(gè)數(shù),其中每一個(gè)節(jié)點(diǎn)維護(hù)一條Flow 類型的鏈表,鏈表存儲(chǔ)的是預(yù)先申請(qǐng)的流節(jié)點(diǎn)內(nèi)存。按照配置設(shè)置流節(jié)點(diǎn)數(shù)量的分配規(guī)則,整個(gè)內(nèi)存是初始化的時(shí)候一次性申請(qǐng)好的。這種內(nèi)存管理方式可以使每個(gè)業(yè)務(wù)處理線程、每條鏈路都有自己獲取流節(jié)點(diǎn)的區(qū)域,所以獲取流節(jié)點(diǎn)時(shí)不需要加鎖。

        (2)流節(jié)點(diǎn)使用?;谏鲜隽鞴?jié)點(diǎn)內(nèi)存管理方式,設(shè)計(jì)了一種將沖突最小化的流節(jié)點(diǎn)使用方式。先按照鏈路創(chuàng)建管理流表的哈希表,再結(jié)合業(yè)務(wù)線程數(shù)量、業(yè)務(wù)特征等為此哈希表劃分區(qū)域。產(chǎn)生分區(qū)的哈希鍵值需要對(duì)原始的經(jīng)過計(jì)算得到的哈希鍵值再做一次轉(zhuǎn)化,原始哈希鍵值可以轉(zhuǎn)化為“每個(gè)線程可使用的哈希桶個(gè)數(shù)乘以線程號(hào),再加上原始哈希鍵值對(duì)每個(gè)線程可使用的哈希桶個(gè)數(shù)取余得到的數(shù)值”的形式。。這樣做的原因是為了將流表維護(hù)及使用過程中的沖突限定在某一個(gè)掃描線程和某一個(gè)業(yè)務(wù)處理線程中。

        3.3 流表掃描

        針對(duì)上節(jié)實(shí)現(xiàn)的流表管理方式,設(shè)計(jì)了一種基于端口的流表掃描、信息存儲(chǔ)機(jī)制,將流表操作的沖突限制在最小的范圍,見圖4 粉色的掃描線程和黃色流信息存儲(chǔ)結(jié)構(gòu)。流節(jié)點(diǎn)管理的最終目的是為了從有效的流節(jié)點(diǎn)中獲取各種統(tǒng)計(jì)信息,所以需要?jiǎng)?chuàng)建與業(yè)務(wù)處理線程并行處理的掃描線程搜集要導(dǎo)出的各種信息。隨著業(yè)務(wù)量越來越重,要搜集的信息也越來越多,掃描線程個(gè)數(shù)也需要相應(yīng)的增加,而制定掃描線程個(gè)數(shù)設(shè)置策略的時(shí)候,也需要考慮流表使用沖突的問題。這里流表增刪與流表掃描的沖突問題無法完全解決,只能盡量將其沖突最小化。綜合上面的流表管理方式,本研究的處理方式是:為每條鏈路設(shè)置1 個(gè)或多個(gè)掃描線程,每隔一段時(shí)間掃描、老化一次哈希表中的流節(jié)點(diǎn),并且拼裝要導(dǎo)出的信息。每條鏈路的掃描線程個(gè)數(shù),要依據(jù)流節(jié)點(diǎn)數(shù)量和處理器處理能力的經(jīng)驗(yàn)值來設(shè)置。比如,如果這條鏈路產(chǎn)生的流節(jié)點(diǎn)較少且處理器處理能力強(qiáng),則只需要設(shè)置一個(gè)掃描線程,如果這條鏈路產(chǎn)生的流節(jié)點(diǎn)數(shù)量很大且處理器處理能力又弱,則設(shè)置多個(gè)掃描線程。這種線程部署方式,將流表使用沖突限制在了每個(gè)基于端口的流表的一個(gè)業(yè)務(wù)處理線程和一個(gè)掃描線程之間,并且流表鎖的范圍是一個(gè)沖突鏈。

        3.4 數(shù)據(jù)導(dǎo)出

        針對(duì)上節(jié)實(shí)現(xiàn)的流掃描、信息搜集機(jī)制,設(shè)計(jì)了一種與之相匹配的日志導(dǎo)出機(jī)制,見圖4 藍(lán)色的導(dǎo)出線程和黃色流信息存儲(chǔ)結(jié)構(gòu)。NTA 系統(tǒng)要導(dǎo)出的數(shù)據(jù)量非常大,通常是要每隔一段時(shí)間導(dǎo)出幾百萬乃至上千萬條流數(shù)據(jù),并且每條流的數(shù)據(jù)長(zhǎng)度可多達(dá)上千字節(jié)長(zhǎng)度。所以為了提升擴(kuò)展性,一般也會(huì)增設(shè)多個(gè)導(dǎo)出線程。本系統(tǒng)設(shè)計(jì)的日志導(dǎo)出機(jī)制從兩個(gè)方面考慮:一是設(shè)置合理的導(dǎo)出線程數(shù)量及導(dǎo)出方式;二是將導(dǎo)出的數(shù)據(jù)做壓縮來減輕單線程導(dǎo)出負(fù)擔(dān)。導(dǎo)出線程的設(shè)置策略方面,與掃描線程一一對(duì)應(yīng),掃描線程將拼裝的數(shù)據(jù)存儲(chǔ)到輸出隊(duì)列中,導(dǎo)出線程定時(shí)檢測(cè)隊(duì)列中是否有數(shù)據(jù),有數(shù)據(jù)則導(dǎo)出。另一方面,根據(jù)策略來設(shè)置是否要將數(shù)據(jù)做壓縮,經(jīng)過對(duì)各種壓縮算法比較,綜合考慮壓縮率和壓縮時(shí)間,我們最終選擇使用Lz4 壓縮算法來對(duì)單條流數(shù)據(jù)做壓縮,通過壓縮的方式可提升30%數(shù)據(jù)導(dǎo)出量。

        綜上三節(jié)的實(shí)現(xiàn)方式,可以做到流表的管理使用、掃描、信息導(dǎo)出,按照端口劃分是完全獨(dú)立的,并且在每個(gè)端口內(nèi)部流量處理時(shí)沖突縮減到最小化。再加上硬件資源也可以按照端口獨(dú)立,理論上我們的系統(tǒng)在對(duì)流量的處理、信息搜集導(dǎo)出能力上,是可以達(dá)到以增加不同端口接入流量的方式來使得系統(tǒng)處理能力線性擴(kuò)展的。為了驗(yàn)證本研究設(shè)計(jì)的NTA 系統(tǒng)的處理能力以及性能擴(kuò)展能力,找到了一款硬件資源相對(duì)獨(dú)立的海光設(shè)備來做驗(yàn)證。

        4 在海光設(shè)備上的應(yīng)用

        為了驗(yàn)證本系統(tǒng)處理能力及性能擴(kuò)展性,選擇了一款PCIe 網(wǎng)口數(shù)量較多、處理器核數(shù)較多、NUMA 節(jié)點(diǎn)較多、共享三級(jí)緩存對(duì)應(yīng)的核較少、資源比較獨(dú)立的海光設(shè)備作驗(yàn)證。

        4.1 設(shè)備信息及使用策略

        海光服務(wù)器硬件信息如下:(1)面板口信息:2 個(gè)100Gbps 的面板口。(2)處理器信息:型號(hào)為Hygon C86 7185 32-core Processor,2 座處理器,處理器為NUMA 架構(gòu),1 座處理器會(huì)分成4 個(gè)NUMA,每個(gè)NUMA 是8 個(gè)物理核心。(3)FPGA 芯片信息:共2 個(gè)FPGA 芯片,做報(bào)文分發(fā)。(4)PCIe號(hào)虛擬出來的口:每個(gè)虛擬口2 個(gè)收包隊(duì)列。(5)面板口、FPGA 芯片、PCIe 號(hào)虛擬出來的口、內(nèi)存、處理器之間的關(guān)系:1 個(gè)面板口對(duì)應(yīng)1 個(gè)FPGA 芯片,1 個(gè)FPGA 芯片通過8 個(gè)PCIe 號(hào)虛擬出來的口,與一個(gè)處理器連接,此處理器有4 個(gè)NUMA 節(jié)點(diǎn),2 個(gè)PCIe 號(hào)虛擬出來的口對(duì)應(yīng)一個(gè)NUMA 節(jié)點(diǎn)。

        針對(duì)上述硬件信息,首先用模塊編排器進(jìn)行編排。得到下面的結(jié)果:(1)在每個(gè)NUMA 上申請(qǐng)2G 巨頁(yè);(2)在每個(gè)NUMA 上,按照共享三級(jí)緩存的邏輯核,將1 個(gè)NUAM上的所有邏輯核分為2 組,則每組8 個(gè)邏輯核,將這8 個(gè)邏輯核分給1 個(gè)PCIe 口使用;(3)1 個(gè)PCIe 口對(duì)應(yīng)的8 個(gè)邏輯核的使用方式是:設(shè)置2 個(gè)收包核、4 個(gè)業(yè)務(wù)處理核、1 個(gè)流表掃描核、1 個(gè)數(shù)據(jù)導(dǎo)出核;(4)設(shè)置16 個(gè)掃描線程、16 個(gè)導(dǎo)出線程、1 個(gè)監(jiān)控線程。

        之后用模塊部署裝置,根據(jù)收包分發(fā)策略及流節(jié)點(diǎn)掃描導(dǎo)出策略,設(shè)置系統(tǒng)運(yùn)行模型。

        4.2 測(cè)試結(jié)果及分析

        使用測(cè)試儀構(gòu)造各種不同長(zhǎng)度TCP 和UDP 流量,測(cè)試優(yōu)化后的NTA系統(tǒng)的處理能力及擴(kuò)展能力,測(cè)試結(jié)果如表1所示。關(guān)于性能對(duì)比實(shí)驗(yàn),不僅對(duì)優(yōu)化前后的NTA 系統(tǒng)做了對(duì)比,而且還選用了一款具有代表性的、使用比較普遍的、開源的NTA 系統(tǒng)suricata,與優(yōu)化后的NTA 系統(tǒng)做了對(duì)比。在使用suricata 做對(duì)比實(shí)驗(yàn)的時(shí)候,對(duì)suricata 的整體負(fù)載能力做了調(diào)整,使其與優(yōu)化后的NTA 系統(tǒng)在單核處理能力上接近一致,這樣做是為了使兩者的對(duì)比實(shí)驗(yàn)更有可比性。對(duì)比結(jié)果如圖5所示。

        圖5 三種NTA 系統(tǒng)處理能力對(duì)比

        表1 優(yōu)化后的NTA 系統(tǒng)處理能力

        首先,對(duì)比在1 個(gè)NUMA 中增加處理器線程數(shù)是否可以使系統(tǒng)處理能力線性增加。根據(jù)表1 前兩列測(cè)試結(jié)果可得:

        (1)處理64 字節(jié)的TCP、UDP 流量。使用1 個(gè)NUMA中8 個(gè)線程,處理125 萬流節(jié)點(diǎn)的能力是1.5Gbps;使用1 個(gè)NUMA 中16 個(gè)線程,處理250 萬流節(jié)點(diǎn)的能力是3Gbps。所以在1個(gè)NUMA中對(duì)64字節(jié)流量處理能力是可以達(dá)到線性增長(zhǎng)的。

        (2)處理512 字節(jié)的TCP、UDP 流量。使用1 個(gè)NUMA中8 個(gè)線程,處理125 萬流節(jié)點(diǎn)的能力是9Gbps;使用1 個(gè)NUMA 中16 個(gè)線程,處理250 萬流節(jié)點(diǎn)的能力是18Gbps。所以在1 個(gè)NUMA 中對(duì)512 字節(jié)流量處理能力是可以達(dá)到線性增長(zhǎng)的。

        (3)處理混合字節(jié)的TCP、UDP 流量。使用1 個(gè)NUMA中8 個(gè)線程,處理125 萬流節(jié)點(diǎn)的能力是13Gbps;使用1 個(gè)NUMA 中16 個(gè)線程,處理250 萬流節(jié)點(diǎn)的能力是25Gbps。所以在1 個(gè)NUMA 中對(duì)混合字節(jié)流量處理能力是可以達(dá)到近似線性增長(zhǎng)的。

        (4)處 理1518 字 節(jié) 的TCP、UDP 流 量。使 用1 個(gè)NUMA 中8 個(gè)線程,處理125 萬流節(jié)點(diǎn)的能力是26Gbps;使用1 個(gè)NUMA 中16 個(gè)線程,處理250 萬流節(jié)點(diǎn)的能力是50Gbps。所以在1 個(gè)NUMA 中對(duì)1518 字節(jié)流量處理能力是可以達(dá)到近似線性增長(zhǎng)的。

        由上述實(shí)驗(yàn)結(jié)果可以證明,優(yōu)化后的系統(tǒng)在1 個(gè)NUMA中增加處理器線程數(shù)可以使系統(tǒng)處理能力達(dá)到近似線性增加的效果。

        其次,對(duì)比增加不同NUMA 節(jié)點(diǎn)中的處理器線程數(shù)是否可以使系統(tǒng)處理能力線性增加。此型號(hào)設(shè)備共有8 個(gè)NUMA,每個(gè)NUMA 中有16 個(gè)處理器線程。表1 中16 個(gè)處理器線程使用的是1 個(gè)NUMA 中的所有線程、32 個(gè)處理器線程使用的是2 個(gè)不同NUMA 中的所有線程、64 個(gè)處理器線程使用的是4 個(gè)不同NUMA 中的所有線程、128 個(gè)處理器線程使用的是8 個(gè)不同NUMA 中的所有線程。根據(jù)表1 后四列測(cè)試結(jié)果可得:

        (1)處理64 字節(jié)的TCP、UDP 流量。使用1 個(gè)NUMA節(jié)點(diǎn)處理250 萬流節(jié)點(diǎn)的能力是3Gbps;使用2 個(gè)NUMA 節(jié)點(diǎn)處理500 萬流節(jié)點(diǎn)的能力是5Gbps;使用4 個(gè)NUMA 節(jié)點(diǎn)處理1000 萬流節(jié)點(diǎn)的能力是10Gbps;使用8 個(gè)NUMA 節(jié)點(diǎn)處理2000 萬流節(jié)點(diǎn)的能力是20Gbps。所以在多NUMA 中處理64 字節(jié)流量可以達(dá)到近似線性增長(zhǎng)。

        (2)處理512 字節(jié)的TCP、UDP 流量。使用1 個(gè)NUMA節(jié)點(diǎn)處理250 萬流節(jié)點(diǎn)的能力是18Gbps;使用2 個(gè)NUMA 節(jié)點(diǎn)處理500 萬流節(jié)點(diǎn)的能力是34Gbps;使用4 個(gè)NUMA 節(jié)點(diǎn)處理1000 萬流節(jié)點(diǎn)的能力是68Gbps;使用8 個(gè)NUMA 節(jié)點(diǎn)處理2000 萬流節(jié)點(diǎn)的能力是134Gbps。所以在多NUMA 中處理512 字節(jié)流量可以達(dá)到近似線性增長(zhǎng)。

        (3)處理混合字節(jié)的TCP、UDP 流量。使用1 個(gè)NUMA節(jié)點(diǎn)處理250 萬流節(jié)點(diǎn)的能力是25Gbps;使用2 個(gè)NUMA 節(jié)點(diǎn)處理500 萬流節(jié)點(diǎn)的能力是50Gbps;使用4 個(gè)NUMA 節(jié)點(diǎn)處理1000 萬流節(jié)點(diǎn)的能力是100Gbps;使用8 個(gè)NUMA 節(jié)點(diǎn)處理2000 萬流節(jié)點(diǎn)的能力是200Gbps。所以在多NUMA 中處理混合字節(jié)流量可以達(dá)到近似線性增長(zhǎng)。

        (4)處 理1518 字 節(jié) 的TCP、UDP 流 量。使 用1 個(gè)NUMA 節(jié)點(diǎn)處理250 萬流節(jié)點(diǎn)的能力是50Gbps;使用2 個(gè)NUMA 節(jié)點(diǎn)處理500 萬流節(jié)點(diǎn)的能力是100Gbps;使用4 個(gè)NUMA 節(jié)點(diǎn)處理1000 萬流節(jié)點(diǎn)的能力是200Gbps。所以在多NUMA 中處理1518 字節(jié)流量可以達(dá)到近似線性增長(zhǎng),并且遠(yuǎn)遠(yuǎn)沒有達(dá)到系統(tǒng)的最大處理能力。

        由上述實(shí)驗(yàn)結(jié)果可以證明,在多NUMA 系統(tǒng)中優(yōu)化后的系統(tǒng)處理能力也是近似線性增加的。

        對(duì)比圖說明:(1)圖5(a)、(b)、(c),使用的16個(gè)處理器線程是NUMA 0 中的;使用的32 個(gè)處理器線程是NUMA 0-1 中的;使用的64 個(gè)處理器線程是NUMA 0-4 中的;使用的128 個(gè)處理器線程是NUMA 0-7 中的。(2)圖5(d),由于報(bào)文長(zhǎng)度較長(zhǎng),優(yōu)化后的系統(tǒng)可以只使用NUMA 0-1 中的處理器,就可以處理所有來自面板口1 的流量,又由于硬件架構(gòu)原因,優(yōu)化后的系統(tǒng)需要使用NUMA 6-7 中的處理器,來處理所有來自面板口2 的流量。所以優(yōu)化后的系統(tǒng)只需要NUMA 0-1、6-7 的64 個(gè)處理器線程,就可以處理最大可接入的200G流量了,而優(yōu)化前的系統(tǒng)和suricata 還需要繼續(xù)使用其他線程。(1)64 字節(jié)流量。優(yōu)化后的最大處理能力比suricata 系統(tǒng)高出1 倍,比優(yōu)化前的系統(tǒng)高出1.85 倍。(2)512 字節(jié)流量。優(yōu)化后的最大處理能力比suricata 系統(tǒng)高出1.68 倍,比優(yōu)化前的系統(tǒng)高出7.9 倍。(3)混合字節(jié)流量。優(yōu)化后的最大處理能力比suricata 系統(tǒng)高出1.67 倍、比優(yōu)化前的系統(tǒng)高出11.5 倍。

        由4 組不同長(zhǎng)度報(bào)文的對(duì)比圖可以看出,優(yōu)化后的系統(tǒng)無論是在單核處理能力方面,還是在性能擴(kuò)展性方面,都比優(yōu)化前的系統(tǒng)和suricata 系統(tǒng)要好很多,并且系統(tǒng)最大處理能力要遠(yuǎn)遠(yuǎn)高于后兩種NTA 系統(tǒng)。由此可以證明,優(yōu)化后的系統(tǒng)整體處理性能有了很大提升。

        5 結(jié)束語

        本研究提出的優(yōu)化方法從硬件和軟件兩個(gè)方面對(duì)NTA 系統(tǒng)做優(yōu)化,設(shè)計(jì)了一套基于DPDK 的可擴(kuò)展收包框架,可以在硬件資源上按照NTA 系統(tǒng)的業(yè)務(wù)特性,將資源做合理劃分,解決硬件層面的資源競(jìng)爭(zhēng)問題。提出了一種基于硬件的資源分區(qū)競(jìng)爭(zhēng)消除方法,雖然不能完全解決沖突問題,但是已將沖突范圍大大減少,且不會(huì)消耗大量緩存資源、不影響系統(tǒng)擴(kuò)展性。通過硬件、軟件兩方面的優(yōu)化,可以使NTA 系統(tǒng)隨著資源的增加,處理能力達(dá)到近似線性增長(zhǎng)的效果?;谠摲椒?,在一款海光國(guó)產(chǎn)化平臺(tái)上,對(duì)NTA 進(jìn)行性能優(yōu)化,實(shí)驗(yàn)結(jié)果表明,本研究設(shè)計(jì)的NTA 系統(tǒng)的實(shí)際性能擴(kuò)展性與理論上的效果相符,可達(dá)到線性增長(zhǎng)的效果。目前優(yōu)化后的NTA 已經(jīng)應(yīng)用于CENI 網(wǎng)管的NTA 探針子系統(tǒng)上,后續(xù)會(huì)逐步將該方法推廣到網(wǎng)絡(luò)安全領(lǐng)域的其他設(shè)備上。

        猜你喜歡
        優(yōu)化能力系統(tǒng)
        消防安全四個(gè)能力
        Smartflower POP 一體式光伏系統(tǒng)
        超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
        民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        大興學(xué)習(xí)之風(fēng) 提升履職能力
        你的換位思考能力如何
        扒开腿狂躁女人爽出白浆| 高清国产精品一区二区| 免费看黄片的视频在线观看| 蜜臀亚洲av无码精品国产午夜.| 亚洲人成绝费网站色www| 被欺辱的高贵人妻被中出| 亚洲av色精品国产一区二区三区| 国产精品亚洲精品日韩已方| 国产亚洲精品久久久久久| 免费精品美女久久久久久久久久| 日日麻批视频免费播放器| 成年女人免费v片| 精品国内日本一区二区| 蜜桃日本免费看mv免费版| 日韩AV不卡六区七区| 久草国产手机视频在线观看| 日韩av一区二区三区激情在线 | av天堂手机在线看片资源| 日韩夜夜高潮夜夜爽无码| 老妇肥熟凸凹丰满刺激| 国产午夜精品美女裸身视频69| 与最丰满美女老师爱爱视频| 亚洲av无码一区二区三区乱子伦| 国产成人影院一区二区| 日韩一区二区三区天堂| 久久久久高潮综合影院| 夜夜嗨av一区二区三区| 无码8090精品久久一区| 一区二区三区在线少妇| 国产激情电影综合在线看| 深夜国产成人福利在线观看女同| 丝袜人妻中文字幕首页| 亚洲爆乳无码专区www| 亚洲精品久久久久高潮| 色婷婷久久99综合精品jk白丝 | 国产农村妇女高潮大叫| 日本一区二区三区看片| 精品人伦一区二区三区蜜桃91 | 亚洲国产精品无码久久久| 美女裸体自慰在线观看| 亚洲天堂免费成人av|