一种在多核服务器上优化NFV转发服务链性能的方法与流程

文档序号:16811175发布日期:2019-02-10 13:40阅读:349来源:国知局
一种在多核服务器上优化NFV转发服务链性能的方法与流程

本发明属于网络通信领域,具体地说是提出一种在多核服务器上优化网络功能虚拟化(networkfunctionsvirtualization,nfv)网络中服务链性能的方法。



背景技术:

随着网络应用日益丰富,网络功能日趋复杂,计算机服务器性越来越强大,nfv应运而生。利用虚拟化技术在商用计算机服务器上实现各种网络功能,能够迅速地生成、去除或迁移网络功能。当一种网络服务能够分解成虚拟网络功能(vnf)集合,而这些vnf能够用软件实现并运行在一个虚拟机上就成为具有与某种网络设备等价的网络中间盒软件。该网络中间盒软件成为某种虚拟网络设备。这样,许多类型的虚拟网络设备能够集成运行在高性能的服务器上,成为一个与某个特定网络功能和性能(在服务器性能容许的前提下)完全等价的nfv网络。当网络业务需求变化时,可以在不同的位置重新定位和实例化vnf而形成新的网络,而无需购买、安装和配置新的网络硬件设备。

ip网络中的核心设备是路由器,网络最基本的功能是分组转发。在nfv网络中,任何规模的网络都是由虚拟路由器串联、并联而成的,或者在此基础上增加了一些其他网络中间盒。具有路由转发功能的多个vnf串联起来就够构成一个转发服务链,传输大流量的转发服务链对于nfv网络的性能及其功能影响很大。然而,目前关注较多的网络中间盒主要包括防火墙、入侵检测系统、深度报文检测和负载均衡等,缺乏对转发服务链的研究。因此,本专利的意义包括两方面:首先,尽管转发服务链是nfv网络中最为基础、使用最多的服务,但目前缺乏有关转发服务链的研究和优化方法的研究,本专利方法弥补了这方面不足。其次,目前有关nfv网络性能优化工作都是针对linux操作系统的不同层次进行的,缺乏在nfv网络应用层次进行优化的技术,本专利方法弥补了在nfv应用层优化的不足。



技术实现要素:

本发明针对在采用多核cpu技术的服务器或主机上运行nfv应用,提出了一种通过在nfv应用中部署转发服务链的优化方法,该方法能够充分利用底层多核cpu的能力,从而提升nfv系统的性能。

本发明的技术方案是:

本发明提供一种在多核服务器上优化nfv转发服务链性能的方法,该方法包括以下步骤:

s1、系统初始化,在多核服务器上,将具有路由转发功能的若干个虚拟网络设备vnf串行连接,组成转发服务链sc,一个sc可以运行的一个核或多个核上,其中运行第k条转发服务链sck中第i个虚拟网络设备vnfki需要耗费的核cpu资源为e(vnfki),一个核cpuj能够提供的资源为e(cpuj)(j=0,1,…,m),j为多核服务器核cpu的编号;m表示多核服务器核cpu的总数;每个核cpuj的初始载荷wj为0;

s2、从sc1开始,依次遍历链sck中的每个vnf,若将vnfki分配至核cpuj上的总载荷小于核cpuj提供资源的α倍,即满足下述公式:

e(vnfki)+wj<α×e(cpuj)

则将该vnf加入该核对应的向量集合并且更新核cpuj的载荷wj的值;若不满足,则分配至另一个空闲的核上,即将vnfki加入到核cpuj+1对应的向量集合中;

s3、当所有vnf均被分配至合适的向量集合中后,对集合中的每个vnfki分别绑定至对应的核cpuj上,完成优化。

进一步地,该方法还包括:s4、对转发服务链以外的其他线程,按照linux默认调度机制进行分配。

进一步地,步骤s3中,采用linux的taskset命令分别绑定vnfki至对应的核cpuj上。

进一步地,所述的0<α≤0.7。

进一步地,计算机服务器具有能够支持linux操作系统、虚拟化软件和各种网络协议运行的多核cpu硬件条件。

进一步地,发送虚拟网络设备vnf包括lxc的虚拟主机以及流量发生器发送程序,该流量发生器能够发送多种强度的tcp、udp和多种应用的流量。

进一步地,接收虚拟网络设备vnf包括lxc的虚拟主机以及流量发生器接收程序,该流量发生器能够接收多种强度的tcp、udp和多种应用的流量。

本发明的有益效果:

本发明在nfv网络中,转发服务链能够对nfv网络性能产生具有重要影响,在多核服务器上应用本优化nfv转发服务链性能的方法,能够显著提升nfv系统的性能。此外,对于nfv网络中的其他服务链也能应用类似于本发明的思想来优化系统性能。

本发明的其它特征和优点将在随后具体实施方式部分予以详细说明。

附图说明

通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。

图1是转发服务链的结构示意图。

图2是实施例的具体部署示意图。

图3是分别采用scbc算法与linux默认算法时,系统cpu资源利用率随着发送速率变化的曲线对比图。

图4是分别采用scbc算法与linux默认算法时,系统丢包率随着发送速率变化的曲线对比图。

具体实施方式

下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。

本发明提供一种在多核服务器上优化nfv转发服务链性能的方法,该方法包括以下步骤:

s1、系统初始化,在多核服务器上,将具有路由转发功能的若干个虚拟网络设备vnf串行连接,组成转发服务链sc,一个sc可以运行的一个核或多个核上,其中运行第k条转发服务链sck中第i个虚拟网络设备vnfki需要耗费的核cpu资源为e(vnfki),一个核cpuj能够提供的资源为e(cpuj)(j=0,1,…,m),j为多核服务器核cpu的编号;m表示多核服务器核cpu的总数;每个核cpuj的初始载荷wj为0;

s2、从sc1开始,依次遍历链sck中的每个vnf,若将vnfki分配至核cpuj上的总载荷小于核cpuj提供资源的α倍,即满足下述公式:

e(vnfki)+wj<α×e(cpuj)

则将该vnf加入该核对应的向量集合并且更新核cpuj的载荷wj的值;若不满足,则分配至另一个空闲的核上,即将vnfki加入到核cpuj+1对应的向量集合中;

s3、当所有vnf均被分配至合适的向量集合中后,对集合中的每个vnfki分别绑定至对应的核cpuj上,完成优化;

s4、对转发服务链以外的其他线程,按照linux默认调度机制进行分配。

本发明中,承载nfv网络以及nfv转发服务链的是一台多核计算机服务器,该服务器运行linux操作系统和一种轻量级的虚拟化软件lxc。在lxc上运行特定的虚拟网络功能vnf就能成为具有特定网络功能的网络中间盒。通过zebra程序使lxc进入路由器配置模式,再通过quagga将lxc配置成为虚拟路由器,多个网络中间盒可以形成一条转发服务链。

nfv网络是采用虚拟化技术构建的ip网络,它能够以较低成本迅速构建一个较大规模的真实可信的网络试验平台。该平台可以为研究深空网络、空天地一体网络的提供试验环境或者用于研究网络安全技术提供网络靶场等。当构建一个包含多条转发服务链的大规模nfv网络时,在一台多核服务器上采用本专利提出的scbc算法优化方法来部署转发服务链时,就能使得该nfv网络具有更好的性能,因此scbc算法是一种重要的优化手段。无需在服务器硬件、linux操作系统等进行任何优化的前提下,scbc算法能够在nfv网络应用层面来提升nfv网络性能。

实施例

本实施例在一台计算机主机上搭建了nfv网络,所用主机型号为联想t460p,运行ubuntu16.04操作系统(linux4.8.0内核),8核cpu(型号为intel(r)core(tm)i7-6700hqcpu@2.60ghz),内存为16gb。

本实施例对运行在计算机服务器上的8条并行转发服务链l1、l2、…、l8进行了性能测试,每条转发服务链在发送端运行iperf服务器端程序,接收端运行iperf客户端程序,并从发送端向接收端发送流量。

为了测试scbc算法的性能,要进行如下工作:1)从每条转发服务链的发送端向接收端发送100~600mbps的流量,其中发送vnf为发送端,接收vnf为接收端;2)将整个拓扑按照scbc算法进行部署,使用pstree命令查看所有容器进程的进程号,将每条转发服务链中的所有vnf的进程使用linux的”taskset”命令绑定到某指定核上,如将转发服务链l1绑定至核cpu0上,l2绑定至核cpu1上,等等;3)在服务器上的命令行终端使用top命令,查看资源使用情况,记录占用的cpu资源。图3为cpu资源占用量随发送速率大小变化的曲线,其中一条l-core是采用scbc算法优化的曲线,另一条default是只采用linux默认方法的曲线,显然在发送流量较大时的相同情况下,scbc算法使系统的性能更好。图4为在两种情况下,发送流量丢包率随发送速率大小变化的曲线,显然采用scbc算法优化时的丢包率几乎为0,而只采用linux默认方法的丢包率能够高达12%以上。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1