基于容器工作性质的资源调度方法和装置制造方法及图纸

技术编号:15690695 阅读:218 留言:0更新日期:2017-06-24 03:17
本发明专利技术公开了一种基于容器工作性质的资源调度方法和装置,所述方法包括:对宿主机中各容器进行监视;统计当前统计分析周期时间内各个容器的IO信息,判断容器的工作性质是IO密集型还是非IO密集型;将不同类型的容器放入不同的队列中,采用不同的调度策略。本发明专利技术所述方法和装置,针对不同容器对IO操作和CPU计算需求上的差异,分别进行资源调度,在降低IO请求延迟的同时提供了足够的CPU时间用于处理IO请求,并且额外开销较小,具有良好的可适性。

Resource scheduling method and device based on the nature of container work

The invention discloses a method and apparatus for resource scheduling of container based on the nature of the work, the method includes: to monitor the host container; the current statistics statistical analysis for each container the cycle time of the IO information, determine the nature of the container is IO intensive or non IO intensive; the different types of containers in a different cohort, using different scheduling strategies. The method and device of the invention, according to the different needs of the container calculates the difference of IO operation and CPU, respectively, in resource scheduling, while reducing the IO request delay provides enough CPU time for processing IO requests, and small overhead, good adaptation.

【技术实现步骤摘要】
基于容器工作性质的资源调度方法和装置
本专利技术涉及互联网
,尤其涉及一种基于容器工作性质的资源调度方法和装置。
技术介绍
LXC(LinuxContainer)容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的命名空间(NameSpace)。容器有效地将由单个操作装置管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。Docker项目的目标是实现轻量级的操作装置虚拟化解决方案。在LXC的基础上,Docker进行了进一步的封装,让用户不需要去关心容器的管理,操作Docker的容器就像操作快速轻量级的虚拟机一样简单。Docker和传统虚拟化(KVM、XEN等)方式的不同之处在于:容器是在操作装置层面上实现虚拟化,直接复用本地主机的操作装置,而传统方式则是在硬件的基础上,虚拟出自己的装置,再在装置上部署相关的APP应用。如图1所示,跟传统VM比较具有如下优点:1)操作启动快;2)轻量级虚拟化;3)开源免费;4)前景及云支持。Docker核心解决的问题是利用LXC来实现类似VM的功能,从而利用更加节省的硬件资源供给用户更多的计算机资源。随着Docker的发展,在一台Docker宿主机中启动的容器越来越多。而且,Docker宿主机内部的容器数量和状态经常发生变化。如何对其进行性能管理及体验保证成为越来越需要关注的问题。现有技术中,宿主机中的容器既有I/O方面的任务也有数据处理等方面的任务。传统的资源调度方法把公平性放在第一位,将I/O任务和CPU任务等同对待,导致I/O效率低下。针对这种情况,提出了多种优化方法,例如将任务划分为纯I/O操作和纯CPU计算,没有考虑到I/O操作也需要CPU处理,影响I/O任务的效率;另一方面,容器的工作性质只能在初始化过程中进行指定,但是,容器在运行时也可能会改变成为其它性质,此时则无法对调度策略进行调整。综上所述,现有方法可以在一定程度上改善I/O延迟,但是不能适应容器的动态变化,同样会影响其I/O性能。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种基于容器工作性质的资源调度方法和装置,用以克服上述问题或者至少部分地解决或者减缓上述问题的I/O性能缺陷。根据本专利技术的一个方面,提供了一种基于容器工作性质的资源调度方法,包括一种基于容器工作性质的资源调度方法,包括:对宿主机中各容器进行监视;统计当前统计分析周期时间内各个容器的IO信息,判断容器的工作性质是IO密集型还是非IO密集型;将不同类型的容器放入不同的队列中,采用不同的调度策略。可选地,所述对宿主机中各容器进行监视包括:扫描宿主机内的容器,为每个容器配置对应的进程;各个进程同步抽取各自容器的状态信息;对各容器的状态信息进行处理,得到监控信息;将所有容器的监控信息汇总到数据队列中,每个容器的监控信息利用容器标识进行区分。可选地,所述统计当前统计分析周期时间内各个容器的IO信息,判断容器的工作性质是IO密集型还是非IO密集型包括:将各容器的中断频率按照从高到低进行排列,将中断频率高于平均值的容器判断为IO密集型,将中断频率低于平均值的容器判断为非IO密集型。可选地,所述将不同类型的容器放入不同的队列中,采用不同的调度策略包括:将IO密集型的容器放入IO密集型队列中,将非IO密集型的容器放入非IO密集型队列中。可选地,所述将IO密集型的容器放入IO密集型队列中,将非IO密集型的容器放入非IO密集型队列中进一步包括:在连续几个统计分析周期中都判断为IO密集型容器的情况下才将其放入IO密集型队列中。可选地,所述将不同类型的容器放入不同的队列中,采用不同的调度策略包括:降低IO密集型队列的CPU时间片调整周期;保持非IO密集型队列的CPU时间片调整周期。可选地,所述将不同类型的容器放入不同的队列中,采用不同的调度策略包括:根据根据IO密集型队列中各容器的实时CPU空闲率之和动态调度时间片。根据本专利技术的另一个方面,提供了一种基于容器工作性质的资源调度装置,包括:监控模块,对宿主机中各容器进行监视;判断模块,统计当前统计分析周期时间内各个容器的IO信息,判断容器的工作性质是IO密集型还是非IO密集型;调度模块,将不同类型的容器放入不同的队列中,采用不同的调度策略。可选地,所述监控模块包括:扫描子模块,扫描宿主机内的容器,为每个容器配置对应的进程;抽取子模块,各个进程同步抽取各自容器的状态信息;处理子模块,对各容器的状态信息进行处理,得到监控信息;汇总子模块,将所有容器的监控信息汇总到数据队列中,每个容器的监控信息利用容器标识进行区分。可选地,所述判断模块,将各容器的中断频率按照从高到低进行排列,将中断频率高于平均值的容器判断为IO密集型,将中断频率低于平均值的容器判断为非IO密集型。可选地,所述调度模块,将IO密集型的容器放入IO密集型队列中,将非IO密集型的容器放入非IO密集型队列中。可选地,所述调度模块在连续几个统计分析周期中都判断为IO密集型容器的情况下才将其放入IO密集型队列中。可选地,所述调度模块将不同类型的容器放入不同的队列中,采用不同的调度策略包括:降低IO密集型队列的CPU时间片调整周期;保持非IO密集型队列的CPU时间片调整周期。可选地,所述调度模块将不同类型的容器放入不同的队列中,采用不同的调度策略包括:根据根据IO密集型队列中各容器的实时CPU空闲率之和动态调度时间片。本专利技术实施例所述基于容器工作性质的资源调度方法和装置,针对不同容器对IO操作和CPU计算需求上的差异,分别进行资源调度,在降低IO请求延迟的同时提供了足够的CPU时间用于处理IO请求,并且额外开销较小,具有良好的可适性。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示意性示出了VM技术和容器技术对比示意图;图2示意性示出了根据本专利技术一个实施例的基于容器工作性质的资源调度方法的流程图;图3示意性示出了根据本专利技术一个实施例的对宿主机中各容器进行监视的流程图;图4示意性示出了根据本专利技术一个实施例的基于容器工作性质的资源调度装置的框图;图5示意性示出了根据本专利技术一个实施例的监控模块的框图。具体实施例下面结合附图和具体的实施方式对本专利技术作进一步的描述。图2示意性示出了根据本专利技术一个实施例的基于容器工作性质的资源调度方法的流程图,如图2所示,包括以下步骤:步骤101,对宿主机中各容器进行监视;如图3所示,在本实施例中,对宿主机中各容器进行监视包括以下子步骤:步骤1011,扫描宿主机内的容器,为每个容器配置对应的进程;具体地,在宿主机内部启动本地监控程序,定时扫描宿主机内处于存活状态的主机,为其创建对应的进程,并将容器名称记录在容器列表中。通过上述本文档来自技高网
...
基于容器工作性质的资源调度方法和装置

