CN108062269B - 一种基于dpdk的计算资源弹性伸缩方法及系统 - Google Patents

一种基于dpdk的计算资源弹性伸缩方法及系统 Download PDF

Info

Publication number
CN108062269B
CN108062269B CN201711268479.7A CN201711268479A CN108062269B CN 108062269 B CN108062269 B CN 108062269B CN 201711268479 A CN201711268479 A CN 201711268479A CN 108062269 B CN108062269 B CN 108062269B
Authority
CN
China
Prior art keywords
dpdk
network card
thread
expansion
computing resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711268479.7A
Other languages
English (en)
Other versions
CN108062269A (zh
Inventor
李健
申震
管海兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201711268479.7A priority Critical patent/CN108062269B/zh
Publication of CN108062269A publication Critical patent/CN108062269A/zh
Application granted granted Critical
Publication of CN108062269B publication Critical patent/CN108062269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于DPDK的计算资源弹性伸缩方法及系统,包括以下步骤:步骤1:增设DPDK弹性伸缩模式,通过命令行参数传递来指定工作网卡端口和申请启用弹性伸缩模式,成功启用弹性伸缩模式后,自动匹配资源配置并执行后述步骤;步骤2:根据资源配置分配系统资源并初始化DPDK环境抽象层,注册DPDK工作线程,增设并部署DPDK监控线程对应用程序状态进行实时监控、计算和存储;步骤3:由DPDK监控线程对应用程序状态的历史数据进行分析,构建计算资源弹性伸缩模型,通过模型简化和启发式算法决定伸缩策略并发送请求;步骤4:针对相应的扩展、收缩请求,对分配的DPDK计算资源进行适应性调整,以最佳适配应用程序的当前需要。

Description

一种基于DPDK的计算资源弹性伸缩方法及系统
技术领域
本发明涉及计算机领域,尤其涉及一种基于DPDK的计算资源弹性伸缩系统及方法。
背景技术
随着网络通信技术的不断发展,云计算技术广泛应用,网卡速率迅速提升,25Gbit、40Gbit网卡逐渐普及,100Gbit网卡也在电信运营商网络中快速应用。目前摩尔定律在CPU上已逐渐失效,加之网络I/O带宽不断提升,单个CPU核心的性能已经远远不能满足高速网卡的性能需求。因而,利用数据面加速技术提升单核网络包处理性能,并充分利用多核资源满足高速网卡的性能需求已是业内普遍做法。
DPDK(Date Plane Development Kit,数据面开发套件)是Intel联合第三方软件开发公司推出的一种高速网络数据包的软件开发套件,以英特尔平台为核心,支持多种处理器体系架构,现已开源并加入Linux基金会项目。DPDK采用用户态、轮询模式网卡驱动(PMD)实现数据包处理过程,无中断,零拷贝,节省了上下文切换和内存拷贝时间,大大提升了处理器的数据包处理性能;同时,结合多队列网卡技术,通过硬件RSS将不同数据流转发到多个硬件队列上,再将各个队列绑定到不同的物理核上,使得多核处理单个网卡需求成为可能。综合以上技术,DPDK大大提高了通用服务器处理网络负载的能力,助推了网络功能虚拟化(NFV)的发展,满足了高速网卡的性能需求。
然而,当涉及复杂的业务逻辑时,由于大规模高并发访问场景突发,网络负载峰值达、变化频繁且有很强的时效性,长时间为适配网络负载峰值来分配足量的计算资源,造成了大量浪费。因而采取弹性伸缩策略来动态的分配资源,根据实时业务需求和策略,自动调整计算资源以适配网络负载需求,无论对用户还是电信服务供应商都至关重要。
传统的弹性伸缩技术,通过监控CPU利用率来测定计算资源的使用量和确定伸缩的时机,通过负载均衡器等技术增减分配的计算资源。然而,基于DPDK的网络数据包处理应用,为了提升性能,采取了CPU绑定、轮询替代中断等技术,使得CPU利用率始终为100%,因而不能反映网络负载的变化并以此为依据进行决策。同时,由于网卡硬件多队列的特性,一经初始化便不能在网卡工作过程中对其队列数量进行调整,也就难以对网卡绑定的计算资源(物理核)进行热插拔。综上,传统策略既无法正确测定应用程序的负载变化及伸缩阈值,也无法通过简单的热插拔来增减网卡绑定的计算资源,因而无法满足基于DPDK的网络数据包处理应用的弹性伸缩需求,
DPDK一定程度上降低了应用程序的灵活性,没有提供计算资源热插拔的机制,资源一旦绑定便无法释放,造成了浪费;加之网卡多队列数量一经初始化便无法调整,使得DPDK应用程序在运行过程中,难以实现实时的弹性伸缩。目前DPDK主要利用能源管理模块,根据收包队列的利用率和启发式算法,通过动态调整CPU的频率或进入不同的CPU状态来实现计算资源的增减。然而仅通过收发队列有无数据包的启发式算法来判断弹性伸缩时机,粒度较粗且信息不全,无法及时、准确反馈网络包速率和应用程序密集度的变化。而且,调整CPU的频率和状态后,其依旧为应用程序所独占,并不能真正增加或减少可利用的计算资源,也不能充分增减网卡所绑定的计算资源以适配应用程序的需求,而仅仅是从能耗角度进行了调整,不是真正的“伸、缩”。
所以现有的计算资源弹性伸缩机制和策略,不适用于基于DPDK的网络数据包处理应用程序,不能正确反映弹性伸缩时机,也不能真正实现计算资源的增减。
因此,本领域的技术人员致力于开发一种基于DPDK的计算资源弹性伸缩系统及方法,通过监控获取充分的应用程序运行信息,并通过完整的建模和算法实时适配网卡负载和应用程序所需计算资源的变化,对网卡绑定的计算资源进行热插拔操作,避免了对物理核不必要的占用,真正提高了资源利用效率,在保证性能的基础上,最小化了投入的资源成本。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是现有的计算资源弹性伸缩机制和策略,不适用于基于DPDK的网络数据包处理应用程序,不能正确反映弹性伸缩时机,也不能真正实现计算资源的增减。
为实现上述目的,本发明提供了一种基于DPDK的计算资源弹性伸缩方法,包括以下步骤:
步骤1:增设DPDK弹性伸缩模式,通过命令行参数传递来指定工作网卡端口和申请启用弹性伸缩模式,成功启用弹性伸缩模式后,自动匹配资源配置并执行后述步骤;
步骤2:根据资源配置分配系统资源并初始化DPDK环境抽象层,注册DPDK工作线程,增设并部署DPDK监控线程对应用程序状态进行实时监控、计算和存储;
步骤3:由DPDK监控线程对应用程序状态的历史数据进行分析,构建计算资源弹性伸缩模型,通过模型简化和启发式算法决定伸缩策略并发送请求;
步骤4:针对相应的扩展、收缩请求,对分配的DPDK计算资源进行适应性调整,以最佳适配应用程序的当前需要。
进一步地,步骤1通过命令行参数传递来指定需要处理的网卡端口并指定其他DPDK环境抽象层(EAL)参数。
进一步地,步骤1中,在DPDK环境抽象层中增加弹性伸缩模式的标记参数,由环境变量预设(export)或参数传递(即通过argc,argv传入)传入,以申请开启弹性伸缩模式。
进一步地,步骤2包括:
首先,根据基于NUMA节点、网卡速率等自动匹配的资源配置,初始化相应量的CPU、内存资源;初始化过量的网卡收包队列,通过修改网卡重定向表来指定活跃网卡队列并与CPU物理核绑定;注册DPDK工作线程,增设全局配置表并记录工作线程与CPU和网卡队列的绑定策略;
然后,部署DPDK监控线程,周期性运行;与DPDK工作线程解耦,不影响其开发和运作;通过读取网卡寄存器和共享内存获取统计数据,并计算和存储实时网络负载及应用程序的计算密集度等。
进一步地,步骤3包括模型简化和求解算法,具体为:
假设最近过去时间的伸缩策略最优解,可以反映当前时间的全局最优解,求伸缩策略解集,使得最近监控的时间范围内实际分配的计算资源与系统预测所需计算资源的差别最小。
进一步地,求解算法利用系统预测所需计算资源超过或少于已分配计算资源的数量和持续时间计算趋势值Trend,并根据阈值作出决策,核心公式如下:
Figure GDA0002633011550000031
flag=sgn(Trend)*(abs(Trend)≥Th?1:0)
N=[flag*Trend]+{flag*Trend}≥Th?1:0
伸缩策略解集X={flag,N},flag表示当前是否实施伸缩,N表示需要伸缩的计算资源量,R(i)表示最近第i次监控时预测应用程序应分配的计算资源量,s为当前已分配的计算资源量,m为记录的监控历史记录次数,Th为阈值。
进一步地,步骤4包括计算资源伸缩方法,具体为:
增设DPDK计算资源热插拔功能,利用pthread库和信号机制,通过重设全局配置表、DPDK线程状态、物理核亲和性来增减DPDK线程及其绑定的计算资源;
增设网卡伸缩功能,通过修改网卡重定向表新增和阻塞网卡队列,即修改活跃队列数量,通过修改全局配置表绑定和解绑DPDK线程及对应的计算资源。
进一步地,步骤4还包括插入和拔出计算资源,具体为:
插入计算资源是使用pthread库创建DPDK线程,并初始化DPDK线程存在状态、运行状态,初始化CPU绑定掩码与NUMA识别号等,设置类型为从属线程,并设置与物理核的亲和性;
拔出计算资源是拔出操作默认在处理完所绑定队列的残余数据包后才可执行,拔出操作会向DPDK线程发送注销信号,相应DPDK线程退出工作状态,并接受物理核解绑和线程注销,相应DPDK线程号设置为未注册。
一种基于DPDK的计算资源弹性伸缩系统,包括:增设DPDK弹性伸缩模式,通过参数传递申请开启该模式并自动匹配资源配置;部署周期性运行的DPDK监控线程,通过读取共享内存、网卡寄存器来获取应用程序状态,并进行计算和存储;构建计算资源弹性伸缩模型,通过模型简化和启发式算法决定伸缩时机和幅度;通过注册、销毁DPDK线程和修改网卡重定向表以及修改活跃队列数量,来增减网卡收包队列以及与其绑定的物理核,实现DPDK网卡绑定计算资源的伸缩。
通过监控获取充分的应用程序运行信息,并通过完整的建模和算法实时适配网卡负载和应用程序所需计算资源的变化,对网卡绑定的计算资源进行热插拔操作,避免了对物理核不必要的占用,真正提高了资源利用效率,在保证性能的基础上,最小化了投入的资源成本。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的一个较佳实施例的一种基于DPDK的计算资源弹性伸缩方法的流程示意图。
图2是本发明的一个较佳实施例的一种基于DPDK的计算资源弹性伸缩方法的网卡多队列操作示意图。
图3是本发明的一个较佳实施例的一种基于DPDK的计算资源弹性伸缩系统架构图。
具体实施方式
本发明提供的计算资源弹性伸缩方法从网络数据包处理应用程序的特性着手,设定弹性伸缩模式参数,由用户主动决定是否开启弹性模式;在DPDK中增设周期性运行的中断模式的后台监控线程,利用全局变量、共享内存、网卡寄存器等获取应用程序的当前状态,包括网卡负载和应用程序计算密集度等,并收集、存储历史统计数据;构建基于网络包处理应用程序的计算资源弹性伸缩模型,同时反映应用程序计算密集度和网卡负载的变化,并快速根据算法实时、准确做出伸缩决策,实现了伸缩幅度的一步到位,减少多次伸缩带来的额外开销;新增计算资源热插拔机制,并通过对多队列网卡的设置和对重定向表的修改,实现“活跃网卡队列”策略,使得真正从应用程序增减网卡所绑定的计算资源成为可能。
以下是对计算资源弹性伸缩问题的建模:
模型考虑以CPU物理核为伸缩粒度的网络数据包处理系统。其中,流经系统的网络流量和系统负载随时间变化,且任意时间都可以决定扩展或收缩任意数量的物理核,但会因此造成一定的额外开销。给定系统分配计算资源的初始状态,和随时间变化的网络流量,求解计算资源伸缩的策略(时机和幅度,即伸缩的时间点,和伸缩的物理核的数量),使得系统在实现总性能尽量高的基础上,所消耗的总计算资源量尽量少。
要实现性能和资源利用效率的权衡,就必须设定一个同时反映性能和效率的公式,以求解最优化问题,这里设定一段时间内实际的计算资源总量与预测应分配的计算资源总量的差别越小,则性能和资源利用效率越优。与从全局角度考虑,对一个系统来说,给定一段时间的网络流量数据信息,并测算每个时间点的应用程序运行状态,就可以求解这段时间的最优伸缩策略,使得性能和效率实现最优化。然而,由于网络流量的突发性和随机性,我们难以得知和预测未来一段时间的网络流量走势,也就无法从全局角度求解伸缩策略。
因而,在DPDK计算资源弹性伸缩问题场景下,模型简化为,已知过去一段时间的应用程序状态历史数据,求解当前时间点是否应该采取伸缩措施及相应的伸缩策略,使得可预知的未来一段时间的性能和效率达到最优化。
由于当前时刻预知系统输入网络流量的未来数据很困难,因而在模型求解中,做出重要假设:最近过去的一段时间(数个监控周期)内,使得系统性能和效率达到最优化的伸缩策略的最优解,同时也是未来一段时间的最优解,即全局最优解。
以下是对DPDK计算资源弹性伸缩系统各个元素的建模:
后台监控程序周期性运行,运行间隔为时间Interval,记录历史数据的次数为最近m次。解集为X={flag,N},flag表示当前是否采取伸缩措施,1表示扩展,-1表示收缩,0表示不伸缩,N表示需要伸缩的物理核数量。
Figure GDA0002633011550000051
0≤P≤1
R(i)表示最近第i次监控时应用程序理论应分配的计算资源量,hz为CPU单核频率,P为与系统特性相关的比例,例如,若应用程序计算密集度与数据包速率正相关,则P=1。cpp,cpb用来描述应用程序的计算密集度,cpp(cycles per packet)表示单核满载处理每数据包所需周期数,cpb(cycles per bit)表示单核满载处理每位所需周期数。cpp,cpb可以通过预处理求出,也可以在运行时任意找满载物理核进行动态更新。pps(i)和bps(i)求的是上一个监控周期时间Interval的网卡平均速率,可通过DPDK的rte_eth_stats_get函数读取网卡寄存器得到所绑定网卡的收发字节数和收发包量和丢包量,通过rte_eth_rx_queue_count,rte_eth_tx_queue_count函数获取网卡各个收发包队列的当前状况(如队列空或满),根据监控时间间隔计算pps(i),bps(i)。
求解当前是否需要伸缩以及伸缩的幅度,使得应用程序效率和性能最优化的问题,转化成了实际计算资源量与预测所需的计算资源量尽量接近的问题。需要注意的是,伸缩粒度为CPU核心;为了避免抖动,m次监控的间隔内,不能重复执行伸缩操作;单核满载,计算资源利用效率为100%;已注销的物理核不影响效率。以如下策略决定当前是否需要继续伸缩物理核:扩展后性能提升并未使得计算资源利用效率大幅度减小,收缩后性能下降但使得计算资源利用效率大幅度提升。
综上所述,可以得到系统的数学模型如下:
求解:
X={flag,N}
优化目标:
Figure GDA0002633011550000061
DN表示物理核伸缩幅度为N的情况下,m次监控内实际计算资源与预测计算资源的差别。
约束条件:
Figure GDA0002633011550000062
Th为预设的阈值。
对该问题的求解,和DPDK计算资源弹性伸缩系统的运作步骤,如图1所示,具体步骤如下:
步骤1:增设DPDK弹性伸缩模式,通过命令行参数传递来指定工作网卡端口和申请启用弹性伸缩模式,成功启用该模式后,自动匹配资源配置并执行后述步骤;
指定需要处理的网卡端口,指定其他DPDK环境抽象层(EAL)参数;
在DPDK环境抽象层中增加弹性伸缩模式的标记参数,由环境变量预设(export)或参数传递(即通过argc,argv传入)传入,以申请开启弹性伸缩模式;
由DPDK初始化模块探测并决定是否接受申请,并设置弹性伸缩模式的标记位,初始化DPDK线程绑定的全局配置表,根据NUMA节点、网卡速率自动匹配推荐的资源配置。
步骤2:分配系统资源并初始化DPDK环境抽象层,注册DPDK工作线程,部署后台监控线程对应用程序状态进行实时监控、计算和存储;
如图2所示,首先,根据网卡配置信息分配并通过DPDK环境抽象层初始化推荐量的计算、内存等系统资源;初始化大于物理核数量的网卡队列,通过修改网卡重定向表来指定活跃(即有数据包流入)队列并与物理核绑定;注册并初始化DPDK工作线程并记录其绑定策略;
然后,部署后台监控线程,将其设置为中断模式并周期性运行,通过读取网卡寄存器、共享内存获取统计数据,包括网卡收发包数量、字节数和网卡各队列状态等;根据统计数据和监控时间间隔,计算应用程序的网络负载计算密集度。应用程序数据获取和计算方法见上述建模部分;
最后,开启工作线程,后台监控线程开启周期性工作,监控应用程序状态,并计算、存储历史数据。
步骤3:后台监控线程收集并存储该应用程序状态的统计数据,根据模型和算法决定是否采取扩展、收缩操作并发送请求;
构建计算资源弹性伸缩模型,建模过程详见上述分析;
求解时,利用所需资源超过或少于已分配资源的数量和持续时间计算趋势值Trend判断:若Trend大于阈值,则对该应用程序实施相应幅度的伸缩操作,并发送信号通知DPDK工作线程。在每次监控时求解集X={flag,N},计算公式如下:
Figure GDA0002633011550000071
Figure GDA0002633011550000072
flag=sgn(Trend)*(abs(Trend)≥Th?1:0)
N=[flag*Trend]+{flag*Trend}≥Th?1:0
R(i)表示最近第i次监控时应用程序理论应分配的计算资源量,s为当前已分配的计算资源量,m为考虑的监控历史记录次数,Th表示阈值(经验值0.7),flag表示当前是否需要伸缩,N表示需要伸缩的物理核数量;
求得解集X={flag,N}。
步骤4:针对相应的扩展、收缩请求,对分配的计算、内存、I/O资源进行适应性调整,以最佳适配应用程序的当前需要。
对于扩展请求,首先插入计算资源,并绑定到即将新增的网卡队列上,然后修改重定向表以新增活跃队列;
对于收缩请求,首先修改重定向表以阻塞相应网卡队列,然后清空残余数据包,拔出相应计算资源。
其中,插入、拔出计算资源的步骤为:
插入:使用pthread库创建DPDK线程,并初始化DPDK线程存在状态、运行状态,初始化CPU绑定掩码与NUMA识别号等,设置类型为从属线程,并设置与物理核的亲和性(一一对应)。
拔出:拔出操作默认在处理完所绑定队列的残余数据包后才可执行。拔出操作会向DPDK线程发送注销信号,相应DPDK线程退出工作状态,并接受物理核解绑和线程注销,相应DPDK线程号设置为未注册。
如图3所示,一种基于DPDK网络包处理应用的计算资源弹性伸缩系统,包括上述步骤1至步骤4中任一项所述的计算资源弹性伸缩方法,包括:增设DPDK弹性伸缩模式,通过参数传递申请开启该模式并自动匹配资源配置;部署中断模式周期性运行的DPDK监控线程,通过读取共享内存、网卡寄存器来获取应用程序状态,并进行计算和存储;构建计算资源弹性伸缩模型,通过模型简化和启发式算法决定伸缩时机和幅度;通过注册、销毁DPDK线程和修改网卡重定向表(修改活跃队列数量),来增减网卡收包队列以及与其绑定的物理核,实现DPDK网卡绑定计算资源的伸缩。
上述基于DPDK的计算资源弹性伸缩系统及方法,通过监控获取充分的应用程序运行信息,并通过完整的建模和算法实时适配网卡负载和应用程序所需计算资源的变化,对网卡绑定的计算资源进行热插拔操作,避免了对物理核不必要的占用,提高了资源利用效率,在保证性能的基础上,最小化了投入的资源成本。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

Claims (9)

1.一种基于DPDK的计算资源弹性伸缩方法,其特征在于,包括以下步骤:
步骤1:增设DPDK弹性伸缩模式,通过命令行参数传递来指定工作网卡端口和申请启用弹性伸缩模式,成功启用所述弹性伸缩模式后,自动匹配资源配置并执行后述步骤;
步骤2:根据资源配置分配系统资源并初始化DPDK环境抽象层,注册DPDK工作线程,增设并部署DPDK监控线程对应用程序状态进行实时监控、计算和存储;
步骤3:由DPDK监控线程对应用程序状态的历史数据进行分析,构建计算资源弹性伸缩模型,通过模型简化和启发式算法决定伸缩策略并发送请求;
步骤4:针对相应的扩展、收缩请求,对分配的DPDK计算资源进行适应性调整,以最佳适配应用程序的当前需要。
2.如权利要求1所述一种基于DPDK的计算资源弹性伸缩方法,其特征在于,所述步骤1通过命令行参数传递来指定需要处理的网卡端口并指定其他DPDK环境抽象层参数。
3.如权利要求1所述一种基于DPDK的计算资源弹性伸缩方法,其特征在于,所述步骤1中,在DPDK环境抽象层中增加弹性伸缩模式的标记参数,由环境变量预设或参数传递传入,以申请开启弹性伸缩模式。
4.如权利要求1所述一种基于DPDK的计算资源弹性伸缩方法,其特征在于,所述步骤2包括:
首先,根据基于NUMA节点、网卡速率自动匹配的资源配置,初始化相应量的CPU、内存资源;初始化过量的网卡收包队列,通过修改网卡重定向表来指定活跃网卡队列并与CPU物理核绑定;注册DPDK工作线程,增设全局配置表并记录工作线程与CPU和网卡队列的绑定策略;
然后,部署DPDK监控线程,周期性运行;与DPDK工作线程解耦,不影响其开发和运作;通过读取网卡寄存器和共享内存获取统计数据,并计算和存储实时网络负载及应用程序的计算密集度。
5.如权利要求1所述一种基于DPDK的计算资源弹性伸缩方法,其特征在于,所述步骤3包括模型简化和求解算法,具体为:
假设最近过去时间的伸缩策略最优解,可以反映当前时间的全局最优解,求伸缩策略解集,使得最近监控的时间范围内实际分配的计算资源与系统预测所需计算资源的差别最小。
6.如权利要求5所述一种基于DPDK的计算资源弹性伸缩方法,其特征在于,所述求解算法利用系统预测所需计算资源超过或少于已分配计算资源的数量和持续时间计算趋势值Trend,并根据阈值作出决策,核心公式如下:
Figure FDA0002633011540000021
flag=sgn(Trend)*(abs(Trend)≥Th?1:0)
N=[flag*Trend]+{flag*Trend}≥Th?1:0
伸缩策略解集X={flag,N},flag表示当前是否实施伸缩,N表示需要伸缩的计算资源量,R(i)表示最近第i次监控时预测应用程序应分配的计算资源量,s为当前已分配的计算资源量,m为记录的监控历史记录次数,Th为阈值。
7.如权利要求1所述的一种基于DPDK的计算资源弹性伸缩方法,其特征在于,所述步骤4包括计算资源伸缩方法,具体为:
增设DPDK计算资源热插拔功能,利用pthread库和信号机制,通过重设全局配置表、DPDK线程状态、物理核亲和性来增减DPDK线程及其绑定的计算资源;
增设网卡伸缩功能,通过修改网卡重定向表新增和阻塞网卡队列,即修改活跃队列数量,通过修改全局配置表绑定和解绑DPDK线程及对应的计算资源。
8.如权利要求7所述的一种基于DPDK的计算资源弹性伸缩方法,其特征在于,所述步骤4还包括插入和拔出计算资源,具体为:
所述插入计算资源是使用pthread库创建DPDK线程,并初始化DPDK线程存在状态、运行状态,初始化CPU绑定掩码与NUMA识别号,设置类型为从属线程,并设置与物理核的亲和性;
所述拔出计算资源是拔出操作默认在处理完所绑定队列的残余数据包后才可执行,拔出操作会向DPDK线程发送注销信号,相应DPDK线程退出工作状态,并接受物理核解绑和线程注销,相应DPDK线程号设置为未注册。
9.一种应用权利要求1至8中任一项所述方法的基于DPDK的计算资源弹性伸缩系统,其特征在于,包括:增设DPDK弹性伸缩模式,通过参数传递申请开启该模式并自动匹配资源配置;部署周期性运行的DPDK监控线程,通过读取共享内存、网卡寄存器来获取应用程序状态,并进行计算和存储;构建计算资源弹性伸缩模型,通过模型简化和启发式算法决定伸缩时机和幅度;通过注册、销毁DPDK线程和修改网卡重定向表以及修改活跃网卡队列数量,来增减网卡收包队列以及与其绑定的物理核,实现DPDK网卡绑定计算资源的伸缩。
CN201711268479.7A 2017-12-05 2017-12-05 一种基于dpdk的计算资源弹性伸缩方法及系统 Active CN108062269B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711268479.7A CN108062269B (zh) 2017-12-05 2017-12-05 一种基于dpdk的计算资源弹性伸缩方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711268479.7A CN108062269B (zh) 2017-12-05 2017-12-05 一种基于dpdk的计算资源弹性伸缩方法及系统

Publications (2)

Publication Number Publication Date
CN108062269A CN108062269A (zh) 2018-05-22
CN108062269B true CN108062269B (zh) 2020-12-11

Family

ID=62136095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711268479.7A Active CN108062269B (zh) 2017-12-05 2017-12-05 一种基于dpdk的计算资源弹性伸缩方法及系统

Country Status (1)

Country Link
CN (1) CN108062269B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271268B (zh) * 2018-09-04 2022-03-18 超越科技股份有限公司 一种基于dpdk的智能容错方法
CN110968403A (zh) * 2018-09-28 2020-04-07 深信服科技股份有限公司 一种cpu工作控制方法、装置、设备及存储介质
CN110968402A (zh) * 2018-09-28 2020-04-07 深信服科技股份有限公司 一种cpu工作控制方法、装置、设备及存储介质
CN109445944B (zh) * 2018-10-25 2021-07-23 武汉虹旭信息技术有限责任公司 一种基于dpdk的网络数据采集处理系统及其方法
US11237859B2 (en) 2018-11-28 2022-02-01 Red Hat Israel, Ltd. Securing virtual machines in computer systems
CN109951532B (zh) * 2019-02-27 2021-09-24 江苏省未来网络创新研究院 一种基于dpdk的流量模型自动变换装置
CN109960637A (zh) * 2019-03-20 2019-07-02 苏州浪潮智能科技有限公司 一种分析网卡cpu占用率的方法和系统
CN110677397A (zh) * 2019-09-18 2020-01-10 广东网堤信息安全技术有限公司 基于dpdk下的nat转发数据的方法
CN110704504A (zh) * 2019-09-20 2020-01-17 天翼征信有限公司 数据源采集接口分发方法、系统、存储介质及终端
CN110636139B (zh) * 2019-10-15 2020-07-31 广州市品高软件股份有限公司 一种云负载均衡的优化方法及系统
CN110765064B (zh) * 2019-10-18 2022-08-23 山东浪潮科学研究院有限公司 一种异构计算架构的边缘端图像处理系统及方法
CN110768829B (zh) * 2019-10-23 2022-02-15 江苏省未来网络创新研究院 一种基于dpdk实现流量分析业务性能线性增长的方法
CN111143199B (zh) * 2019-12-11 2022-08-05 烽火通信科技股份有限公司 一种云平台中检测dpdk应用程序内存越界访问的方法
CN111611051B (zh) * 2020-04-28 2022-05-31 上海交通大学 一种在nfv平台上加速数据包首次分发的方法
CN114448909B (zh) * 2021-12-27 2023-10-13 天翼云科技有限公司 基于ovs的网卡队列轮询方法、装置、计算机设备及介质
CN114944996B (zh) * 2022-07-27 2022-09-30 北京立华莱康平台科技有限公司 一种数据采集方法、装置及计算机可读介质
CN117667357A (zh) * 2023-12-14 2024-03-08 江苏新质信息科技有限公司 一种多核并发轮询调度方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615480A (zh) * 2015-02-04 2015-05-13 上海交通大学 基于numa高性能网络处理器负载的虚拟处理器调度方法
KR20170097615A (ko) * 2014-12-22 2017-08-28 인텔 코포레이션 네트워크 디바이스에서의 수신된 패킷의 처리와 연관된 전력 관리 기법
CN107147517A (zh) * 2017-03-24 2017-09-08 上海交通大学 一种针对虚拟网络功能的自适应计算资源分配方法
CN107196870A (zh) * 2017-07-20 2017-09-22 哈尔滨工业大学 一种基于dpdk的流量动态负载均衡方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10425348B2 (en) * 2015-07-22 2019-09-24 The Regents Of The University Of Colorado Stateless network functions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170097615A (ko) * 2014-12-22 2017-08-28 인텔 코포레이션 네트워크 디바이스에서의 수신된 패킷의 처리와 연관된 전력 관리 기법
CN104615480A (zh) * 2015-02-04 2015-05-13 上海交通大学 基于numa高性能网络处理器负载的虚拟处理器调度方法
CN107147517A (zh) * 2017-03-24 2017-09-08 上海交通大学 一种针对虚拟网络功能的自适应计算资源分配方法
CN107196870A (zh) * 2017-07-20 2017-09-22 哈尔滨工业大学 一种基于dpdk的流量动态负载均衡方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
An NFV Framework for Supporting Elastic Scaling of Service Function Chain;Zhen Shen;Yu Zhang;《 2018 IEEE 4th International Conference on Computer and Communications》;20190801;全文 *
Bin Zhang;Pengfei Zhang.Co-Scaler: Cooperative scaling of software-defined NFV service function chain.《2016 IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN)》.2017, *
基于DPDK的高性能负载均衡系统设计与实现;黄冰;《中国优秀硕士学位论文全文数据库信息科技辑》;20170315;全文 *

Also Published As

Publication number Publication date
CN108062269A (zh) 2018-05-22

Similar Documents

Publication Publication Date Title
CN108062269B (zh) 一种基于dpdk的计算资源弹性伸缩方法及系统
US11601512B2 (en) System and method for throttling service requests having non-uniform workloads
US9419904B2 (en) System and method for throttling service requests using work-based tokens
Yang et al. A framework for partitioning and execution of data stream applications in mobile cloud computing
US9218213B2 (en) Dynamic placement of heterogeneous workloads
US9317427B2 (en) Reallocating unused memory databus utilization to another processor when utilization is below a threshold
CN102724103A (zh) 代理服务器、分层次网络系统及分布式工作负载管理方法
CN107846371A (zh) 一种多媒体业务QoE资源分配方法
TW202219761A (zh) 用於封閉迴路動態資源分配控制架構之設備及方法
KR20220001418A (ko) 성능 마커들을 사용하는 리소스 할당 제어 프레임워크를 위한 장치 및 방법
US11005776B2 (en) Resource allocation using restore credits
CN112367270A (zh) 一种报文发送的方法和设备
CN117369990A (zh) 一种算力资源调度方法及装置、系统、设备、存储介质
Zhao et al. Insight and reduction of MapReduce stragglers in heterogeneous environment
CN112214299A (zh) 多核处理器及其任务调度方法和装置
CN108228323B (zh) 基于数据本地性的Hadoop任务调度方法及装置
Buh et al. Adaptive network-traffic balancing on multi-core software networking devices
US10225198B2 (en) Bandwidth control circuit, arithmetic processing apparatus, and bandwidth control method for apparatus
Kalogeraki et al. Resource management using multiple feedback loops in soft real-time distributed object systems
Sutagundar et al. Development of fog based dynamic resource allocation and pricing model in IoT
Zhou et al. TRAN: TAsk replication with guarantee via multi-armed bandit
US20230205661A1 (en) Real-time simulation of compute accelerator workloads with remotely accessed working sets
US20220327004A1 (en) Method, device, and computer program product for managing storage system
Zou et al. BTP: automatic identification and prediction of tasks in data center networks
Brunet et al. A multicore-enabled multirail communication engine

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant