CN109542603A - 一种提高不同优先级任务间隔离性的多维资源隔离系统 - Google Patents
一种提高不同优先级任务间隔离性的多维资源隔离系统 Download PDFInfo
- Publication number
- CN109542603A CN109542603A CN201811397832.6A CN201811397832A CN109542603A CN 109542603 A CN109542603 A CN 109542603A CN 201811397832 A CN201811397832 A CN 201811397832A CN 109542603 A CN109542603 A CN 109542603A
- Authority
- CN
- China
- Prior art keywords
- resource
- task
- cpu
- multi dimensional
- memory
- 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.)
- Granted
Links
- 238000002955 isolation Methods 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 74
- 230000008569 process Effects 0.000 claims abstract description 50
- 238000012544 monitoring process Methods 0.000 claims abstract description 34
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 15
- 230000015654 memory Effects 0.000 claims description 114
- 230000006870 function Effects 0.000 claims description 7
- 238000013138 pruning Methods 0.000 claims description 7
- 230000000750 progressive effect Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 4
- 238000013480 data collection Methods 0.000 claims description 2
- 238000007781 pre-processing Methods 0.000 claims description 2
- 238000011897 real-time detection Methods 0.000 claims description 2
- 238000013468 resource allocation Methods 0.000 claims description 2
- 238000007519 figuring Methods 0.000 claims 1
- 238000009790 rate-determining step (RDS) Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 8
- 238000005259 measurement Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Abstract
本发明提出一种为不同优先级任务提供多维度资源隔离的隔离系统,其特征在于,包括多维资源占用量建模模块,实时资源使用量预测模块,多维资源隔离控制模块;所述多维资源占用量建模模块进行任务历史信息收集,使用回归算法建立多维资源占用量映射到进程每秒执行的指令数的资源模型;所述实时资源使用量预测模块,所述实时资源使用量预测模块进行任务负载实时监控和多维资源使用量预测;所述模型预测结果为该任务的实时资源隔离配额;所述多维资源隔离控制模块,接收来自所述资源使用量预测模块输出的预测结果,对不同优先级的任务进行隔离配额的调整。
Description
技术领域
本发明涉及调度领域,尤其涉及一种提高不同优先级任务间隔离性的多维资源隔离系统。
背景技术
随着云计算技术的发展,在大规模集群中将对延迟较为敏感的任务与批处理类任务进行混合调度已经成为提高资源利用率的一个主流途径,而同时为了保障延迟敏感类任务的性能,需要具有良好隔离性能的隔离系统来对不同任务的进程进行资源隔离。
Linux Control Groups(以下简称Cgroups)是目前Linux内核提供的对CPU和内存容量使用上限进行限制的方法。Cgroups是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:CPU,Memory等)的机制。最初由Google的工程师提出,后来被整合进Linux内核。Cgroups也是LXC为实现虚拟化所使用的资源管理手段,是LXC和Docker的基础。
Cgroups最初的目标是为资源管理提供的一个统一的框架,既整合现有的Cpuset等子系统,也为未来开发新的子系统提供接口。现在的Cgroups适用于多种应用场景,从单个进程的资源控制,到实现操作系统层次的虚拟化(OS Level Virtualization)。
Cgroups定义了多个子系统来实现多种资源的隔离,如CPU、内存等。这里面每一个子系统都需要与内核的其他模块配合来完成资源的控制,比如对cpu资源的限制是通过进程调度模块根据cpu子系统的配置来完成的;对内存资源的限制则是内存模块根据memory子系统的配置来完成的,而对网络数据包的控制则需要Traffic Control子系统来配合完成。
内核使用Cgroup结构体来表示一个controlgroup对某一个或者某几个Cgroups子系统的资源限制。Cgroup结构体可以组织成一颗树的形式,每一棵Cgroup结构体组成的树称之为一个Cgroups层级结构。Cgroups层级结构可以attach一个或者几个Cgroups子系统,当前层级结构可以对其attach的Cgroups子系统进行资源的限制。
目前在一些大规模集群的调度场景中,一般主要使用了Cgroups中的cpu和memory两个子系统,分别对cpu和内存容量进行隔离,具体的实现方式是与Linux系统提供的Cgroups接口进行交互,从而限制cpu和内存容量的资源上限,达到一种单机环境下的资源划分目的,从而隔离不同进程间的资源抢占和干扰。
Cgroups可以为不同进程提供cpu和内存容量维度的资源隔离,但是仍存在着一些缺点:
首先,目前的大规模资源调度系统大多使用Cgroup中的cpu和memory两个子系统进行cpu和内存资源的隔离,这种方式可以限制每个被调度任务的资源使用上限,从而在一定程度上保障每个任务的性能,但是任务运行时表现出的性能不仅仅跟它所占有的cpu和memory资源有关,还跟其他维度的资源比如LLC缓存、内存带宽占用量等有关,因此,仅仅使用Cgroup进行cpu和memory的隔离是不全面的,所提供的任务间隔离性很有限。
其次,使用Cgroup的cpu子系统是利用了Linux操作系统的完全公平调度(CFS)算法,调整给进程分配时间片的策略来实现了对cpu资源的隔离。因此在使用该方法进行cpu资源隔离时,会触发更多的进程在不同cpu上迁移的操作,带来更多的上下文切换以及L1、L2缓存的污染,从而具有额外的系统调度开销。这种开销也会影响到被调度进程的性能。
最后,使用Cgroup对不同优先级的任务进行隔离通常采用将整体资源进行静态划分和分配的方式,并且给高优先级的任务预留大量的资源才可以保证高优先级任务的运行时性能,这种静态的资源预留方式无疑会造成一部分资源浪费,从而降低整体的资源利用率。
发明内容
本发明提出了一种更能提高不同任务或进程间隔离性的多维度资源隔离控制系统。提供一种更为全面、隔离性更好的隔离方法,采用更为灵活的隔离配额调节策略,在保障高优先级任务的性能同时具有更高的资源利用率,是本发明的目标。
本发明提出了一种为不同优先级任务提供多维度资源隔离的隔离系统,包括以下几个模块:
多维资源占用量建模模块:负责对特定任务运行时的多个资源维度资源占用量进行监测,同时提供不断动态调节该任务运行时可使用的资源配额,通过实时监测收集其运行情况的历史信息,收集到的运行时历史信息即为在各种不同的资源配额下,特定任务的性能表现,本发明使用任务进程每秒执行的指令数(IPS,instructions per second)来反映任务进程的实时性能。之后,使用回归算法将收集到的数据进行回归建模,建立多维资源占用量映射到进程IPS的资源模型。
实时资源使用量预测模块:实现特定任务在部署运行后的实时负载监控功能,本发明采用了在任务服务端获取负载信息的方法,该方法具有一定的通用性,可以适配大部分多线程服务类的任务,本发明通过实时监控特定任务的服务进程开启的子线程数量来反映其受到的实时请求负载,获取到实时负载和预设的希望保证的IPS标准后,结合多维资源占用量建模模块输出的资源模型,设计获取最小资源占用量的算法,将实时负载和希望保证的IPS作为输入,输出的模型预测结果即为该任务的实时资源隔离配额。
多维资源隔离控制模块:主要实现对不同优先级的任务或任务组进行Cpu、Memory、LLC缓存和内存带宽等4个维度的资源隔离控制,在任务运行时动态调整不同任务或任务组可使用的多维度资源配额上限,接收来自资源使用量预测模块输出的预测结果(多维资源向量),对不同优先级的任务进行隔离配额的调整。
本发明对比于目前的集群资源调度器,主要具有如下的特点和优势:
(1)考虑更全面的多维度资源隔离,提供包括cpu、内存容量、LLC缓存以及内存带宽维度的隔离支持,从多个资源维度对高优先级任务的资源占用量进行保障,从而提高隔离性。
(2)同时对cpu资源的隔离方式进行优化,更大限度地减少不同进程间的cpu资源占用的干扰,降低了传统Cgroup方法带来的系统开销。
(3)提供更加灵活的隔离调节方式,实现任务进程实时运行情况的监控方法,在任务部署前根据历史信息对任务的多维度资源使用量进行建模,根据任务进程的实时负载情况对任务所需的资源用量进行预测,动态的调节多维度资源的配额,在保障高优先级任务的性能同时提高资源利用率。
附图说明
图1为本发明的整体框架图;
图2为回归算法生成资源模型建模过程;
图3为多维资源使用量预测过程。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的系统架构如图1所示,本发明提出了一种为不同优先级任务提供多维度资源隔离的隔离系统,包括以下几个模块:
多维资源占用量建模模块:负责对特定任务运行时的多个资源维度资源占用量进行监测,同时提供不断动态调节该任务运行时可使用的资源配额,通过实时监测收集其运行情况的历史信息,收集到的运行时历史信息即为在各种不同的资源配额下,特定任务的性能表现,本发明使用任务进程每秒执行的指令数(IPS,instructions per second)来反映任务进程的实时性能。之后,使用回归算法将收集到的数据进行回归建模,建立多维资源占用量映射到进程IPS的资源模型。
所述资源模型描述了一个从多维向量(CPU,内存,LLC缓存,内存带宽,负载情况tasks)到IPS预测值的映射关系。模型具体以(CPU,内存,LLC缓存,内存带宽,负载情况tasks)作为输入,表示分配给该任务的CPU、内存、LLC缓存、内存带宽的资源量,负载情况tasks表示该任务的进程实时的子线程数量,反映了该任务受到的实时负载情况。模型根据输入,会对该输入条件下的任务的运行时IPS值进行预测,IPS可以反映任务的实时性能。
实时资源使用量预测模块:实现特定任务在部署运行后的实时负载监控功能,本发明采用了在任务服务端获取负载信息的方法,该方法具有一定的通用性,可以适配大部分多线程服务类的任务,本发明通过实时监控特定任务的服务进程开启的子线程数量来反映其受到的实时请求负载,获取到实时负载和预设的希望保证的IPS标准后,结合多维资源占用量建模模块输出的资源模型,设计获取最小资源占用量的算法,将实时负载和希望保证的IPS作为输入,输出的模型预测结果即为该任务的实时资源隔离配额。
多维资源隔离控制模块:主要实现对不同优先级的任务或任务组进行Cpu、Memory、LLC缓存和内存带宽等4个维度的资源隔离控制,在任务运行时动态调整不同任务或任务组可使用的多维度资源配额上限,接收来自资源使用量预测模块输出的预测结果(多维资源向量),对不同优先级的任务进行隔离配额的调整。
系统多个模块实现的具体步骤为:
(1)启动特定待隔离任务进程,根据实际运行时的负载状况,对其施加稳定的访问负载压力,开启任务历史信息收集子模块,对待隔离进程进行多维资源占用量实时检测和数据收集,同时对待隔离进程开启多维资源配额上限动态调整脚本,从而不断地改变待隔离任务占用的多维资源量,此时待隔离进程的多维资源占用量和IPS值会在一个区间内不断变化,因此历史信息收集子模块可以收集到较为全面的待隔离进程的运行时性能表现的数据。将收集到的历史信息数据进行一系列的数据预处理之后,使用渐进梯度回归数(GBRT)算法建立资源模型,模型输入为多维资源向量以及当前的负载情况,模型输出为待隔离进程的IPS。
(2)部署待隔离任务的负载,启动任务负载实时监控子模块对其进行监控,获取其运行时的实时负载情况,结合获取最小资源占用量的算法以及之前建模模块输出的资源模型,预测出要达到待隔离任务理想的目标IPS值,需要给其分配的多维度资源向量。并将预测结果传入隔离控制模块。
(3)多维资源隔离控制模块接收到实时预测模块计算出的预测结果即是需要给待隔离任务保障的多维资源量向量。使用Cgroup中的cpuset子系统对待隔离任务和其他任务进行分组,通过Cpu、Memory、LLC缓存和内存带宽隔离控制子模块分别对4个维度的资源占用量进行隔离控制,保障待隔离任务所能使用的资源下限,从而达到保障待隔离任务的理想IPS即实时运行性能的目的。
所述多维资源占用量建模模块包括任务历史信息收集模块和回归算法生成资源模型。
任务历史信息收集模块主要实现了两个功能,其一是动态改变特定任务的cpu、内存、LLC缓存、内存带宽等四个维度的资源使用上限的功能,其二是实时监测特定任务的cpu、内存、LLC缓存、内存带宽等四个维度的资源占用量、任务当前负载以及任务进程的实时IPS。
动态改变特定任务的资源上限在实现上借助了多维资源隔离控制模块,通过编写脚本程序在预设的四维资源向量取值范围内遍历每种可能的资源配额,输入到多维资源隔离控制模块,利用四维资源隔离控制子模块实现动态的限制待隔离任务的多维资源占用量。
实时监测特定任务的资源占用量、任务当前负载以及实时IPS功能的实现可以从技术方案角度划分为三部分:cpu、内存占用量监测,LLC缓存、内存带宽占用量监测,以及实时负载和IPS监测。
首先,通过使用Linux系统的proc文件系统提供的逻辑核粒度CPU、内存占用量监测接口实现对在线Cgroup分组实时占用的CPU和内存容量资源进行监测。CPU使用率监测的具体实现方法为:首先读取/proc/stat文件获取单节点上CPU总的使用情况,单位为jiffies,jiffies是内核中的一个全局变量,用来记录自系统启动一来产生的节拍数,在linux中,一个节拍大致可理解为操作系统进程调度的最小时间片,不同linux内核可能值有不同,通常在1ms到10ms之间。获取到表1中的所有参数的CPU时间作和,得到从系统启动开始累计到当前时刻,CPU的总时间。通过两次测量得到的CPU总时间作差,可以得到在这一个测量周期内的CPU总时间。然后读取Cgroup Cpuacct子系统(Linux的文件系统内默认与CPU子系统链接在一起)下的cpuacct.stat文件,可以获得整个Cgroup分组下的从该Cgroup分组创建开始累计到当前时刻,user和system的CPU运行时间。通过两次测量作差,得到一次测量周期内该Cgroup分组占用的CPU总时间。以一次测量周期内指定分组占用的CPU时间作为分子,CPU总时间作为分母,比值即为在单次测量周期内指定Cgroup分组的CPU使用率。内存容量占用量监测的实现是通过读取proc文件系统中在线Cgroup分组内每个进程对应的/proc/[pid]/status,获取其中的VmRss的值作为内存容量占用值。VmRss是虚拟内存驻留集合大小,这是驻留在物理内存的一部分,它没有交换到硬盘,它包括代码,数据和栈。选取该值作为内存容量占用值的实现方案参照了Linux中top命令的实现。最后,对CPU使用率和内存容量的占用量监测用C语言进行实现。
其次,基于Intel芯片提供的CMT(Cache Monitoring Technology)、MBM(MemoryBandwidth Monitoring)两种资源监测技术的接口实现了对指定Cgroup分组所占用的LLC缓存、内存带宽资源用量的监测。通过其提供的接口对IntelCPU的支持,访问指定的特殊模块寄存器(MSR),可以获取指定监控项如几个逻辑核的实时LLC缓存占用量和内存带宽使用量,进而实现了获取一个测量周期内逻辑核粒度的LLC缓存以及内存带宽使用量。将待隔离任务放入指定的Cgroup的cpuset子系统的分组中,之后获取指定Cgroup分组内所有逻辑核的LLC缓存和内存带宽,并将它们作和,即得到一个监测周期内,该Cgroup分组的LLC缓存、内存带宽使用量,也就实现了对该分组内的待隔离进程的LLC缓存和内存带宽占用的实时监测。
然后,为了根据在线任务运行时的实时负载情况对隔离配额进行动态调节,本模块实现了一种监测待隔离任务所受到的负载情况的方法。具体方法为获取待测任务所在的Cgroup分组下的服务线程数量,并以此来反映该任务受到的实时负载。本发明已设计mysql服务在不同负载压力下的实验,实验结果表明,并发发送请求的客户端数量越多,mysql服务受到的负载越大时,其服务进程的子线程数量越多。因此本发明采用了服务线程数反映特定任务的实时负载。实现方法为读取任务所在的Cgroup分组下的tasks文件,获取内容为所有的子线程线程号,从而得到服务线程总数。本发明使用每秒执行的指令数IPS(instructions per second)作为反映任务性能的指标。每秒的时间间隔固定不变,因此通过每秒执行的指令数可以反映出在线组整体的性能情况。实现方法为使用linux内核库文件perf.h库提供的perf_event_open接口,获取特定任务Cgroup组内任务进程的执行指令计数,通过两次测量作差,可以得到一个测量周期内的执行指令数,计算得到IPS。
最后,将收集到的特定任务实际占用的多维资源量、实时负载情况以及IPS数据保存导出到csv文件。
收集到历史信息数据后,首先对数据进行预处理,预处理过程主要为根据IPS与CPU利用率的比值分布去除异常值,然后使用多种回归模型建模。图2中多维资源模型描述了在某一特定的负载条件tasks下,IPS随多维资源向量的变化情况,收集的任务历史信息数据以多维向量(IPS,负载情况tasks,CPU,内存,LLC缓存,内存带宽)的形式保存在csv文件中,以多维向量(CPU,内存,LLC缓存,内存带宽,负载情况tasks)作为自变量,IPS作为因变量,使用渐进梯度回归树(GBRT)算法对历史信息数据进行训练,回归建立资源使用量模型,该模型描述了一个从多维向量(CPU,内存,LLC缓存,内存带宽,负载情况tasks)到IPS预测值的映射关系。
通过对建模结果比对,该模块采用渐进梯度回归树(GBRT)算法对任务的历史信息建模,得到该任务的(CPU,内存,LLC,内存带宽,tasks)向量到IPS的映射模型。将生成的森林模型保存为模型文件用于运行时的实时预测。
实时资源使用量预测模块实现任务负载实时监控和多维资源使用量预测
任务负载实时监控开启的具体实现是,历史信息收集子模块中的任务负载实时监测功能,实时动态地获取任务进程的实时子线程数量,并在检测到负载变化时触发新一轮的多维资源使用量预测和配额调节。此时将获取到的变化后的负载情况作为输入,输入到后续的多维资源使用量预测子模块中。
多维资源使用量预测的具体实现是,接收到当前变化后的负载情况之后,结合预设的需要达到的IPS指标,把两项作为输入参数同时输入模型预测方法中。模型预测方法为了获取到当前负载情况下保障相应的IPS指标需要满足的最小资源隔离配额,资源消耗函数如下:
cost(X)=wcpu*·xcpu+·wmem*·xmem+wllc*xllc+wmbw*xmbw
资源cost函数的输入X=(xcpu,xmem,xllc,xmbw)是多维资源分配向量,表示了可以分配给该任务的CPU、内存、LLC缓存和内存带宽的资源量,例如xcpu则表示了分配给该任务的CPU资源量,其它维度同理。wcpu、wmem、wllc、wmbw四个权重参数则表示了每一维度的资源用量的花费权重,权重参数的作用首先减少多维资源量在数值上的差异,这是一种类似归一化的处理方式;其次,根据任务本身的特征,对使用不同资源的花费赋以不同的权值,例如某一在线任务对LLC缓存资源非常敏感,而且需要至少占用一定数值的缓存才可以保证性能,那么在超过这个数值之后的wllc才会有明显的增加,在低于这个分配值时,权值wllc可能会较小。各维度资源的权重参数具体确定方式需根据用户对任务的资源敏感度的理解和经验数据来确定。其中,X为多维度资源向量配额,w表示每个资源维度的权重,该函数的值越小,则表明该资源向量的整体表现为占用资源量最少。资源权重的意义在于特定一种任务对各类资源的敏感度不同,因此对于不同的任务,需要规定不同标准去判断其资源占用量的多少。有了上述条件后,遍历可能的资源向量组合,并使用剪枝策略,使用已建立的资源模型预测出IPS预测值,计算cost函数值,找到一个使cost函数值最低的可行解,也就找到了满足该任务IPS要求的最小资源配额。
预测时的负载情况由实时监控得到,即负载情况tasks已确定,而任务可用的多维资源用量也都有着一定的取值范围,因此输入向量(CPU,内存,LLC缓存,内存带宽,负载情况tasks)可以构造一个有限的集合,进行IPS预测时,并依次从CPU、内存、LLC缓存、内存带宽的资源用量按照从高到低的顺序遍历整个输入集合,将遍历过程中的每次取值输入给上述资源模型进行IPS预测,并且结合剪枝策略。所述剪枝策略为:由于任务的IPS与每一维度资源都是正相关的关系,因此,如果遍历到某一维度的某个取值时,其后续各维度都取得最大资源用量的情况下仍然不能达到目标IPS,则可以直接回溯,无需进行后续遍历。并且计算每次遍历预测的IPS达标的情况下的cost函数值,最后输出预测IPS达标且cost函数值最小的多维资源向量(CPU,内存,LLC缓存,内存带宽)。
整体预测过程如图3所示。首先,确定多维向量的输入集合,任务可用的多维资源用量也都有着一定的取值范围,负载情况tasks由实时监控模块获取,因此输入向量(CPU,内存,LLC缓存,内存带宽,负载情况tasks)可以构造一个有限的集合;之后初始化多维向量的遍历顺序,依次从CPU、内存、LLC缓存、内存带宽的资源用量按照从高到低的顺序遍历整个输入集合;然后,将遍历过程中的每次取值输入给上述资源模型进行IPS预测,并且结合剪枝策略判断是否进行剪枝,如果满足剪枝条件,则继续遍历下一个取值,否则计算当前cost函数值,判断是否为新的最小cost的资源向量,如果是,则更新结果,否则直接判断输入集合是否遍历完毕,如果是则输出当前最小cost的资源向量,否则返回继续遍历。
多维资源隔离控制模块中包括CPU、内存资源隔离控制子模块和LLC缓存、内存带宽隔离控制子模块,从模块实现的技术方案角度,分两个子模块来介绍多为资源隔离控制模块,分别为CPU、内存资源隔离控制子模块和LLC缓存、内存带宽隔离控制子模块。
针对现有技术方案采用Cgroup的CPU子系统进行隔离的问题,CPU、内存资源隔离控制子模块对不同优先级任务间的CPU隔离使用了CPU核心绑定的方法。将单节点的CPU资源以逻辑核为单位划分成高优先组和低优先组,调度任务时,分别将不同优先级的任务放入各自的CPU逻辑核分组中执行,避免他们因抢占或频繁的CPU调度产生干扰。具体实现方式为使用Cgroup的Cpuset子系统,分别创建两个同级别的分组节点,分别放置不同优先级的任务,通过修改cpuset.cpus参数实现对不同优先级任务组可用逻辑核的绑定。本模块为了保证高优先任务在运行时可占用到足够的内存,使用了Cgroup的Memory子系统实现对目标进程的可使用内存容量上限的硬隔离。实现方案为在Cgroup的Memory子系统下,分别创建两个同级别的不同优先级任务分组,使得不同任务任务在启动时分别放入两个分组,运行时通过配置各自分组下的memory.limit_in_bytes参数实现对任务可用的内存容量进行限制,保障高优先级任务可以占用足够的内存。
LLC缓存、内存带宽隔离控制子模块采用了Intel CPU提供的CAT(CacheAllocation Technology)技术对不同优先级任务进行LLC缓存容量的划分。具体实现方案需要结合Cpuset子系统对不同优先级任务分组CPU逻辑核绑定实现,分别获取到高优先级和低优先级任务分组所占用的CPU逻辑核编号,基于Intel CAT技术提供的接口,将逻辑核分组设置为CAT中的两个控制组,在运行时通过对CAT中的低优先任务组的可占有的LLC缓存ways值进行修改,即可限制低优先级任务可使用的LLC缓存量的上限,该方法的隔离粒度为cacheway粒度。高优先任务组可使用的LLC缓存上限不做限制,默认可以使用全部缓存,这种方案就可以保证高优先级任务可使用的缓存下限,在资源空闲时,高优先任务也可以占用更多的LLC缓存,在资源争用时,除了可以达到可使用的缓存下限外,优先级高的任务也可以与优先级低的任务公平竞争共用的缓存资源。因此这种方案可以更好的保障待隔离的高优先级任务的LLC缓存持有量。类似的,本子模块采用Intel CPU提供的MBA(MemoryBandwidth Allocation)技术实现对不同优先级任务进行了可用内存带宽的隔离。具体实现方案与LLC缓存隔离方案类似,结合了Cpuset子系统对不同优先级的任务分组CPU逻辑核绑定的实现,分别获取到两组任务所占用的CPU逻辑核编号,基于IntelMBA技术提供的接口,将逻辑核分组设置为MBA中的两个控制组,运行时通过对低优先级任务组的内存带宽可用的百分比上限调整,可以限制其使用内存带宽上限,该方法的隔离粒度为节点内存带宽总量的10%。高优先级任务组可使用的内存带宽上限则不进行限制,默认可使用全部内存带宽,因此该方案可以保证高优先级任务组的可用内存带宽下限,在资源空闲时,高优先级任务组可使用全部内存带宽,在资源争用时,除了可使用的内存带宽下限外,优先级高的任务也可以跟优先级低的任务公平竞争共用部分的内存带宽资源。因此可以更好地为待隔离的高优先级任务提供内存带宽资源的保障。
接收到实时资源使用量预测模块输出的多维资源隔离配额后,通过上述两个资源隔离控制子模块分别对高优先级和低优先级分组的CPU、内存、LLC缓存和内存带宽隔离配额进行调整。从而实现多维资源隔离配额的动态调节。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种为不同优先级任务提供多维度资源隔离的隔离系统,其特征在于,包括多维资源占用量建模模块,实时资源使用量预测模块,多维资源隔离控制模块;所述多维资源占用量建模模块进行任务历史信息收集,使用回归算法建立多维资源占用量映射到进程每秒执行的指令数的资源模型;所述实时资源使用量预测模块,所述实时资源使用量预测模块进行任务负载实时监控和多维资源使用量预测,所述预测方式为获取到实时负载和预设的希望保证的每秒执行的指令数标准后,结合所述多维资源占用量建模模块输出的资源模型,将实时负载和希望保证的每秒执行的指令数作为输入,输出的模型预测结果,所述模型预测结果为该任务的实时资源隔离配额;所述多维资源隔离控制模块,接收来自所述资源使用量预测模块输出的预测结果,对不同优先级的任务进行隔离配额的调整。
2.如权利要求1所述的系统,其特征在于,所述多维资源占用量建模模块进行所述任务历史信息收集包括改变特定任务的资源上限并实时监测特定动态;所述改变特定任务的资源上限包括动态改变特定任务的cpu、内存、LLC缓存、内存带宽等四个维度的资源使用上限,所述实时监测特定动态实时监测特定任务的cpu、内存、LLC缓存、内存带宽等四个维度的资源占用量、任务当前负载以及任务进程的实时每秒执行的指令数。
3.如权利要求2所述的系统,其特征在于,所述多维资源占用量建模模块实现回归算法生成资源模型的具体方式为首先对数据进行预处理,预处理过程主要为根据每秒执行的指令数与CPU利用率的比值分布去除异常值,采用渐进梯度回归树算法对任务的历史信息建模,得到该任务的向量到每秒执行的指令数的映射模型,所述向量为(CPU,内存,LLC,内存带宽,负载情况tasks)。
4.如权利要求3所述的系统,其特征在于,所述实时资源使用量预测模块进行多维资源使用量预测的方式为,设置资源消耗函数:
cost(X)=wcpu*xcpu+·wmem*xmem+wllc*xllc+wmbw*xmbw
其中,xcpu、xmen、xllc、xmbw则表示了分配给该任务的CPU、内存、LLC缓存和内存带宽资源量,wcpu、wmen、wllc、wmbw则表示了分配给该任务的CPU、内存、LLC缓存和内存带宽资源资源维度的权重,然后遍历可能的资源向量组合,使用剪枝策略预测出每秒执行的指令数预测值,得到最低资源消耗。
5.如权利要求4所述的系统,其特征在于,多维资源隔离控制模块包括两个子模块,所述子模块为CPU、内存资源隔离控制子模块和LLC缓存、内存带宽隔离控制子模块;所述CPU、内存资源隔离控制子模块对不同优先级任务间的CPU隔离使用了CPU核心绑定的方法,将单节点的CPU资源以逻辑核为单位划分成高优先组和低优先组,调度任务时,分别将不同优先级的任务放入各自的CPU逻辑核分组中执行,也将不同优先级的任务划分到不同的内存资源分组中执行;所述LLC缓存、内存带宽隔离控制子模块对不同优先级任务进行LLC缓存容量的划分和对不同优先级任务进行了可用内存带宽的隔离。
6.如权利要求5所述的系统,其特征在于,所述隔离系统进行多维资源隔离的控制步骤为:步骤1,启动特定待隔离任务进程,所述多维资源占用量建模模块对待隔离进程进行多维资源占用量实时检测和数据收集,同时对待隔离进程开启多维资源配额上限动态调整脚本,然后使用渐进梯度回归数算法建立资源模型,所述资源模型输入为多维资源向量以及当前的负载情况,所述资源模型输出为待隔离进程的每秒执行的指令数;步骤2,对所述待隔离任务施加负载,所述实时资源使用量预测模块对所述待隔离任务进行监控,获取其运行时的实时负载情况,结合获取最小资源占用量的算法以及所述多维资源占用量建模模块输出的资源模型,预测出要达到待隔离任务理想的目标每秒执行的指令数,输出预测结果,所述预测结果是需要给其分配的多维度资源向量;步骤3,所述多维资源隔离控制模块对待隔离任务和其他任务进行分组对资源占用量进行隔离控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811397832.6A CN109542603B (zh) | 2018-11-22 | 2018-11-22 | 一种提高不同优先级任务间隔离性的多维资源隔离系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811397832.6A CN109542603B (zh) | 2018-11-22 | 2018-11-22 | 一种提高不同优先级任务间隔离性的多维资源隔离系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542603A true CN109542603A (zh) | 2019-03-29 |
CN109542603B CN109542603B (zh) | 2023-11-03 |
Family
ID=65849535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811397832.6A Active CN109542603B (zh) | 2018-11-22 | 2018-11-22 | 一种提高不同优先级任务间隔离性的多维资源隔离系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542603B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111028931A (zh) * | 2019-12-11 | 2020-04-17 | 医渡云(北京)技术有限公司 | 医疗数据处理方法及装置、电子设备、存储介质 |
CN111158888A (zh) * | 2019-12-31 | 2020-05-15 | 北京明略软件系统有限公司 | 多任务调度方法和装置 |
CN111355606A (zh) * | 2020-02-10 | 2020-06-30 | 天津大学 | 面向web应用的容器集群自适应扩缩容系统和方法 |
CN111798113A (zh) * | 2020-06-28 | 2020-10-20 | 北京小米松果电子有限公司 | 资源分配方法、装置、存储介质和电子设备 |
CN111796934A (zh) * | 2020-06-28 | 2020-10-20 | 北京小米松果电子有限公司 | 任务下发方法、装置、存储介质和电子设备 |
CN112068960A (zh) * | 2020-09-10 | 2020-12-11 | 华云数据控股集团有限公司 | 一种cpu资源分配方法、装置、存储介质及设备 |
CN112559147A (zh) * | 2020-12-08 | 2021-03-26 | 和美(深圳)信息技术股份有限公司 | 基于gpu占用资源特点的动态匹配算法、系统和设备 |
CN113742158A (zh) * | 2020-06-15 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 系统容量规划的方法和装置 |
CN114609589A (zh) * | 2022-03-09 | 2022-06-10 | 电子科技大学 | 一种基于启发式回溯的实时相控阵雷达波束驻留调度方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697141A (zh) * | 2009-10-30 | 2010-04-21 | 清华大学 | 网格中基于历史数据建模的作业性能预测方法 |
US20140068624A1 (en) * | 2012-09-04 | 2014-03-06 | Microsoft Corporation | Quota-based resource management |
US20170075709A1 (en) * | 2015-09-11 | 2017-03-16 | International Business Machines Corporation | Predictively provisioning cloud computing resources for virtual machines |
US20170126795A1 (en) * | 2015-10-29 | 2017-05-04 | Capital One Services, Llc | Automated server workload management using machine learning |
US20170201574A1 (en) * | 2016-01-11 | 2017-07-13 | Alibaba Group Holding Limited | Method, system, and device for allocating resources in a server |
-
2018
- 2018-11-22 CN CN201811397832.6A patent/CN109542603B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697141A (zh) * | 2009-10-30 | 2010-04-21 | 清华大学 | 网格中基于历史数据建模的作业性能预测方法 |
US20140068624A1 (en) * | 2012-09-04 | 2014-03-06 | Microsoft Corporation | Quota-based resource management |
US20170075709A1 (en) * | 2015-09-11 | 2017-03-16 | International Business Machines Corporation | Predictively provisioning cloud computing resources for virtual machines |
US20170126795A1 (en) * | 2015-10-29 | 2017-05-04 | Capital One Services, Llc | Automated server workload management using machine learning |
US20170201574A1 (en) * | 2016-01-11 | 2017-07-13 | Alibaba Group Holding Limited | Method, system, and device for allocating resources in a server |
Non-Patent Citations (2)
Title |
---|
XIAOYANG SUN 等: "ROSE: Cluster Resource Scheduling via Speculative", 《IEEE》 * |
XIAOYANG SUN 等: "ROSE: Cluster Resource Scheduling via Speculative", 《IEEE》, 23 July 2018 (2018-07-23), pages 949, XP033375946, DOI: 10.1109/ICDCS.2018.00096 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111028931B (zh) * | 2019-12-11 | 2023-08-22 | 医渡云(北京)技术有限公司 | 医疗数据处理方法及装置、电子设备、存储介质 |
CN111028931A (zh) * | 2019-12-11 | 2020-04-17 | 医渡云(北京)技术有限公司 | 医疗数据处理方法及装置、电子设备、存储介质 |
CN111158888A (zh) * | 2019-12-31 | 2020-05-15 | 北京明略软件系统有限公司 | 多任务调度方法和装置 |
CN111355606A (zh) * | 2020-02-10 | 2020-06-30 | 天津大学 | 面向web应用的容器集群自适应扩缩容系统和方法 |
CN111355606B (zh) * | 2020-02-10 | 2021-12-28 | 天津大学 | 面向web应用的容器集群自适应扩缩容系统和方法 |
CN113742158A (zh) * | 2020-06-15 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 系统容量规划的方法和装置 |
CN111798113A (zh) * | 2020-06-28 | 2020-10-20 | 北京小米松果电子有限公司 | 资源分配方法、装置、存储介质和电子设备 |
CN111796934A (zh) * | 2020-06-28 | 2020-10-20 | 北京小米松果电子有限公司 | 任务下发方法、装置、存储介质和电子设备 |
CN111796934B (zh) * | 2020-06-28 | 2023-11-21 | 北京小米松果电子有限公司 | 任务下发方法、装置、存储介质和电子设备 |
CN112068960A (zh) * | 2020-09-10 | 2020-12-11 | 华云数据控股集团有限公司 | 一种cpu资源分配方法、装置、存储介质及设备 |
CN112068960B (zh) * | 2020-09-10 | 2024-02-06 | 华云数据控股集团有限公司 | 一种cpu资源分配方法、装置、存储介质及设备 |
CN112559147A (zh) * | 2020-12-08 | 2021-03-26 | 和美(深圳)信息技术股份有限公司 | 基于gpu占用资源特点的动态匹配算法、系统和设备 |
CN112559147B (zh) * | 2020-12-08 | 2024-04-19 | 和美(深圳)信息技术股份有限公司 | 基于gpu占用资源特点的动态匹配方法、系统和设备 |
CN114609589B (zh) * | 2022-03-09 | 2023-08-11 | 电子科技大学 | 一种基于启发式回溯的实时相控阵雷达波束驻留调度方法 |
CN114609589A (zh) * | 2022-03-09 | 2022-06-10 | 电子科技大学 | 一种基于启发式回溯的实时相控阵雷达波束驻留调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109542603B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542603A (zh) | 一种提高不同优先级任务间隔离性的多维资源隔离系统 | |
Das et al. | Application-to-core mapping policies to reduce memory system interference in multi-core systems | |
Alaei et al. | RePro-Active: a reactive–proactive scheduling method based on simulation in cloud computing | |
US8813091B2 (en) | Distribution data structures for locality-guided work stealing | |
Zhou et al. | Processor-pool-based scheduling for large-scale numa multiprocessors | |
Lim et al. | Zico: Efficient {GPU} memory sharing for concurrent {DNN} training | |
CN102081551A (zh) | 一种感知微体系结构信息的操作系统线程调度方法 | |
Gandomi et al. | HybSMRP: a hybrid scheduling algorithm in Hadoop MapReduce framework | |
Akilandeswari et al. | Survey and analysis on Task scheduling in Cloud environment | |
Fang et al. | A memory scheduling strategy for eliminating memory access interference in heterogeneous system | |
KR20210148586A (ko) | 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 가속기 시스템 | |
CN110546612A (zh) | 导向型优化资源调度 | |
Gracioli et al. | Two‐phase colour‐aware multicore real‐time scheduler | |
Chen et al. | Data prefetching and eviction mechanisms of in-memory storage systems based on scheduling for big data processing | |
Bitalebi et al. | Criticality-aware priority to accelerate GPU memory access | |
Wang et al. | A round robin with multiple feedback job scheduler in Hadoop | |
CN110928649A (zh) | 资源调度的方法和装置 | |
CN112068955B (zh) | 一种异构多核平台处理器内的通信优化方法及电子设备 | |
CN112965808A (zh) | 一种深度学习预测服务系统的优化方法 | |
Modi et al. | CABARRE: Request Response Arbitration for Shared Cache Management | |
Nabavinejad et al. | Data locality and VM interference aware mitigation of data skew in hadoop leveraging modern portfolio theory | |
Bruns et al. | Empirical study of Amdahl’s law on multicore processors | |
Ramkumar | Making the Most of Serverless Accelerators | |
Ast et al. | A general approach for an automatic parallelization applied to the finite element code PERMAS | |
Rohlin et al. | High performance scheduling of mixed-mode DAGs on heterogeneous multicores |
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 |