首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界麵 | 運動控製
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式係統 | PC based | 機櫃箱體殼體 | 低壓電器 | 機器視覺
淩華科技服務器刀片完美搭配DPDK技術 顯著提升包轉發服務性能
淩華科技(中國)有限公司
收藏本文     查看收藏

  前言

近(jin)年(nian)來(lai),隨(sui)著(zhe)市(shi)場(chang)和(he)技(ji)術(shu)的(de)發(fa)展(zhan),越(yue)來(lai)越(yue)多(duo)的(de)網(wang)絡(luo)基(ji)礎(chu)架(jia)構(gou)開(kai)始(shi)向(xiang)基(ji)於(yu)通(tong)用(yong)計(ji)算(suan)平(ping)台(tai)或(huo)模(mo)塊(kuai)化(hua)計(ji)算(suan)平(ping)台(tai)的(de)架(jia)構(gou)方(fang)向(xiang)融(rong)合(he),用(yong)以(yi)支(zhi)持(chi)和(he)提(ti)供(gong)多(duo)樣(yang)的(de)網(wang)絡(luo)單(dan)元(yuan)和(he)豐(feng)富(fu)的(de)功(gong)能(neng),如(ru)應(ying)用(yong)處(chu)理(li)、控製處理、包處理、信xin號hao處chu理li等deng。除chu了le節jie約yue成cheng本ben和he縮suo短duan產chan品pin上shang市shi時shi間jian之zhi外wai,在zai機ji架jia式shi係xi統tong和he不bu同tong尺chi寸cun的de網wang絡luo設she備bei上shang,此ci架jia構gou還hai可ke以yi提ti供gong模mo塊kuai化hua架jia構gou的de靈ling活huo性xing以yi及ji隨sui需xu而er定ding的de係xi統tong組zu件jian獨du立li升sheng級ji能neng力li。在zai傳chuan統tong的de網wang絡luo架jia構gou中zhong,交jiao換huan模mo塊kuai處chu理liIn-bandout-of-band係統模塊之間的路由交換,處理器模塊提供應用層和控製層功能,包處理模塊用於數據平麵,DSP模塊提供定製化的信號層功能。通過使用Intel® DPDK(Intel® Data Plane Development Kit,Intel® 數據平麵開發套件),基於Intel® x86架構的處理器模塊不僅可以實現傳統的處理應用和控製功能,還可以實現智能和高效的包處理。

該白皮書以IP轉發作為包處理的一個典型示例,說明了如何將淩華科技aTCA-6200刀片式服務器與Intel® DPDK技術整合為單一平台,提供所需的處理性能,並實現包處理服務性能的提升。首先,我們來比較在沒有使用Intel® DPDK做任何優化時,采用原生 Linux(Native Linux) IP轉發時aTCA-6200的第三層轉發性能。然後,我們再分析采用Intel® DPDK技術之後所獲得的IP轉發性能提升的原因。最後,我們將介紹淩華科技基於Intel® DPDK技術的自己的開發工具包,該工具包可以協助用戶輕鬆地開發自己的基於Intel® DPDK的應用程序。

 

淩華科技aTCA-6200

淩華科技aTCA-6200是一款高集成度的AdvancedTCA處理器刀片,支持2Intel® Xeon® E5-2648L處理器(Sandy Bridge-EP,32nm),每一個處理器可以最多提供820MB的共享緩存。通過使用Intel®超線程技術(Intel® HT技術),每個處理器可以最多支持16個物理線程。除此之外,aTCA-6200還支持8通道的DDR3-1600 VLP RDIMM內存,每個處理器可以支持最大64GB的係統內存。aTCA-6200還包含了豐富的網絡I/O接口,包含2個兼容PICMG 3.1 option 1/910GbE口(XAUI,10GBase-KX4),以及最多610/100/1000BASE-T千兆以太網端口,可分別連接至前麵板,AdvancedTCA Base接口通道和後走線千兆以太網口。

淩華科技aTCA-6200處理器刀片主要針對運營商級別的安全和電信應用,同樣在網絡基礎設施中也可作為IMS服務器、媒體網關、包檢測服務器、流量管理服務器和WLAN接入點控製器等。

下圖1的功能示意圖展示了淩華科技aTCA-6200的詳細架構。


1:aTCA-6200功能示意圖

 

Intel DPDK

Intel® DPDK(Intel® Data Plane Development Kit,Intel® 數據平麵開發套件)是一個專為Intel®架構處理器提供的輕量級運行環境。它提供了低功耗和Run-to-Completion(RTC,運行到完成)模式,以此最大限度的提升數據包的處理性能。而且Intel® DPDK還包含了優化的和高效的函數庫,為用戶提供豐富的選擇,例如我們熟知的環境抽象層(EAL,Environment Abstraction Layer),它負責初始化和分配低級資源,同時隱藏來自應用和函數庫的環境特性,並且獲取低級資源,如內存空間,PCI設備,定時器和控製台。

