一种容器资源的调整方法及装置与流程

文档序号:15163838发布日期:2018-08-14 17:11阅读:128来源:国知局
本发明涉及互联网
技术领域
,尤其涉及一种容器资源的调整方法及装置。
背景技术
:日益激烈的市场竞争和不断提高的客户服务质量需求对it业务支撑能力和可靠稳定运行的要求越来越高,从面向客户服务的角度而言,无论何时出现何种情况,都需要企业提供不间断的业务支撑服务,以保证客户满意度、客户服务质量、企业信誉等不受影响,对企业而言也可避免财务损失,增强企业竞争力。随着业务不断互联网化,使得“秒杀”、“抢红包”、“促销”、“大规模接入”等业务模式成为常态,应用系统对资源需求的波峰波谷现象突出,导致业务响应时间变慢的现象。当应用某一个时刻,业务访问量突增的情况下,传统的做法只能实现虚机级弹性伸缩,效果极其有限,系统弹性能力不足,数据架构不具备平行扩展能力来应对突发的业务高峰,忙闲时资源难以有效动态调整,无法做到弹性扩展。目前行业内主要是通过引入docker(容器)技术在同一个宿主机中运行多个容器,各个容器共享同一个主机资源,容器承载了同一个应用,来实现应用和服务的快速扩容,提升业务并发处理性能。然而,该技术存在如下缺点:1)对人的依耐高:容器技术本身及并不提供相应的自动伸缩机机制,只支持手动通过命令的方式进行伸缩,每次应用的访问量突然变大情况下,需要维护人员快速做出处理,才能扩容成功,人工干预比较多,效果不是很理想。2)、缺乏自动伸缩评判的标准:当业务访问量突然剧增的情况下,缺乏一个合理计算方式来评判什么时候应该扩容,什么时候应该缩容。3)、缺乏预处理机制:当宿主机上容器已满配不能扩容且部分容器应用响应慢的情况下,缺乏相应的预处理机制,将会导致业务系统整体响应缓慢的现象。由上可见,现有技术方案人工干预比较多,缺乏自动伸缩评判的标准,无对应的预警处理机制,存在一定的被动性及肓目性。目前大量的运维实践经验表明,即使在后端资源监控比较完善的情况下,用户访问量大的情况下仍人工干预,才能保障业务可持续性,不仅降低用户的满意度,也使it运维工作相当被动,因此有必要寻找一种合适技术手段对容器及业务的性能进行直接监控,结合合理的计算方式,来预估容器什么时候扩什么时候缩,帮助企业全面面对突增的用户访问量,保障用户体验的情况。技术实现要素:本发明所要解决的技术问题是提供一种容器资源的调整方法,预估容器什么时候扩容什么时候缩容,克服现有技术人工干预较多,缺乏自动伸缩评判标准的缺陷。为此目的,本发明提出了一种容器资源的调整方法,=包括:采集宿主机和所述宿主机中多个容器的负载参数;其中,所述负载参数包括cpu使用比率和内存使用比率;当所述宿主机的负载参数满足第一预设条件时,若存在某一容器的负载参数满足第二预设条件,则根据所述多个容器的负载参数,计算目标容器的个数;若所述目标容器的个数大于当前容器的总个数,则新增容器进行扩容操作;其中,所述第一预设条件为所述宿主机的cpu使用比率小于第一阈值且所述宿主机的内存使用比率小于第二阈值;所述第二预设条件为所述容器的cpu使用比率大于第三阈值或所述容器的内存使用比率大于第四阈值。可选的,采集所述多个容器承载的应用的性能参数;其中,所述性能参数包括并发数和响应时间;当所述宿主机的负载参数满足第一预设条件时,若不存在容器的负载参数满足第二预设条件,但存在某一容器承载的应用的性能参数满足第三预设条件,则根据所述多个容器承载的应用的性能参数,计算目标容器的个数;其中,所述第三预设条件为并发数大于第五阈值或响应时间大于第六阈值。可选的,所述若存在某一容器承载的应用的性能参数满足第三预设条件,则根据所述多个容器承载的应用的性能参数,计算目标容器的个数具体包括:若存在某一容器的承载的应用的并发数大于第五阈值,则所述多个容器承载的应用的并发数之和除以所述第五阈值,得到目标容器的个数;若存在某一容器的承载的应用的响应时间大于第六阈值,则所述多个容器承载的应用的响应时间之和除以所述第六阈值,得到目标容器的个数。可选的,该方法还包括:当所述宿主机的负载参数满足第一预设条件、存在某一容器的负载参数满足第二预设条件或存在某一容器承载的应用的性能参数满足第三预设条件时,发出告警提示。可选的,该方法还包括:当所述宿主机的负载参数不满足第一预设条件时,根据所述多个容器的负载参数,查找cpu使用比率最大或内存使用比率最大的容器,控制所述容器进行重启操作。可选的,该方法还包括:若所述目标容器的个数小于等于当前容器的总个数,根据所述多个容器的负载参数,查找cpu使用比率最大或内存使用比率最大的容器;若所述cpu使用比率最大或内存使用比率最大的容器满足所述第二预设条件,则控制所述容器进行重启操作。可选的,该方法还包括:若监测到某一容器的cpu使用比率小于第七阈值,则将所述多个容器的cpu使用比率之和除以所述第七阈值,计算目标容器的个数;若监测到某一容器的内存使用比率小于第八阈值,则将所述多个容器的内存使用比率之和除以所述第七阈值,计算目标容器的个数;若所述目标容器的个数小于当前容器的总个数,则删除若干容器进行缩容操作;其中,所述第七阈值小于第三阈值,所述第八阈值小于第四阈值。可选的,该方法所述进行缩容操作删除的容器个数为当前容器的总个数与所述目标容器的个数之差。可选的,所述若存在某一容器的负载参数满足第二预设条件,则根据所述多个容器的负载参数,计算目标容器的个数,具体包括:若存在某一容器的cpu使用比率大于第三阈值,则将所述多个容器的cpu使用比率之和除以所述第三阈值得到所述目标容器的个数;若存在某一容器的内存使用比率大于第四阈值,则将所述多个容器的内存使用比率之和除以所述第四阈值得到所述目标容器的个数。另一方面,本发明实施例还提供了一种容器资源的调整装置,该装置包括:负载参数采集模块,用于采集宿主机和所述宿主机中多个容器的负载参数;其中,所述负载参数包括cpu使用比率和内存使用比率;容器个数计算模块,用于当所述宿主机的负载参数满足第一预设条件且存在某一容器的负载参数满足第二预设条件时,根据所述多个容器的负载参数,计算目标容器的个数;扩容操作模块,用于当所述目标容器的个数大于当前容器的总个数时,新增容器进行扩容操作;其中,所述第一预设条件为所述宿主机的cpu使用比率小于第一阈值且所述宿主机的内存使用比率小于第二阈值;所述第二预设条件为所述容器的cpu使用比率大于第三阈值或所述容器的内存使用比率大于第四阈值。本发明实施例提供的容器资源的调整方法及装置,在用户访问量突增的情况下,可以通过采集宿主机和容器的负载参数,根据宿主机和容器的负载参数,快速确定目标容器的个数,进而可以自动快速进行扩容操作,无需人工干预,响应快,运维成本小,提高了服务器资源使用效率,避免了性能问题发生,提升了业务的整体性能。附图说明通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:图1为本发明实施例提供一种容器资源的调整方法的流程示意图;图2为本发明实施例提供一种容器资源的调整方法的整体架构示意图;图3为本发明一实施例提供的采集层进行数据采集的流程示意图;图4为本发明一实施例提供的应用性能参数的采集流程示意图;图5为本发明实施例提供的一种容器资源的调整装置的框架示意图;图6为本发明实施例提供的电子设备的结构示意图。具体实施方式下面将结合附图对本发明的实施例进行详细描述。如图1所示,本发明实施例提供了一种容器资源的调整方法,该方法包括:s101:采集宿主机和所述宿主机中多个容器的负载参数;其中,所述负载参数包括cpu使用比率和内存使用比率;具体的,本发明实施例以容器资源的调整装置为执行主体,如图2所示,该装置可以包括采集层、告警层和调度层,采集层可以采用多种监控方式获取宿主机及宿主机中容器的负载参数,获取的负载参数作为后续容器资源调整的参考依据。在一种本发明实施例中,如图3所示,可以通过osagent(资源指标代理)采集宿主机资源负载参数,通过dockeragent(容器指标代理)采集容器资源负载参数。根据需要还可以通过apmagent(应用性能指标代理)采集容器承载的应用的性能参数。需要说明的是,通常业务突增的情况下,业务压力会直接体现到主机资源的消耗上,osagent可以采用非入侵的方式,每隔30秒定期获取宿主机对应的负载参数,如cpu使用率、内存使用率等,并将数据传送给性能指标服务器,性能指标服务器又将数据存储到关系数据库当中,以便后续对消耗情况进行分析,并可以在监控管理web界面进行数据显示。容器本身是依托宿主机而存在的,容器的性能采集主要是通过dockeragent/apmagent来获取,dockeragent主要获取容器负载情况,apmagent主要获取容器承载的应用的性能指标情况。具体可以通过dockeragent每隔30秒调用dockerstats[container_name]命令,收集每个容器的cpu使用比率、内存使用比率以及可用内存总量信息。s102:当所述宿主机的负载参数满足第一预设条件时,若存在某一容器的负载参数满足第二预设条件,则根据所述多个容器的负载参数,计算目标容器的个数;其中,所述第一预设条件为所述宿主机的cpu使用比率小于第一阈值且所述宿主机的内存使用比率小于第二阈值;所述第二预设条件为所述容器的cpu使用比率大于第三阈值或所述容器的内存使用比率大于第四阈值。需要说明的是,该第一阈值、第二阈值、第三阈值和第四阈值可以根据历史运维经验设定。在一种本发明实施例中,第一阈值和第二阈值可以为80%,第三阈值和第四阈值可以为90%。当所述宿主机的负载参数满足第一预设条件时,即当宿主机的cpu使用比率小于80%且宿主机的内存使用比率小于80%时,满足弹性扩容的条件。此时,如果存在某一容器的cpu使用比率大于90%或内存使用比率大于90%,则可以根据每个容器的负载参数,计算出目标容器的个数,即实际所需容器的个数。举例来说,如果存在某一容器的cpu使用比率大于90%,则可以根据每个容器的cpu使用比率以及容器cpu使用比率对应的第三阈值,计算出实际所需的容器个数,即目标容器。s103:若所述目标容器的个数大于当前容器的总个数,则新增容器进行扩容操作;具体的,当目标容器的个数大于当前容器的总个数时,表示实际所需容器的个数大于当前容器的个数,需要增加容器进行扩容操作。其中,增加容器的个数可以是目标容器的个数减去当前容器的总个数。如图2所示,告警层可以在宿主机和容器的cpu负载或内存负载超出阈值时,进行告警。进一步的,调度层可以根据下层采集的数据,进行弹性扩容、弹性缩容等。本发明实施例提供的容器资源的调整方法,在用户访问量突增的情况下,可以通过采集宿主机和容器的负载参数,根据宿主机和容器的负载参数,快速确定目标容器的个数,进而可以自动快速进行扩容操作,无需人工干预,响应快,运维成本小,提高了服务器资源使用效率,避免了性能问题发生,提升了业务的整体性能。进一步的,上述步骤s102若存在某一容器的负载参数满足第二预设条件,则根据所述多个容器的负载参数,计算目标容器的个数,具体包括:若存在某一容器的cpu使用比率大于第三阈值,则将所述多个容器的cpu使用比率之和除以所述第三阈值得到所述目标容器的个数;具体的,若存在某一容器的cpu使用比率大于第三阈值,则可以根据如下公式:其中,ctm为目标容器的个数,ccthr为容器cpu使用比率对应的阈值,即第三阈值,pi为第i个容器的cpu使用比率。当ctm小于等于当前总容器数量值时,不进行扩容操作,否则进行扩容操作,扩容个数为ctm减去当前容器数量值。每次扩容的动作完成5分钟后才可触发第二次伸动作(即扩容操作),10分钟后才可触发第二次缩动作(即缩容操作)。容器弹性伸缩后,因为容器做了新增或者删除,对应的前端软负载均衡设备(如nginx/harproxy),配置文件需要动态更新,这样前台只接入存活的容器。若存在某一容器的内存使用比率大于第四阈值,则将所述多个容器的内存使用比率之和除以所述第四阈值得到所述目标容器的个数。具体的,若存在某一容器的内存使用比率大于第四阈值,则可以根据如下公式:其中,ctm为目标容器的个数,cmthr为容器内存使用比率对应的阈值,即第四阈值,pi为第i个容器的内存使用比率。当ctm小于等于当前总容器数量值时,不进行扩容操作,否则进行扩容操作,扩容个数为ctm减去当前容器数量值。每次扩容的动作完成5分钟后才可触发第二次伸动作,10分钟后才可触发第二次缩动作。在上述实施例的基础上,本发明实施例提供的方法还包括:s201:采集所述多个容器承载的应用的性能参数;其中,所述性能参数包括并发数和响应时间;s202:当所述宿主机的负载参数满足第一预设条件时,若不存在容器的负载参数满足第二预设条件,但存在某一容器承载的应用的性能参数满足第三预设条件,则根据所述多个容器承载的应用的性能参数,计算目标容器的个数;其中,所述第三预设条件为并发数大于第五阈值或响应时间大于第六阈值。具体的,容器承载的应用的性能参数可以通过在容器里面应用所在中间件jvm(java虚拟机)上安装代理探针apmagent,利用字节码技术,获取业务性能指标数据,如业务响应时间、并发数等指标数据。其中,如图4所示,应用性能参数的采集流程如下:(1)classloader(类加载器)将a.class文件装载入jvm,期间调用apmagent在a.class的字节码中嵌入监控代码后,如在业务调用之前及调用之后加入时间戳,来获取业务响应时间,生成a’.class文件;(2)当用户发起请求需调用a.class时,引擎会找到a’.class,a’.class执行a.class正常的业务逻辑;(3)a’.class执行结束后,引擎会将监控数据写入监控数据暂存区;(4)利用rpm(软件包管理器)服务定期向性能指标服务器发送数据,并清理暂存区;通过利用字节码技术实现的apmagent,获取应用性能参数,存在如下优点:1.全方位监测:可实现对应用代码、数据库等服务的全方位监控。2.快速定位问题:可通过分析获取到的性能参数,快速定位错误产生、性能下降的具体原因。3.对应用性能影响小:基于jvm提供字节码技术,对性能的影响基本可以忽略4.安装配置简单:将探针安装至应用服务器即可,在几分钟之内就可以获取监测数据。在上述实施例的基础上,步骤s202若存在某一容器承载的应用的性能参数满足第三预设条件,则根据所述多个容器承载的应用的性能参数,计算目标容器的个数具体包括:若存在某一容器的承载的应用的并发数大于第五阈值,则所述多个容器承载的应用的并发数之和除以所述第五阈值,得到目标容器的个数;若存在某一容器的承载的应用的响应时间大于第六阈值,则所述多个容器承载的应用的响应时间之和除以所述第六阈值,得到目标容器的个数。具体的,如果判断出某一个容器承载的应用的并发数超过设定的第五阈值,可以根据如下公式其中,ctm为目标容器的个数,ccnthr为容器承载的应用的并发数对应的阈值(即第五阈值),pi表示第i个容器应用的并发数。当ctm小于等于当前总容器数量值时,不进行扩容操作,否则进行扩容操作,扩容个数为ctm减去当前容器数量值。每次扩容的动作完成5分钟后才可触发第二次伸动作,10分钟后才可触发第二次缩动作。如果判断出某一个容器承载的应用的响应时间超过设定的第六阈值,可以根据如下公式其中,ctm为目标容器的个数;crtthr为容器应用响应时间对应的阈值,即第六阈值。pi表示第i个容器应用的响应时间。当ctm小于等于当前总容器数量值时,不进行扩容操作,否则进行扩容操作,扩容个数为ctm减少去当前容器数量值。每次扩容的动作完成5分钟后才可触发第二次伸动作,10分钟后才可触发第二次缩动作。在上述实施例的基础上,本发明实施例提供的方法还包括:当所述宿主机的负载参数满足第一预设条件、存在某一容器的负载参数满足第二预设条件或存在某一容器承载的应用的性能参数满足第三预设条件时,发出告警提示。如图2所示,告警层可以根据采集层采集的数据,在发现超出设定的阈值时,进行异常情况告警。同时,支持告警关联及告警指标自定义建模,支持自定义告警。例如,当某容器承载的应用的响应时间在连续5分钟内超过设定的第六阈值,产生告警事件。如下表1所示,举例说明产生告警事件的情况。表1产生告警事件的情况指标采集频率阈值宿主机-cpu使用比率每隔30秒持续1分钟时间>80%宿主机-内存使用比率每隔30秒持续1分钟时间>80%容器主机-cpu使用比率每隔30秒持续1分钟时间>90%容器主机-内存使用比率每隔30秒持续1分钟时间>90%容器应用-并发数每隔30秒持续1分钟时间>8000容器应用-响应时间每隔30秒持续1分钟时间>5秒根据表1,告警层可以在宿主机的cpu使用比率大于80%、宿主机的内存使用比率大于80%、容器的cpu使用比率大于90%、容器的内存使用比率大于90%、容器应用的并发数大于8000或容器应用的响应时间大于5秒时,产生告警事件。在上述实施例的基础上,本发明实施例提供的方法还包括:当所述宿主机的负载参数不满足第一预设条件时,根据所述多个容器的负载参数,查找cpu使用比率最大或内存使用比率最大的容器,控制所述容器进行重启操作。需要说明的是,宿主机的负载参数不满足第一预设条件,即宿主机的cpu使用比率大于等于第一阈值或宿主机的内存使用比率大于等于第二阈值,不符合扩容的条件,则需要进行预处理,参见附图2,调度层除了进行弹性扩容和弹性缩容还包括预处理的功能。预处理操作前提条件是当监测到容器不符合扩缩容条件,在大规模容器场景下,不因部分容器应用响应速度缓慢,导致拖垮整个支撑系统响应时间现象,优先采取重启容器操作,以保障业务可持续性。具体的,可以每30秒获取一次宿主机的cpu及内存使用率,判断使用率是否超过设定的阈值,到达阈值状态持续1分钟时间表示容器不具备扩容的必备条件。针对这种场景,预处理方式:在这个时间段内,找到集群环境下,cpu使用比率最大容器或内存使用比率最大的容器,控制该容器进行自动化重启操作。每次预处理重启完成3分钟后才可触发处理重启完成动作,5分钟后才可触发第二次重启动作。举例来说,可以用c表示宿主机cpu使用比率,m表示宿主机内存使用比率,cm表示得到cpu及内存使用率最高值所属的宿主机,max表示最大值,thr表示阈值。宿主机资源计算条件为:cmmax=max(ci,mi),i=1,2,3,n。判断最大值所属宿主机的cpu使用比率或者内存使用比率是否大于之前所设置的阈值平均值cmmax>avg(cthr,mthr)。>阈值平均值,在最大值所属宿主机中,找到cpu或者内存使用比率最大对应的容器进行自动重启操作。每次预处理重启完成3分钟后才可触发处理重启完成动作,5分钟后才可触发第二次重启动作。<阈值,则按后面预处理机制进行处理。在上述实施例的基础上,本发明实施例提供的方法还包括:若所述目标容器的个数小于等于当前容器的总个数,根据所述多个容器的负载参数,查找cpu使用比率最大或内存使用比率最大的容器;若所述cpu使用比率最大或内存使用比率最大的容器满足所述第二预设条件,则控制所述容器进行重启操作。需要说明的是,当宿主机的负载参数满足第一预设条件,且存在某一容器的负载参数满足第二预设条件,但是计算得到的目标容器的个数小于等于当前容器的总个数时,不符合扩缩容条件。此时,可以每30秒获取一次集群下各容器的cpu使用比率,判断使用比率是否超过设定的阈值,找出最大使用率超过阈值状态持续1分钟时间对应的容器,进行自动化重启操作。还可以每30秒获取一次集群下各容器的内存使用比率,判断使用比率是否超过设定的阈值,找出最大使用率超过阈值状态持续1分钟时间对应的容器,进行自动化重启操作。举例来说,可以用cc表示容器cpu使用率,ccm表示得到cpu使用比率最高值所属的容器,ccthr表示容器cpu使用比率对应的阈值,容器主机资源计算条件为:ccmmax=max(cc1,cc2,cci)),i=i=1,2,3...,n判断最大值所属容器cpu使用比率是否大于当前所设置的阈值(即第三阈值),ccmmax>ccthr。若>阈值,对应的容器进行自动重启操作。每次预处理重启完成3分钟后才可触发处理重启完成动作,5分钟后才可触发第二次重启动作。若<阈值,不进行任何处理。举例来说,可以用cm表示容器内存使用比率,cmm表示得到内存使用比率最高值,cmthr表示容器内存使用比率对应的阈值,容器主机资源计算条件为:cmmmax=max(cm1,cm2,cmi),i=i=1,2,3...,n判断最大值所属容器内存使用比率是否大于当前所设置的阈值(即第四阈值)cmmmax>ccthr,若>阈值,对应的容器进行自动重启操作。每次预处理重启完成3分钟后才可触发处理重启完成动作,5分钟后才可触发第二次重启动作。若<阈值,不进行任何处理。在上述实施例的基础上,本发明实施例提供的方法还包括:若监测到某一容器的cpu使用比率小于第七阈值,则将所述多个容器的cpu使用比率之和除以所述第七阈值,计算目标容器的个数;若监测到某一容器的内存使用比率小于第八阈值,则将所述多个容器的内存使用比率之和除以所述第七阈值,计算目标容器的个数;若所述目标容器的个数小于当前容器的总个数,则删除若干容器进行缩容操作;其中,所述第七阈值小于第三阈值,所述第八阈值小于第四阈值。进一步的,所述进行缩容操作删除的容器个数为当前容器的总个数与所述目标容器的个数之差。需要说明的是,采集层可以每30秒采集一次数据,弹性缩容的前题条件是监测到集群内的容器cpu使用比率或内存使用比率在如下表2所示阈值以下:表2弹性缩容的条件参照表2,第七阈值和第八阈值可以为45%,而第三阈值和第四阈值可以为90%,每次缩容个数的计算公式:其中,ctm为目标容器的个数,cvrthr为容器负载参数对应的阈值(如45%)。如果容器cpu使用比率小于第七阈值(如45%),那么pi为第i个容器的cpu使用比率,cvrthr为容器cpu使用比率对应的第七阈值。如果容器内存使用比率小于第八阈值(如45%),那么pi为第i个容器的内存使用比率,cvrthr为容器内存使用比率对应的第八阈值。当ctm大于等于当前总容器数量值时,不进行缩容操作,否则进行缩容操作,缩容个数为当前容器数量值减去ctm对应值。每次缩容的动作完成30分钟后才可触发第二次伸动作。现有技术容器本身只支持手动通过命令的方式进行伸缩,本发明实施例提供的容器资源的调整方法,实现了自动弹性扩容及弹性缩容,实现容器的智能伸缩功能,减少人工干预。实现容器指标自动提前预警,通过定期采取宿主机/容器应用指标数据,通过对数据采集和分析来捕捉客观变化,顺应业务的发展变化,自动提前发出容器应用预处理信号,保障业务可持续性。对人的依赖度大幅降低。本发明实施例中,容器应用智能预处理,全部依赖实际指标监控数据,根据预处理算法,从技术角度提前进行预警及预处理,,维护人员有足够的时间去预处理方案,对维护人员的技术水平依赖也很大下降。另一方面,如图5所示,本发明实施例还提供了一种容器资源的调整装置,该装置可以采用上述实施例所述的容器资源的调整方法,该装置包括:依次连接的负载参数采集模块51、容器个数计算模块52和扩容操作模块53;负载参数采集模块51用于采集宿主机和所述宿主机中多个容器的负载参数;其中,所述负载参数包括cpu使用比率和内存使用比率;容器个数计算模块52用于当所述宿主机的负载参数满足第一预设条件且存在某一容器的负载参数满足第二预设条件时,根据所述多个容器的负载参数,计算目标容器的个数;扩容操作模块53用于当所述目标容器的个数大于当前容器的总个数时,新增容器进行扩容操作;其中,所述第一预设条件为所述宿主机的cpu使用比率小于第一阈值且所述宿主机的内存使用比率小于第二阈值;所述第二预设条件为所述容器的cpu使用比率大于第三阈值或所述容器的内存使用比率大于第四阈值。具体的,负载参数采集模块51采集宿主机和所述宿主机中多个容器的负载参数;其中,所述负载参数包括cpu使用比率和内存使用比率;容器个数计算模块52当所述宿主机的负载参数满足第一预设条件且存在某一容器的负载参数满足第二预设条件时,根据所述多个容器的负载参数,计算目标容器的个数;当所述目标容器的个数大于当前容器的总个数时,扩容操作模块53新增容器进行扩容操作;其中,所述第一预设条件为所述宿主机的cpu使用比率小于第一阈值且所述宿主机的内存使用比率小于第二阈值;所述第二预设条件为所述容器的cpu使用比率大于第三阈值或所述容器的内存使用比率大于第四阈值。本发明实施例提供的容器资源的调整装置,在用户访问量突增的情况下,可以通过采集宿主机和容器的负载参数,根据宿主机和容器的负载参数,快速确定目标容器的个数,进而可以自动快速进行扩容操作,无需人工干预,响应快,运维成本小,提高了服务器资源使用效率,避免了性能问题发生,提升了业务的整体性能。对于与方法对应的容器资源的调整装置实施例而言,由于其与方法实施例基本相似,达到的技术效果也与方法实施例起到的效果相同,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。再一方面,如图6所示,本发明实施例还提供了一种电子设备,该电子设备可以是上述实施例所述的装置,该电子设备包括至少一个处理器(processor)61、通信接口(communicationsinterface)62、至少一个存储器(memory)63和总线64,其中,处理器61,通信接口62,存储器63通过总线64完成相互间的通信。通信接口62可以用于该电子设备与宿主机之间的信息传输。处理器61可以调用存储器63中的逻辑指令,以执行上述实施例所述的方法,例如包括:采集宿主机和所述宿主机中多个容器的负载参数;其中,所述负载参数包括cpu使用比率和内存使用比率;当所述宿主机的负载参数满足第一预设条件时,若存在某一容器的负载参数满足第二预设条件,则根据所述多个容器的负载参数,计算目标容器的个数;若所述目标容器的个数大于当前容器的总个数,则新增容器进行扩容操作;其中,所述第一预设条件为所述宿主机的cpu使用比率小于第一阈值且所述宿主机的内存使用比率小于第二阈值;所述第二预设条件为所述容器的cpu使用比率大于第三阈值或所述容器的内存使用比率大于第四阈值。此外,上述的存储器63中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:采集宿主机和所述宿主机中多个容器的负载参数;其中,所述负载参数包括cpu使用比率和内存使用比率;当所述宿主机的负载参数满足第一预设条件时,若存在某一容器的负载参数满足第二预设条件,则根据所述多个容器的负载参数,计算目标容器的个数;若所述目标容器的个数大于当前容器的总个数,则新增容器进行扩容操作;其中,所述第一预设条件为所述宿主机的cpu使用比率小于第一阈值且所述宿主机的内存使用比率小于第二阈值;所述第二预设条件为所述容器的cpu使用比率大于第三阈值或所述容器的内存使用比率大于第四阈值。本发明实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:采集宿主机和所述宿主机中多个容器的负载参数;其中,所述负载参数包括cpu使用比率和内存使用比率;当所述宿主机的负载参数满足第一预设条件时,若存在某一容器的负载参数满足第二预设条件,则根据所述多个容器的负载参数,计算目标容器的个数;若所述目标容器的个数大于当前容器的总个数,则新增容器进行扩容操作;其中,所述第一预设条件为所述宿主机的cpu使用比率小于第一阈值且所述宿主机的内存使用比率小于第二阈值;所述第二预设条件为所述容器的cpu使用比率大于第三阈值或所述容器的内存使用比率大于第四阈值。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1