【技术保护点】
一种基于容器工作性质的资源调度方法,其特征在于,包括:对宿主机中各容器进行监视;统计当前统计分析周期时间内各个容器的IO信息,判断容器的工作性质是IO密集型还是非IO密集型;将不同类型的容器放入不同的队列中,采用不同的调度策略。

【技术特征摘要】
1.一种基于容器工作性质的资源调度方法,其特征在于,包括:对宿主机中各容器进行监视;统计当前统计分析周期时间内各个容器的IO信息,判断容器的工作性质是IO密集型还是非IO密集型;将不同类型的容器放入不同的队列中,采用不同的调度策略。2.如权利要求1所述的基于容器工作性质的资源调度方法,其特征在于,所述对宿主机中各容器进行监视包括:扫描宿主机内的容器,为每个容器配置对应的进程;各个进程同步抽取各自容器的状态信息;对各容器的状态信息进行处理,得到监控信息;将所有容器的监控信息汇总到数据队列中,每个容器的监控信息利用容器标识进行区分。3.如权利要求1所述的基于容器工作性质的资源调度方法,其特征在于,所述统计当前统计分析周期时间内各个容器的IO信息,判断容器的工作性质是IO密集型还是非IO密集型包括:将各容器的中断频率按照从高到低进行排列,将中断频率高于平均值的容器判断为IO密集型,将中断频率低于平均值的容器判断为非IO密集型。4.如权利要求1所述的基于容器工作性质的资源调度方法,其特征在于,所述将不同类型的容器放入不同的队列中,采用不同的调度策略包括:将IO密集型的容器放入IO密集型队列中,将非IO密集型的容器放入非IO密集型队列中;在连续几个统计分析周期中都判断为IO密集型容器的情况下才将其放入IO密集型队列中。5.如权利要求1所述的基于容器工作性质的资源调度方法,其特征在于,所述将不同类型的容器放入不同的队列中,采用不同的调度策略包括:降低IO密集型队列的CPU时间片调整周期;保持非IO密集型队列的CPU时间片调整周期;根据根据IO密集型队列中各容器的实时CPU空闲率之和动态调度时间...

【专利技术属性】
技术研发人员:刘金东
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1