環境抽象層(EAL)提供優化的輪詢模式驅動(PMD,Poll Mode Driver),內存和緩存管理,定時器,調試和包處理API,其中有些功能也可以由Linux操作係統提供。為使應用層間的相互協作更加便利,環境抽象層(EAL)與標準的GNU C Library(GLIBC)一起,提供集成了更高級別應用的完整API

下圖2為軟件層級結構圖


2:Linux應用環境中的EALGLIBC

 

測試拓撲結構

為了測量aTCA-6200在第三層進行處理和轉發IP包的速度,我們使用圖3中所示的環境進行測試。


3: IP轉發測試環境

如圖3所示,兩片淩華科技aTCA-3400交換刀片,通過使用FASTPATH®網絡軟件,為安裝在淩華科技aTCA-8505機箱中的3片處理器刀片上自帶的10GbE Fabric1GbE Base接口通道提供了無阻礙的互連交換,並支持全網(Full-Mesh)拓撲結構。因此,每個aTCA-3400交換刀片可以提供至少一個FabricBase接口,用以連接到每個處理器刀片,例如安裝在第5槽的aTCA-6200刀片(被測設備)。

Lxia XM12測試係統,兼容RFC 2544吞吐量基準,通常被用來作為包數據的模擬器,用以發送不同幀大小的IP數據包,並收集最終的統計數據,如每秒幀數和吞吐量。

根據上圖所示的測試環境拓撲結構,aTCA-6200作為處理器刀片,包含了四個千兆以太網口:兩個來自前麵板(Flow 1Flow 2),另外兩個是通過aTCA-3400 Base交換實現的Base接口(Flow 3Flow 4)。除了這41GbE的接口之外,aTCA-6200還有210GbE的接口通過aTCA-3400交換板連至lxia XM12(Flow 5Flow 6)

在這個測試配置中,aTCA-6200作為被測設備(DUT),負責接收來自lxia測試係統的IPv4數據包,並在第三層處理這些數據包(例如數據包解封裝,IPv4報頭校驗和驗證,路由表查找和數據包封裝),然後根據路由表查找結果將數據包返回至lxia XM12。所有的六個流向都是雙向的:例如,lxia XM12通過1/2/3/4/5/6接口發送幀數據給aTCA-6200,並分別通過1/2/3/4/5/6接口接收幀數據

 

 

測試方法

 
 

為了評估Intel® DPDK如何在淩華科技aTCA-6200上實現包轉發服務的提升,在下麵的兩個測試案例中我們使用了基於Intel® DPDKIP包轉發應用:

Native Linux下的性能

在這個測試環境中,aTCA-6200安裝了64Ubuntu Server 11.10。同目前Linux其他版本一樣,IP轉發功能默認是禁用的,需啟用IP轉發功能,同時使用以下命令禁用ufw服務。

# sudo ufw disable
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

同上,將net.ipv4.ip_forward設置為0,當前內核配置下的IP轉發功能將被禁用。但是通過以下命令可以立即啟用:


# sysctl -w net.ipv4.ip_forward = 1
or
# echo 1 > /proc/sys/net/ipv4/ip_forward

如果在/etc/sysctl.conf中將net.ipv4.ip_forward設置為1,並重啟網絡服務,IP轉發功能將默認啟用,如下所示:

#echo "net.ipv4.ip_forward = 1">/etc/sysctl.conf
# /etc/init.d/network restart

 
使用Intel® DPDK後的性能
 
Intel® DPDK可以在不同的模式下運行,如裸機(Bare Metal),帶裸機實時(Bare Metal Run-Time)的LinuxLinux 用戶空間(User Space)。在最初的開發階段,Linux用戶空間(User Space)模式是最容易使用的,請參看Intel Data Plane Development Kit - Getting Started Guide for Linux。中的相關描述。下圖4描述了Intel® DPDKLinux用戶空間(User Space)模式下的詳細功能


4:Intel® DPDK 運行在Linux User Space模式下

如需在aTCA-6200處理器刀片中建立Intel® DPDK,請在該內核中設置如下參數:

  • GLIBC >=2.7

啟用HPETHPET MMAP配置選項

# grep HPET /boot/config-`uname -r`
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
  • HUGETLBFS enabled:
# mkdir /mnt/huge
# mount -t hugetlbfs nodev /mnt/huge
# echo 1024 > /sys/kernel/mm/hugepages/hugepages-\ 2048kB/nr_hugepages
  • 內核驅動程序加載(UIO):
