虚拟化技术对分层解耦的IMS系统性能影响探讨
2020-06-30
1 引言
电信运营商在网络重构中引入NFV,通过使用虚拟化软件技术,实现传统网元的软硬件解耦,以达到不同厂家的软件运行在统一的虚拟化基础设施上,实现硬件资源的共享和系统随业务大小的自动伸缩功能。
NFV由VNF(虚拟化网络功能,如vIMS)、NFVI(网络功能虚拟化基础设施)、MANO(管理与编排)三大组件组成。核心网络IMS虚拟化后,传统网络功能封装为网络功能应用软件,直接承载在网络功能虚拟化基础设施上,同时引入MANO实现资源管理、业务编排等。
本文主要根据三层解耦模式下,通过对vIMS虚拟化网元I-CSCF、S-CSCF、MMTel AS、ENUM/DNS、CCF进行包围性VOLTE业务端到端性能测试,基于相同的VoLTE话务模型、相同服务器硬件资源以及CPU指定最大占用率的情况下,获取不同设备厂家vIMS VNF的最大容量、硬件资源(CPU、内存、硬盘)占用、接通率、时延等性能指标,通过在测试中是否应用相关虚拟化技术及性能情况对影响进行评估,并对IMS分层解耦部署提出建议。
2 影响性能的虚拟化技术
2.1 CPU核数及线程
CPU个数即CPU芯片个数;CPU的核心数是指物理即硬件上存在着几个核心。线程数是一种逻辑概念,简单地说,就是模拟出的CPU核心数。由于线程数等同于在某个瞬间CPU能同时并行处理的任务数,因此,CPU线程数越多,越有利于同时运行多个程序。
2.2 CPU绑定
CPU绑定指的是进程需要在指定的CPU上尽量长时间地运行而不被迁移到其他处理器,通过处理器关联可以将虚拟处理器映射到一个或多个物理处理器上 ,也就是说把一个程序绑定到一个物理CPU上。虚拟机的vCPU可以绑定到主机的物理CPU上(pCPU)。
在多核运行的服务器上,每个CPU有缓存,缓存着进程使用的信息。由于进程可能会被OS调度到其他CPU上,当绑定CPU后,程序会一直在指定的CPU上运行,不会由操作系统调度到其他CPU上,减少了CPU的缓存,也减少了进程或者线程的上下文切换,从而提高性能和效率。
另外,为将重要的业务进程隔离开,对部分实时进程调度优先级高的,可以将其绑定到一个指定核上,既可以保证实时进程的调度,也可以避免其他CPU上的进程被该实时进程干扰。
2.3 DPDK
DPDK即Intel Data Plane Development Kit,专注于网络应用中数据包的高性能处理,将控制面线程以及各个数据面线程绑定到不同的CPU,线程间互不干扰,避免来回反复调度的性能消耗,提供高性能处理报文的能力。
2.4 内存巨页
在虚拟内存管理中,内核需要维护将虚拟内存地址映射到物理地址的表,对于每个页面操作,内核都需要加载相关的映射表。内存页越小需要加载的页就越多,内核需加载的映射表页越多,性能也就越低。Linux系统标准的页面大小为4 KB,如果使用内存巨页,采用2 MB作为分页的基本单位,所需要的页和由内核加载的映射表就会减少,性能也就会相应提升。
2.5 超线程
线程技术把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,让单个处理器就能使用线程级的并行计算,进而兼容多线程操作系统和软件。超线程技术充分利用空闲CPU资源,在相同时间内完成更多工作。[1]
2.6 NUMA亲和性
NUMA(Non Uniform Memory Access Architecture)技术是一种用于多处理器的设计,可以使众多服务器像单一系统那样运转。在NUMA下,处理器访问本地存储器的速度比非本地存储器快一些。
2.7 亲和性和反亲和性
亲和性可以实现就近部署,增强网络能力实现通信上的就近路由,减少网络的损耗。对于vIMS来说,将不同网元放在同一个虚机,例如S-CSCF与I-CSCF放一个虚机,加快接续时间。
反亲和性主要是出于高可靠性考虑,尽量分散实例,减少因为某个节点故障对应用的影响。
3 IMS系统性能测试要求
3.1 测试环境介绍
本次测试环境基于三层解耦情况下展开,硬件服务器、Hypervisor、vIMS等采用不同厂家设备进行组合测试的方式,其网络结构示意图如图1所示。
图1 三层解耦示例
测试环境的搭建,基于服务器虚拟化软件测试模型,测试环境如图2所示。
图2 vIMS分层解耦测试环境示例
本文主要研究亲和性/反亲和性、NUMA绑定、内存巨页、DPDK等技术对VoLTE IMS性能的影响情况,因此,测试床采用相同的硬件、VIM和NFVO,对图1中不同的vIMS厂家A及Hypervisor厂家C进行组合分组对比测试。不同组合情况说明如表1所示。
表1 vIMS分层解耦测试厂家组合
3.2 话务模型要求
测试基于以下话务模型要求进行,如表2所示。
表2 测试话务模型
3.3 测试要求
测试时,需注意以下事项。
(1)基本配置要求:在vIMS网元上,支持/开启DPDK、内存巨页、超线程、NUMA亲和性、反亲和性功能;
(2)虚机统计结果是vIMS厂家在自己的EMS上所查询的各虚机统计结果,物理机统计结果一般是各虚机统计结果的平均值,两者差异可能很大。因此,CPU、内存等的统计,以虚机的统计结果为准。
(3)性能指标根据测试组合不同,验证的是测试组合的整体性能指标,其指标需达到以下标准。
① 指定话务量(100万)、最大话务量(大于100万)
② CPU占用率:小于80%
③ 呼叫接续成功率:大于99.999%
④ 稳定性:呼叫时长大于24小时
4 虚拟化技术对性能的影响分析
4.1 DPDK影响分析
在不同的vIMS业务测试组合中,分别开启和关闭DPDK,对比测试结果如下。
① 组合1关闭DPDK后,话务有呼损;
② 组合2无明显变化;
③ 组合3关闭DPDK后测试指定话务量,与开启DPDK相比,CPU负荷无明显增大,但是时延平均增加150 ms;
从上述结果可以看到,虚拟化层在没有开启DPDK优化设置情况下,IMS系统性能受到影响,不同厂家vIMS系统受影响的程度不同,启用DPDK等优化设置后,IMS系统性能得到优化,在相同资源的情况下,承载话务大幅上升。
4.2 NUMA亲和性影响分析
在不同的测试组合中,NUMA亲和性对比测试结果如下。
① 组合1取消NUMA亲和性后进行测试,话务起来27分钟后即产生呼损,7个小时后呼损达千分之3.1;② 组合2无明显变化;③组合3取消NUMA亲和性后测试指定话务量,CPU负荷无明显增大,时延平均增加3.5 ms;
从上述结果可以看到,虚拟化层在没有NUMA亲和性的情况下,IMS的处理能力和时延受到一定影响,不同厂家vIMS系统受影响的程度不同,启用NUMA亲和性等优化设置后,vIMS系统性能得到优化。
4.3 内存巨页影响分析
在不同的测试组合中,分别开启和关闭内存巨页,对比测试结果如下。
① 组合1开启DPDK,64字节提升16.1%,1 518字节提升44.6%,平均提升幅度25.3%;
② 组合2开启DPDK,64字节提升46.5%,1 518字节提升39.9%,平均提升幅度39.2%;
③ 组合1未开启DPDK,vSwitch性能受服务器资源负载、CPU调度机制影响较大,有一定波动,单独使用进行内存巨页性能提升不明显;
④ 组合2未开启DPDK,vSwitch性能瓶颈在于系统调度开销,不在内存访问,受系统调度影响比较明显,单独开启内存巨页后对性能影响较小。
从上述结果可以看到,内存巨页配合DPDK可有效提升网络转发性能,在未开启DPDK的情况下,转发性能无明显影响。
5 应用建议
通过对三层解耦情况下的vIMS系统性能对比测试及虚拟化技术对IMS系统性能的影响分析,建议如下。
(1)DPDK:明显提升IMS系统性能,建议在IMS网元分层解耦进行应用,并建议与内存巨页和CPU绑定配合使用,以更好地提升性能;
(2)CPU绑定:独占硬件资源,降低资源抢占风险,提升CPU处理速度,但降低整体资源利用率,影响迁移功能,建议在IMS网元的重要模块中应用。
(3)内存巨页:在应用支持的情况下建议开启,建议要求vIMS支持,在vIMS分层解耦中和DPDK同时应用;
(4)NUMA亲和性:VM的虚拟NUMA节点映射到物理主机的同一NUMA节点,可以提升vIMS系统性能,建议在vIMS网元分层解耦进行应用。
(5)内存巨页:建议与DPDK配合适应以提升vIMS系统性能。
(6)反亲和性:分散策略部署VNF,防止主备VNF在同一主机节点,避免单节点故障阻塞业务,提升vIMS网元的可靠性。
6 结束语
综上所述,通过三层解耦情况下对vIMS系统的性能测试结果分析,在今后现网的部署工作中,可以充分利用DPDK、NUMA亲和性、CPU绑定、内存巨页等虚拟化技术,进一步提高虚拟化IMS系统性能。