容器云资源调度策略的改进∗

2017-11-17 07:17崔广章朱志祥
计算机与数字工程 2017年10期
关键词:利用率内存容器

崔广章 朱志祥

(西安邮电大学物联网与两化融合研究院 西安 710061)

容器云资源调度策略的改进∗

崔广章 朱志祥

(西安邮电大学物联网与两化融合研究院 西安 710061)

为了均衡利用容器云集群的资源,对Mesos的资源调度策略做了改进。改进的资源调度策略是在原有调度策略的基础上,把Mesos-Slave节点的CPU使用率、内存的占有率以及运行的容器个数考虑进去,并对三者加权来做为接下来资源调度的依据。最后通过改进前后集群资源利用率的对比,验证了改进后资源调度策略能够使集群资源利用率趋于均衡。

容器云;集群资源利用率;资源调度策略

1 引言

随着容器[1]化技术的发展,容器化技术正在成为应用交付的新标准,基于容器化技术的云平台将成为下一代云计算的核心。在部署容器云的平台中,容器的调度使用对于业务系统的正常运行和系统的稳健性起着非常关键的作用。各大互联网公司正逐渐地使用容器化技术代替传统的虚拟机技术。由于业务的扩展需要,对资源的需求分配也越来越高,为了满足需求Mesos通过两层调度框架完成作业,且不会在资源不够的节点上运行任务,但这种资源调度分配方法[2]不能均衡的分配资源,造成个别节点上的容器数过多而致使部署在节点上的业务应用过载。在这种情况下,无法均衡的分布容器集群,合理的利用集群资源。导致节点的可维护性变差,容器集群出现故障。在以下情况时会导致Mesos集群中的任务运行出现故障:

1)当有多个框架时,会给Mesos调度架构带来压力,会使相同框架下的任务较为集中,容错性无法保证;

2)Master节点得到资源需求响应后,采用轮询的调度算法,可能会使某些Slave节点的任务过多而导致系统崩溃,宕机等状况。

在出现上述情况时,会导致某些节点出现运行过载,内存和CPU资源耗尽等状况。严重时可能导致业务系统故障,需要重新启动,这对于核心系统来说是不可接受的。

针对DRF作为通用的多资源公平分配算法[3~5],在集群环境下可能有失公平性的问题,有通过在Mesos框架中DRF多资源公平分配算法的基础上,设计并实现了增加机器性能评估影响因子的me-DRF[6]分配算法,使得计算任务有均等的机会获得优质计算资源和劣质计算资源。也有的根据BESIII集群的实际需求,在测试和研究了不同类型的高能物理数据处理作业不同配置机器上的运行效果的基础上,提出了一种改进的DRF资源分配算法[7],加入了机器性能评级和作业类型匹配两个因素作为资源调度的依据,对算法进行实现并使用真实数据进行了实验测试。测试结果表明:新算法能够更加合理地分配资源,有效提高系统资源利用率,缩短作业运行时间。

但在大规模容器云集群环境下针对1)、2)中的问题还没有一个比较好的解决方案,本文将通过考虑Mesos-Slave节点的CPU使用率、内存的占有率以及运行的任务个数,把任务细粒度的分发到各个slave节点,从而实现集群资源被均衡利用。

2 Mesos资源调度策略

2.1 Mesos资源调度策略原理架构

目前业内通常的做法是采用 Mesos[8~9]对容器资源进行调度,Mesos的Master节点作为资源整合的分配节点,Mesos的Slave节点作为容器的宿主机。Mesos采用双层调度架构,第一层mesos将资源分配给框架,Master节点根据Framework响应的资源需求信息,对资源列表进行过滤,再进行二级调度。系统架构图如图1所示。

图1 传统资源调度架构图

如图1所示,Mesos的调度工作流程采用双层调度架构进行调度,Slave节点主动的向Master节点汇报资源空闲情况,Master节点根据获取的Slave节点的空闲资源情况向Framework发出资源邀约,资源邀约中的资源若满足Framework上的作业需求时,则Framework的Scheduler单元向Master响应资源需求,Master节点根据CPU和内存对Slave节点进行过滤,在剩余满足资源需求的Slave节点中,再根据轮询调度算法进行节点的选取,并向Framework的Executor分配资源并启动容器执行任务。这样可以保证作业的顺利执行。

2.2 Mesos资源调度算法

在任何共享的计算机系统中,资源分配都是一个关键的构建模块。已经提出的最通用的分配策略是max-min fairness,这种策略会最大化系统中一个用户收到的最小分配。假设每一个用户都有足够地请求,这种策略会给予每个用户一份均等的资源。广义的max-min fairness包括权重(weight)的概念,用户可以获得与它的权重成正比的那一份资源。

Mesos用到的就是一种通用的多资源的max-min fairness分配策略。DRF[10]背后的直观想法是在多环境下一个用户的资源分配应该由用户的dominant share(主导份额的资源)决定,dominant share是在所有已经分配给用户的多种资源中,占据最大份额的一种资源。简而言之,DRF试图最大化所有用户中最小的dominant share。例如,假如用户A运行CPU密集的任务而用户B运行内存密集的任务,DRF会试图均衡用户A的CPU资源份额和用户B的内存资源份额。在单个资源的情形下,那么DRF就会退化为max-min fairness。

DRF有四种主要特性,分别是:

1)sharing incentive:每一个用户都必须更好地共享集群,而不是在集群中专享他们自己的分区。考虑一个集群具有相同的节点(每个节点都一样)和n个用户,一个用户不能在超过1/n资源的集群分区中分配更多的任务。一个用户最多只能分享1/n的资源;

2)strategy-proofness:用户不能从谎报资源请求中得到好处。用户不能通过欺骗来提升它的分配;

3)Pareto efficiency:不可能出现既能增加一个用户的分配而不会降低至少另一个用户的分配。这个特性非常重要,它使得在满足其他特性的基础上使系统利用率最大化;

4)envy-freeness:一个用户不应该更喜欢其他用户的分配。这点特性包含在公平的概念中。

3 改进后的资源调度策略

3.1 改进后的资源调度策略架构

根据传统资源调度策略存在的问题,结合开源分布式资源管理框架Mesos和注册到Mesos上的Marathon框架来实现对节点资源的均衡分配。在资源分配过程中,考虑了Mesos-Slave节点的CPU使用率、内存的占有率以及运行的任务个数,把任务细粒度的分发到各个Slave节点,提高Slave节点的工作效率和整个生态系统的稳定性。针对频繁性的任务分发、多任务、多框架下的资源分配能够很好的进行应对,保障系统和业务的稳定运行。

优化之后的调度系统架构示意图如图2所示。

图2 优化资源调度系统架构图

如图2所示,系统架构中采用Mesos资源调度框架对作业和任务进行调度,该框架负责对请求资源的作业分配节点执行响应的任务,主要的Mesos-Master节点包含采集单元和分配单元,Mesos-Slave节点主要向Master节点汇报资源,并在其上执行任务。主要流程是Master节点通过采集单元采集和分析各个Slave节点的相关性能指标,再通过核心的资源分配单元对作业进行分配,在各个Slave节点执行对应的任务。工作示意图如图3所示。

如图3所示,Mesos Slave节点会定期的向Master汇报资源空闲情况,同时Master上的收集单元会收集Slave节点的运行情况,包括CPU和内存的使用率以及当前运行的进程个数,当Master获知所有的资源信息和slave节点的状况后,会触发Master的分配策略模块,Master向framework发送资源邀约,描述Slave上的可用资源,Framework会做根据资源的需求情况进行判定,如果满足资源条件,则Framework上的Scheduler就响应Master,并告知其所需资源情况。Master根据得到的CPU和内存需求对资源列表进行过滤,最后Master再通过分配单元的调度算法,来选择合适的Slave节点进行启动任务。

图3 优化资源调度系统工作示意图

3.2 改进后的资源调度策略的采集模块和分配模块

Mesos-Master上的调度模块共有采集模块,分配模块两个单元组成:

1)采集模块:当Master获取到Slave节点上的空闲资源时,会触发Master节点上的采集模块,获取Slave节点的CPU、内存和容器个数。保存在Master节点上。

2)分配模块:当收到Framework上Scheduler的资源响应后,分配单元采用两级调度架构,第一级是过滤掉CPU和内存不符合条件的Slave节点,第二级是根据Slave节点的CPU、内存和容器个数来进行均衡判断选择。

以上两个功能单元的工作流程如图4所示。

图4 采集模块和分配模块工作流程示意图

通过采集模块获取Slave节点空闲的CPU和内存资源,同时获取CPU占用率、内存的使用率和节点上的容器个数。

由于采用二级调度架构,在第一级调度过程中,根据作业所需的CPU个数和内存空间,对资源列表进行第一步的过滤筛选。

由1)获得的CPU占用率、内存使用率和节点上的容器个数所占总容器个数的平均值作为参考因素。根据对于作业的整体需求和重要程度,利用层次分析法[11](AHP)构建判断矩阵求各个权值。判断矩阵的形式如式(1)所示:

其中,aij表示指标i对于指标 j的重要程度。得出权值之后,可以根据一致性检验公式,来判断权值是否达标。一致性指标和一致性比率的公式如式(2)所示:

其中,λmax是判断矩阵的最大特征根[12],n 是比λmax小的最大整数。RI是随机一致性指标,其值参照表如表1所示,

当一致性比率CR<0.1时,认为构建的判断矩阵满足条件,可以作为权值的计算。

表1 随机一致性指标RI值

根据得出的权值和所对应的指标值,进行计算,得出详细的参考指标值。

对得出的资源列表进行Top-N选取,参考指标值越低,表示当前slave节点最优。

调用Framework的Scheduler来在选出的Slave节点上创建任务,执行作业。

4 实验分析

4.1 平台环境

图5中通过Mesos-master和Mesos-slave来对底层资源进行管理,通过Marathon来对上层应用进行管理并对底层资源进行调度,基于Zookeeper来做Mesos-master集群的高可用和信息同步,ETCD/CONFD用来做服务发现、状态更新和ACL规则配置,通过Haproxy来做整个平台的负载均衡。

这整个云平台由三部分组成,分别为基础资源管理部分(MESOS-slave),高可用的应用管理资源调度部分(Zookeeper[13]、Mesos-master、Marathon)和服务发现负载均衡部分(ETCD/CONFD、Haproxy)。各部分环境的详情说明如表2。

图5 容器云架构图

表2 平台环境详情

通过marathon在该集群中按表3发布应用。

表3 应用发布配置详情

4.2 改进前后集群资源利用率对比

优化前集群使用DRF的轮询算法进行资源调度,优化后的集群资源调度算法采用在原来调度算法的基础上对每个Mesos-slave节点上的CPU利用率、内存利用率和容器数进行加权,而且CPU利用率和内存利用率的权重较大。图6、图7分别为优化前后集群CPU利用率和优化前后内存利用率的对比情况。

图6 优化前后集群CPU利用率

图7 优化前后集群内存利用率

由图6、图7可知,优化前集群的CPU利用率和内存占有率都出现部分节点过高,其余节点过低;优化之后集群的CPU利用率和内存占有率都趋于均衡。

5 结语

通过上节的优化前后集群资源利用率的对比图,可以得出如下结论:

1)在Mesos的双层调度架构中,根据Slave节点的CPU利用率、内存占有率和运行的容器个数并对三者进行加权来作为第二层调度的主要参考因素,确保各类作业能够均衡的分配到Slave节点中,可以实现细粒度的任务分配;

2)基于该优化后的Mesos的细粒度调度,可以避免集群中某些节点运行的任务或容器过载,而有些节点的资源空闲的情况发生,使各个Slave节点上运行的任务平衡运行。提高集群的高可用性和资源利用率;确保整个集群运行的稳定性。

[1]佚名.Docker容器与容器云[M].北京:人民邮电出版社,2015.Anonymous.Docker container and container cloud[M].Beijing:Posts and Telecommunications Press,2015.

[2]林伟伟,齐德昱.云计算资源调度研究综述[J].计算机科学,2012,10:1-6.LIN Weiwei,QI Deyu.Research on cloud computing resource scheduling[J].Computer Science Press,2012,10:1-6.

[3]卢笛,马建峰,王一川,等.云计算下保障公平性的多资源分配算法[J].西安电子科技大学学报,2014,41(3):162-168.LU Di,MA Jianfeng,WANG Yichuan,et al.Multi resource allocation algorithm with fairness under cloud computing[J].Journal of Xidian University,2014,41(3):162-168.

[4]王皓轮,倪宏,孙鹏.一种基于效用最大最小公平性的QAM资源分配算法[J].小型微型计算机系统,2013,34(6):1216-1220.WANG Haolun,NI Hong,SUN Peng.A QAM resource allocation algorithm based on utility max min fairness[J].Mini-Micro Systems,2013,34(6):1216-1220.

[5]Asadpour A,Saberi A.An Approximation Algorithm for Max-Min Fair Allocation of Indivisible Goods[J].Siam Journal on Computing,2010,39(7):2970-2989.

[6]柯尊旺,于炯,廖彬.适应异构集群的Mesos多资源调度DRF 增 强 算 法[J].计 算 机 应 用 ,2016,36(5):1216-1221.KE Zunwang,YU Jiong,LIAO Bin.DRF enhancement algorithm for Mesos multi resource scheduling in heterogeneous cluster[J].Journal of Computer Applications,2016,36(5):1216-1221.

[7]霍菁,石京燕,孙功星,等.一种改进的DRF算法对BESIII集群资源管理的优化[J].核电子学与探测技术,2014(10):1153-1158.HUO Jing,SHI Jingyan,SUN Gongxing,et al.An improved DRF algorithm for BESIII cluster resource management optimization[J].Journal of Nuclear Electronics and detection Technology,2014(10):1153-1158.

[8]Hindman B,Konwinski A,Zaharia M,et al.Mesos:A Platform for Fine-Grained Resource Sharing in the Data Center[C]//NSDI.2011,11:22-22.

[9]Meyerson J.Ben Hindman on Apache Mesos[J].IEEE Software,2016,33(1):117-120.

[10]Ghodsi A,Zaharia M,Hindman B,et al.Dominant Resource Fairness:Fair Allocation of Multiple Resource Types[C]//NSDI.2011,11:24-24.

[11]李文雅,欧宜贵.层次分析法在求解某些优化问题中的应用[J].高等数学研究,2007,10(1):62-64.LI Wenya,OU Yigui.The application of analytic hierarchy process in solving some optimization problems[J].Advanced Mathematics Research,2007,10(1):62-64.

[12]王文峰,袁庆祝,陆佃龙.基于Zookeeper综合任务调度平台的设计与应用[J].信息技术,2016(6):181-184.WANG Wefeng,YUAN Qingzhu,LU Dianlong.Design and application of Zookeeper based integrated task scheduling platform[J].Information Technology,2016(6):181-184.

[13] Saha P,Govindaraju M,Marru S,et al.Integrating Apache Airavata with Docker,Marathon,and Mesos[J].Concurrency and Computation:Practice and Experience,2015.

Improved Container Cloud Resource Scheduling Policy

CUI Guangzhang ZHU Zhixiang
(Research Institute of Networking of Things and Integration of Idustrialization and Informatization,Xi'an University of Posts and Telecommunications,Xi'an 710061)

In order to balance the use of container cloud cluster resources,the resource scheduling strategy of Mesos made improvements.Improved resource scheduling policy is based on the original scheduling policy and the CPU usage,share memory and the number of containers of Mesos-Slave nodes run into account,and to do for the next three weighted resource scheduling in accordance with.Finally,by comparing before and after the cluster improved resource utilization,validate the improved resource scheduling strategy can make the cluster resource utilization tends to be balanced.

container cloud,cluster resource utilization,resource management strategy

TN911.23

10.3969/j.issn.1672-9722.2017.10.009

Class Number TN911.23

2017年4月7日,

2017年5月11日

崔广章,男,硕士,研究方向:大数据处理与高性能计算。朱志祥,男,教授,研究方向:云计算与大数据。

猜你喜欢
利用率内存容器
一季度我国煤炭开采和洗选业产能利用率为74.9%
2020年煤炭采选业产能利用率为69.8% 同比下降0.8%
难以置信的事情
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
晶胞参数及空间利用率的相关计算突破
浅议如何提高涉烟信息的利用率
液体对容器底及容器对桌面的压力和压强
取米
内存搭配DDR4、DDR3L还是DDR3?