# sudo /sbin/modprobe uio # needed if uio is built as a module
# sudo insmod <$RTE_HOME>/x86_64-default-linuxapp-\ gcc/kmod/igb_uio.ko

在執行Intel® DPDK目標環境後,IP轉發應用就能夠作為Linux用戶空間(User Space)的應用被運行。詳細請參考Intel® Data Plane Development Kit - Getting Started Guide for Linux

 

# ./build/l3fwd -c 0x1 -- -p=0xF --config="(0,0,0)"
Notes:
  • "-c=0x1" means the CPU mask is 0x1, i.e. only the first CPU thread is used for this Layer 3 forwarding application
  • "-p=0xF" means the port mask is 0xF, i.e. only the first four Gigabit ports are initialized and used for this Layer 3 forwarding application
  • --config="(portid, queueid, coreid)"

 

 
結果
 

在原生 Linux(Native Linux)和Intel® DPDK兩種不同的環境下測試了aTCA-6200刀片之後,我們比較了4個1GbE端口(2個來自前麵板,2個來自Base接口)和2個10GbE Fabric端口在這兩種不同配置下的IP轉發性能。除此之外,我們還測試了當同時使用aTCA-6200 6個網絡端口(4個1GbE和2個10GbE)時,aTCA-6200的合並IPv4轉發性能。

使用4個1GbE端口時的性能比較


5: 使用4x 1GbEIP轉發能比較

原生 Linux(Native Linux)啟用IP轉發功能,並在aTCA-6200的4個1GbE接口上運行IPv4轉發, 64字節大小的幀可以以每秒100萬個的速度被轉發。當幀大小增加到1024字節時,原生 Linux(Native Linux)的IP轉發可以達到100%的線率。但是在實際環境中,幀大小通常小於1024字節,因此100%的線率是無法實現的。但是,在同樣的Linux操作係統下使用Intel® DPDK並運行在僅有的兩個CPU線程上,aTCA-6200能夠以100%的線率轉發幀數據,並且無論幀大小如何設置,都沒有任何的丟幀現象發生,如上麵圖5所示。

相比Native Linux的IP轉發性能,使用了Intel® DPDK之後的aTCA-6200可以將轉發性能提升6倍。

使用2個10GbE接口時的性能比較


6:使用2x 10GbEIP轉發能比較

在2個10GbE Fabric接口上進行IP轉發測試時,無論是在原生 Linux(Native Linux)下還是基於Intel® DPDK,IP的轉發性能相比使用4個1GbE接口時都有很大的提升。如上圖6所示,相比原生 Linux(Native Linux)使用所有的CPU線程,采用了Intel® DPDK的aTCA-6200隻需要兩個線程就可以獲得10倍性能的提升。

aTCA-6200全部的IPv4轉發性能


7: 使用2x 10GbE + 4x 1GbEIP轉發能比較

使用aTCA-6200全部的接口(2個10GbE Fabric接口,2個1GbE前置麵板接口和2個1GbE Base接口)測試合並的IP轉發性能時,使用Intel® DPDK後的aTCA-6200每秒可以傳輸2700萬個64字節的數據幀。換言之,理論上24Gbps的數據吞吐量有18Gbps可以被轉發(即75.3%的線率)。此外,當數據幀分別為128字節和256字節時,吞吐量的線率可以提升到92.3%,甚至高達99%。


換言之,理論上24 Gbps的吞吐量高達18 Gbps的可轉發(即線率 75.3%)。此外,即線率的吞吐量提高到92.3%,甚至高達99%,當幀的大小分別設置為128字節,256
字節。

 

分析

 

相比原生 Linux(Native Linux),采用Intel® DPDK技術後能夠大幅提升IP轉性能的主要原因在於Intel® DPDK采用了如下描述的主要特征。

輪詢模式取代中斷
通常當數據包進入的時候,Native Linux會從網絡接口控製器(NIC,Network Interface Controller)接收到中斷,然後調度軟中斷,對所得的中斷進行上下文切換,並喚醒係統調用,如read()和write()。

相比之下,Intel® DPDK采用了優化的輪詢模式驅動(PMD,Poll Mode Driver)代替默認的以太網驅動程序,從而可以不斷地接收數據包,避免軟件中斷,上下文切換和喚醒係統調用,從而大大的節省重要的CPU資源,並且降低了延遲。

HugePage取代傳統頁
相比Native Linux的4kB 頁,采用更大的頁尺寸意味著可以節省頁的查詢時間,並減少轉譯查找緩存(TLB,Translation Lookaside Buffer)丟失的可能。


Intel® DPDK作為用戶空間(User-space)應用運行時,在自己的內存空間中分配HugePage至存儲幀緩衝區,環形和其他相關緩衝區,這些緩衝區是由其他應用程序控製,甚至是Linux內核。本白皮書描述的測試中,總計1024@2MB的HugePage被保留用於運行IP轉發應用。


