電信運營商在網(wǎng)絡重構中引入NFV,通過使用虛擬化軟件技術,實現(xiàn)傳統(tǒng)網(wǎng)元的軟硬件解耦,以達到不同廠家的軟件運行在統(tǒng)一的虛擬化基礎設施上,實現(xiàn)硬件資源的共享和系統(tǒng)隨業(yè)務大小的自動伸縮功能。
NFV由VNF(虛擬化網(wǎng)絡功能,如vIMS)、NFVI(網(wǎng)絡功能虛擬化基礎設施)、MANO(管理與編排)三大組件組成。核心網(wǎng)絡IMS虛擬化后,傳統(tǒng)網(wǎng)絡功能封裝為網(wǎng)絡功能應用軟件,直接承載在網(wǎng)絡功能虛擬化基礎設施上,同時引入MANO實現(xiàn)資源管理、業(yè)務編排等。
本文主要根據(jù)三層解耦模式下,通過對vIMS虛擬化網(wǎng)元I-CSCF、S-CSCF、MMTel AS、ENUM/DNS、CCF進行包圍性VOLTE業(yè)務端到端性能測試,基于相同的VoLTE話務模型、相同服務器硬件資源以及CPU指定最大占用率的情況下,獲取不同設備廠家vIMS VNF的最大容量、硬件資源(CPU、內存、硬盤)占用、接通率、時延等性能指標,通過在測試中是否應用相關虛擬化技術及性能情況對影響進行評估,并對IMS分層解耦部署提出建議。
CPU個數(shù)即CPU芯片個數(shù);CPU的核心數(shù)是指物理即硬件上存在著幾個核心。線程數(shù)是一種邏輯概念,簡單地說,就是模擬出的CPU核心數(shù)。由于線程數(shù)等同于在某個瞬間CPU能同時并行處理的任務數(shù),因此,CPU線程數(shù)越多,越有利于同時運行多個程序。
CPU綁定指的是進程需要在指定的CPU上盡量長時間地運行而不被遷移到其他處理器,通過處理器關聯(lián)可以將虛擬處理器映射到一個或多個物理處理器上 ,也就是說把一個程序綁定到一個物理CPU上。虛擬機的vCPU可以綁定到主機的物理CPU上(pCPU)。
在多核運行的服務器上,每個CPU有緩存,緩存著進程使用的信息。由于進程可能會被OS調度到其他CPU上,當綁定CPU后,程序會一直在指定的CPU上運行,不會由操作系統(tǒng)調度到其他CPU上,減少了CPU的緩存,也減少了進程或者線程的上下文切換,從而提高性能和效率。
另外,為將重要的業(yè)務進程隔離開,對部分實時進程調度優(yōu)先級高的,可以將其綁定到一個指定核上,既可以保證實時進程的調度,也可以避免其他CPU上的進程被該實時進程干擾。
DPDK即Intel Data Plane Development Kit,專注于網(wǎng)絡應用中數(shù)據(jù)包的高性能處理,將控制面線程以及各個數(shù)據(jù)面線程綁定到不同的CPU,線程間互不干擾,避免來回反復調度的性能消耗,提供高性能處理報文的能力。
在虛擬內存管理中,內核需要維護將虛擬內存地址映射到物理地址的表,對于每個頁面操作,內核都需要加載相關的映射表。內存頁越小需要加載的頁就越多,內核需加載的映射表頁越多,性能也就越低。Linux系統(tǒng)標準的頁面大小為4 KB,如果使用內存巨頁,采用2 MB作為分頁的基本單位,所需要的頁和由內核加載的映射表就會減少,性能也就會相應提升。
線程技術把多線程處理器內部的兩個邏輯內核模擬成兩個物理芯片,讓單個處理器就能使用線程級的并行計算,進而兼容多線程操作系統(tǒng)和軟件。超線程技術充分利用空閑CPU資源,在相同時間內完成更多工作。[1]
NUMA(Non Uniform Memory Access Architecture)技術是一種用于多處理器的設計,可以使眾多服務器像單一系統(tǒng)那樣運轉。在NUMA下,處理器訪問本地存儲器的速度比非本地存儲器快一些。
親和性可以實現(xiàn)就近部署,增強網(wǎng)絡能力實現(xiàn)通信上的就近路由,減少網(wǎng)絡的損耗。對于vIMS來說,將不同網(wǎng)元放在同一個虛機,例如S-CSCF與I-CSCF放一個虛機,加快接續(xù)時間。
反親和性主要是出于高可靠性考慮,盡量分散實例,減少因為某個節(jié)點故障對應用的影響。
本次測試環(huán)境基于三層解耦情況下展開,硬件服務器、Hypervisor、vIMS等采用不同廠家設備進行組合測試的方式,其網(wǎng)絡結構示意圖如圖1所示。
圖1 三層解耦示例
測試環(huán)境的搭建,基于服務器虛擬化軟件測試模型,測試環(huán)境如圖2所示。
圖2 vIMS分層解耦測試環(huán)境示例
本文主要研究親和性/反親和性、NUMA綁定、內存巨頁、DPDK等技術對VoLTE IMS性能的影響情況,因此,測試床采用相同的硬件、VIM和NFVO,對圖1中不同的vIMS廠家A及Hypervisor廠家C進行組合分組對比測試。不同組合情況說明如表1所示。
表1 vIMS分層解耦測試廠家組合
測試基于以下話務模型要求進行,如表2所示。
表2 測試話務模型
測試時,需注意以下事項。
(1)基本配置要求:在vIMS網(wǎng)元上,支持/開啟DPDK、內存巨頁、超線程、NUMA親和性、反親和性功能;
(2)虛機統(tǒng)計結果是vIMS廠家在自己的EMS上所查詢的各虛機統(tǒng)計結果,物理機統(tǒng)計結果一般是各虛機統(tǒng)計結果的平均值,兩者差異可能很大。因此,CPU、內存等的統(tǒng)計,以虛機的統(tǒng)計結果為準。
(3)性能指標根據(jù)測試組合不同,驗證的是測試組合的整體性能指標,其指標需達到以下標準。
① 指定話務量(100萬)、最大話務量(大于100萬)
② CPU占用率:小于80%
③ 呼叫接續(xù)成功率:大于99.999%
④ 穩(wěn)定性:呼叫時長大于24小時
在不同的vIMS業(yè)務測試組合中,分別開啟和關閉DPDK,對比測試結果如下。
① 組合1關閉DPDK后,話務有呼損;
② 組合2無明顯變化;
③ 組合3關閉DPDK后測試指定話務量,與開啟DPDK相比,CPU負荷無明顯增大,但是時延平均增加150 ms;
從上述結果可以看到,虛擬化層在沒有開啟DPDK優(yōu)化設置情況下,IMS系統(tǒng)性能受到影響,不同廠家vIMS系統(tǒng)受影響的程度不同,啟用DPDK等優(yōu)化設置后,IMS系統(tǒng)性能得到優(yōu)化,在相同資源的情況下,承載話務大幅上升。
在不同的測試組合中,NUMA親和性對比測試結果如下。
① 組合1取消NUMA親和性后進行測試,話務起來27分鐘后即產(chǎn)生呼損,7個小時后呼損達千分之3.1;② 組合2無明顯變化;③組合3取消NUMA親和性后測試指定話務量,CPU負荷無明顯增大,時延平均增加3.5 ms;
從上述結果可以看到,虛擬化層在沒有NUMA親和性的情況下,IMS的處理能力和時延受到一定影響,不同廠家vIMS系統(tǒng)受影響的程度不同,啟用NUMA親和性等優(yōu)化設置后,vIMS系統(tǒng)性能得到優(yōu)化。
在不同的測試組合中,分別開啟和關閉內存巨頁,對比測試結果如下。
① 組合1開啟DPDK,64字節(jié)提升16.1%,1 518字節(jié)提升44.6%,平均提升幅度25.3%;
② 組合2開啟DPDK,64字節(jié)提升46.5%,1 518字節(jié)提升39.9%,平均提升幅度39.2%;
③ 組合1未開啟DPDK,vSwitch性能受服務器資源負載、CPU調度機制影響較大,有一定波動,單獨使用進行內存巨頁性能提升不明顯;
④ 組合2未開啟DPDK,vSwitch性能瓶頸在于系統(tǒng)調度開銷,不在內存訪問,受系統(tǒng)調度影響比較明顯,單獨開啟內存巨頁后對性能影響較小。
從上述結果可以看到,內存巨頁配合DPDK可有效提升網(wǎng)絡轉發(fā)性能,在未開啟DPDK的情況下,轉發(fā)性能無明顯影響。
通過對三層解耦情況下的vIMS系統(tǒng)性能對比測試及虛擬化技術對IMS系統(tǒng)性能的影響分析,建議如下。
(1)DPDK:明顯提升IMS系統(tǒng)性能,建議在IMS網(wǎng)元分層解耦進行應用,并建議與內存巨頁和CPU綁定配合使用,以更好地提升性能;
(2)CPU綁定:獨占硬件資源,降低資源搶占風險,提升CPU處理速度,但降低整體資源利用率,影響遷移功能,建議在IMS網(wǎng)元的重要模塊中應用。
(3)內存巨頁:在應用支持的情況下建議開啟,建議要求vIMS支持,在vIMS分層解耦中和DPDK同時應用;
(4)NUMA親和性:VM的虛擬NUMA節(jié)點映射到物理主機的同一NUMA節(jié)點,可以提升vIMS系統(tǒng)性能,建議在vIMS網(wǎng)元分層解耦進行應用。
(5)內存巨頁:建議與DPDK配合適應以提升vIMS系統(tǒng)性能。
(6)反親和性:分散策略部署VNF,防止主備VNF在同一主機節(jié)點,避免單節(jié)點故障阻塞業(yè)務,提升vIMS網(wǎng)元的可靠性。
綜上所述,通過三層解耦情況下對vIMS系統(tǒng)的性能測試結果分析,在今后現(xiàn)網(wǎng)的部署工作中,可以充分利用DPDK、NUMA親和性、CPU綁定、內存巨頁等虛擬化技術,進一步提高虛擬化IMS系統(tǒng)性能。