零拷貝緩衝區
在傳統的數據包處理過程中,原生 Linux(Native Linux)解封包的報頭,然後根據Socket ID將數據複製到用戶空間(User Space)緩衝區。一旦用戶空間(User Space)應用程序完成了數據的處理,一個write()係統調用將被喚醒並把數據送至內核,負責將數據從用戶空間(User Space)拷貝至內核緩衝區,封裝包的報頭,最後借助相關的物理端口將數據發出去。顯然,原生 Linux(Native Linux)在內核緩衝區和用戶空間(User Space)緩衝區之間進行拷貝動作,犧牲了很多的時間和資源。

相比之下,Intel® DPDK在自己保留的內存區域接收數據包,這個區域位於用戶空間(User Space)緩衝區,之後根據配置規則將這些數據包分類到每一個Flow中。在處理完解封包之後,在相同的用戶空間(User Space)緩衝區中使用正確的報頭進行包封裝,最後通過相關的物理端口發送這些數據。


Run-to-Completion(RTC,運行到完成)和Core Affinity
在執行應用之前,Intel® DPDK會進行初始化,分配所有的低級資源,如內存空間,PCI設備,定時器,控製台,這些資源將被保留且僅用於那些基於Intel® DPDK的應用。初始化完成之後,每一個核(或線程,當BIOS設置中啟用了Intel®超線程技術時)將被啟用來負責每一個執行單元,並根據實際應用的需求,運行相同的或不同的工作負載。


此外,Intel® DPDK還提供了一種方法,即可以設置每個執行單元運行在每一個核心上,以維持更多的Core Affinity,從而避免緩存丟失。在此白皮書描述的測試中,aTCA-6200處理器刀片的物理端口根據Affinity被綁定在兩個不同的CPU線程上。


無鎖執行和緩存校準
Intel® DPDK提供的庫和API,被優化成無鎖,以防止多線程應用程序死鎖現象的發生。對於緩衝區、環形和其他數據結構,Intel® DPDK也進行了優化,執行了緩存校準,以達到緩存行(Cache-Line)的效率最大化,同時最大限度減少緩存行(Cache-Line)的衝突。

 

 
結論
 

通過對在淩華科技aTCA-6200的4個1GbE和2個10GbE Fabric端口使用和不使用Intel® DPDK(圖5和圖6)的測試結果進行分析,我們可以得出結論,在相同的硬件平台下,使用Intel® DPDK後的Linux僅用兩個CPU線程進行IP轉發的性能,與原生 Linux(Native Linux)使用全部的CPU線程進行IP轉發的性能相比,前者是後者的10倍。


從圖7中我們可以很容易的了解到,aTCA-6200采用Intel® DPDK技術後的IPv4轉發性能,可以讓用戶在遷移包處理應用時(從基於NPU的硬件遷移到基於Intel® x86的平台上),獲得更好的成本和性能優勢。同時可以采用統一的平台部署不同的服務,如應用處理,控製處理和包處理服務。

但是,值得注意的是,Intel® DPDK是一個數據層的開發工具包,並在用戶空間運行,它不是一個用戶可以直接建立應用程序的完整產品。需要特別指出的是,Intel® DPDK不包含需要與控製層(包括內核和協議堆棧)進行交互的工具。


8:淩華科技開發工具包與控製層和數據層協同工作的原理圖

如圖8所示,淩華科技已經開發出基於Intel® DPDK的de開kai發fa工gong具ju包bao,用yong以yi管guan理li控kong製zhi層ceng和he數shu據ju層ceng,如ru同tong控kong製zhi層ceng的de克ke隆long虛xu擬ni網wang卡ka一yi樣yang執zhi行xing任ren務wu,可ke以yi在zai數shu據ju層ceng同tong步bu物wu理li端duan口kou。使shi用yong該gai開kai發fa工gong具ju包bao,用yong戶hu可ke以yi輕qing鬆song地di開kai發fa基ji於yuIntel® DPDK的應用,並與控製層和數據層進行交互,不僅可以有效提升包處理性能,還能讓開發更簡單,縮短產品上市時間。


 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 淩華科技(中國)有限公司
聯 係 人: 張福強
電  話: 010-58858666轉8830
傳  真:
地  址: 北京海澱區上地東路1號盈創動力大廈E座八層西
郵  編: 100085
主  頁:
 
該廠商相關技術文摘:
基於淩華科技PCI-9846 的航空導航VOR信號綜測儀設計
通過電源管理和工作負載整合,大幅提升電信業務處理性能
IEEE 1394b標準及應用簡介
更多文摘...
立即發送詢問信息在線聯係該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯係方式,以方便我們及時與您聯絡

關於我們 | 聯係我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved