CN113867972B - 一种基于内存资源和服务性能结合的容器内存负载预测方法 - Google Patents

一种基于内存资源和服务性能结合的容器内存负载预测方法 Download PDF

Info

Publication number
CN113867972B
CN113867972B CN202111471717.0A CN202111471717A CN113867972B CN 113867972 B CN113867972 B CN 113867972B CN 202111471717 A CN202111471717 A CN 202111471717A CN 113867972 B CN113867972 B CN 113867972B
Authority
CN
China
Prior art keywords
performance
memory
sliding window
container
service
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
CN202111471717.0A
Other languages
English (en)
Other versions
CN113867972A (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.)
Hangzhou Youyun Software Co ltd
Beijing Guangtong Youyun Technology Co ltd
Original Assignee
Hangzhou Youyun Software Co ltd
Beijing Guangtong Youyun Technology Co ltd
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 Hangzhou Youyun Software Co ltd, Beijing Guangtong Youyun Technology Co ltd filed Critical Hangzhou Youyun Software Co ltd
Priority to CN202111471717.0A priority Critical patent/CN113867972B/zh
Publication of CN113867972A publication Critical patent/CN113867972A/zh
Application granted granted Critical
Publication of CN113867972B publication Critical patent/CN113867972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • 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
    • G06F9/505Allocation 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种基于内存资源和服务性能结合的容器内存负载预测方法,包括步骤如下:(1)、性能指标选取;(2)、性能窗口大小选择:根据上一次滑动窗口和当前固定滑动窗口的数据方差,决定当前滑动窗口的大小;(3)、负载预测算法:每次检测容器服务现阶段的性能表现,然后和容器服务的预期性能做比较,比较后得出性能差值;计算下一阶段的内存映射值,输出最后的预测调整值。本发明的优点为:通过负载预测算法,使弹性伸缩机制拥有前瞻性;使用垃圾回收时长作为服务性能的衡量指标,解决大型作业在伸缩过程中的服务质量检测问题,根据历史时间序列的监控数据对容器下一阶段的内存使用量进行预测,在保证服务质量的同时,节约内存资源。

Description

一种基于内存资源和服务性能结合的容器内存负载预测方法
技术领域
本发明涉及容器技术领域,主要是一种基于内存资源和服务性能结合的容器内存负载预测方法。
背景技术
随着人工智能、大数据业务的兴起,云计算平台的底层支撑作用变得愈加重要。在云平台中,以Docker为代表的容器虚拟化技术快速发展,凭借其轻量化、便捷性等的特点,逐渐在一些领域代替了传统的虚拟机技术。
容器技术可对程序运行环境进行隔离和打包,方便了程序在开发、上线、测试和维护的整个过程,并且容器之间可以共享主机的操作***,与虚拟机相比占用的资源更少。容器按需服务是根据应用程序的工作负载,为其提供适当的计算资源,在保证良好的性能服务同时,控制资源成本。但是云计算应用程序的工作负载随时间变化,满足峰值需求的静态资源分配会导致严重的资源浪费,相反,维护均值的计算资源会导致服务性能和水平下降。现在许多大数据分析***都在最大程度地利用内存资源,但内存仍然是较为昂贵的资源,因而在保持服务性能的同时减少内存资源的浪费,合理预测容器所需内存资源,根据预测有机分配容器资源成为了一个亟待解决的问题。
针对这一问题,目前已有不少的解决方案,如发明CN109271232A提供了一种基于云计算平台的集群资源分配方法,首先采集负载数据,计算未来时段负载变动量及负载持续时间,判断负载变动量及负载持续时间是否超过阈值,来进行决策,包括复制目的地决策和迁移目的地决策;该发明通过虚拟化集群资源的分配,规划虚拟机和物理机之间的映射,并根据***运行状况进行调整,以将虚拟化的资源合理的分配给集群中的服务节点,优化***性能和能耗。但这一发明中采集负载数据说明较为模糊,对比的阈值设定主观意识太强,该部分原始负载如何进行计算并未阐明,同时其针对虚拟机的集群资源分配方式在面对容器资源分配时具有一定迁移差异。
针对上述问题,发明CN110231976A公开了一种基于负载预测的边缘计算平台容器部署方法及***,该发明在计算节点上搭载一个原始负载监测***,更好的对各类***进行状态监测,并通过节点负载预测***上传至中心服务器,中心节点上搭载了节点负载预测***和计算任务管理***,节点负载预测***上设置有对应各计算节点的LSTM模型,节点负载预测***接收节点原始负载信息并将预测的结果发送至计算任务管理***;计算任务管理***负责容器的部署,计算任务管理***根据接收的信息反馈节点号、任务时间给节点负载预测***,并下发容器到可用的计算节点。但该发明中LSTM模型较为原始,模型的评价指标并未明确定义,如何来判断***负载预测的惩罚值并未进行详细说明。
发明内容
本发明的目的在于克服现有技术存在的不足,而提供一种基于内存资源和服务性能结合的容器内存负载预测方法,根据历史时间序列的服务质量监控数据和当下容器资源使用状况,预测下一时段的内存资源需求量并计划缩放的资源大小,提前做出主动式垂直伸缩,解决伸缩滞后性问题。使用垃圾回收时长作为服务性能的衡量指标,解决大型作业在伸缩过程中的服务质量检测问题。
本发明的目的是通过如下技术方案来完成的。一种基于内存资源和服务性能结合的容器内存负载预测方法,包括步骤如下:
(1)、性能指标选取:选择垃圾回收,即GC时长作为后续算法的性能评价指标;
(2)、性能窗口大小选择:根据上一次滑动窗口和当前固定滑动窗口的数据方差,决定当前滑动窗口的大小;
(3)、负载预测算法:每次检测容器服务现阶段的性能表现,然后和容器服务的预期性能做比较,比较后得出性能差值;随后根据性能的变化情况以及当前的内存资源使用情况,计算下一阶段的内存映射值;内存映射值根据容器和主机的实际情况,输出最后的预测调整值。
更进一步的,所述的性能窗口大小选择,具体步骤如下:
(2.1)、接收上一次滑动窗口和当前固定滑动窗口的平均值
用oldAvg表示上一次滑动窗口内的平均值,用curAvg表示当前固定滑动窗口内的平均值,使用direct表示当前固定滑动窗口和上一次滑动窗口的正向平均变化,公式表示为:
Figure DEST_PATH_IMAGE001
式(3-7)
使用inverse表示当前固定滑动窗口和上一次滑动窗口的反向平均变化,公式表示为:
Figure DEST_PATH_IMAGE002
式(3-8)
使用variance表示两者的方差,公式表示为:
Figure DEST_PATH_IMAGE003
式(3-9)
(2.2)、使用方差与置信区间进行比较,如果方差小于置信区间阈值,则不改变滑动窗口大小;如果方差大于置信区间阈值,则根据当前固定滑动窗口和上一次滑动窗口的平均值大小对滑动窗口进行伸缩,如果当前固定滑动窗口的平均值大于上一次滑动窗口的平均值大小,则滑动窗口大小加一,反之减一;用wSize表示最终的滑动窗口大小,公式表示为:
Figure DEST_PATH_IMAGE004
式(3-10)
(2.3)、将最终的滑动窗口大小作用于计算预期性能的滑动窗口中,在每次负载预测时根据历史数据动态调整滑动窗口大小。
更进一步的,所述的负载预测算法,具体步骤如下:
(3.1)、用
Figure DEST_PATH_IMAGE005
表示容器服务性能指标,使用容器服务运行过程中的GC时长来作为检 测指标;通过监控最近一定时间段interval内的执行垃圾回收操作的平均时长
Figure DEST_PATH_IMAGE006
,来表 示本次弹性伸缩的服务性能指标,用
Figure DEST_PATH_IMAGE007
表示;表达式为:
Figure DEST_PATH_IMAGE008
式(3-1)
(3.2)、用
Figure DEST_PATH_IMAGE009
表示容器服务运行过程中的预期性能,以过去
Figure DEST_PATH_IMAGE010
时间内的滑动窗口 为时间序列,对窗口内检测到的容器服务实际性能指标做加权平均运算,权重随预测点的 时间距离依次递减,表达式为:
Figure DEST_PATH_IMAGE011
式(3-2)
(3.3)、用
Figure DEST_PATH_IMAGE012
表示观测性能与预期性能的差值,用性能差值反应容器服务在刚刚过 去的一段时间,是否面临着内存不足或者内存过剩的情况,进而决定是否对容器内存进行 扩增或者收缩行为,其表达式为:
Figure DEST_PATH_IMAGE013
式(3-3)
(3.4)、预测模型根据性能差值
Figure DEST_PATH_IMAGE014
和当前的内存使用情况
Figure DEST_PATH_IMAGE015
两项影响因子计算出 下一阶段内存分配大小的映射指标
Figure DEST_PATH_IMAGE016
,使用上一阶段的映射指标,结合上阶段刚刚 过去的服务性能表现,也就是性能差值
Figure DEST_PATH_IMAGE017
,决定对内存映射指标上调还是下降;当服务的垃 圾回收时长增加,则
Figure DEST_PATH_IMAGE018
,则应该需要为容器扩增内存空间,此时应上调内存映射指标, 表达式为:
Figure DEST_PATH_IMAGE019
式(3-4)
其中,
Figure DEST_PATH_IMAGE020
表示下一阶段容器应调整的内存映射值,是通过在上一阶段的映射值
Figure DEST_PATH_IMAGE021
中,依据性能差值变化和内存资源使用情况,计算得出的结果,
Figure DEST_PATH_IMAGE022
;参数
Figure DEST_PATH_IMAGE023
为弹性系数,参数
Figure DEST_PATH_IMAGE024
表示垃圾回收时间和内存映射值之间的一阶模型;参数
Figure DEST_PATH_IMAGE025
根据容器的 内存使用率
Figure DEST_PATH_IMAGE026
计算得出,表达式为:
Figure DEST_PATH_IMAGE027
式(3-5)
(3.5)、由预测模型输出的内存映射指标和主机中允许为程序分配的真实内存决 定下一阶段提供的内存大小
Figure DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE029
式(3-6)
其中
Figure DEST_PATH_IMAGE030
Figure DEST_PATH_IMAGE031
表示主机设置中所能为程序分配的最大内存和最小内存。
本发明的有益效果为:本发明针对容器云环境下的内存相关负载预测算法,提出基于内存资源使用情况与垃圾回收服务性能结合的负载预测算法,使弹性伸缩机制拥有前瞻性;使用垃圾回收时长作为服务性能的衡量指标,解决大型作业在伸缩过程中的服务质量检测问题,根据历史时间序列的监控数据对容器下一阶段的内存使用量进行预测,在保证服务质量的同时,节约内存资源。
附图说明
图1为本发明的流程示意图。
图2为性能窗口大小选择的流程示意图。
图3为内存弹性伸缩预测算法流程图。
具体实施方式
下面将结合附图对本发明做详细的介绍:
本发明设计并实现一种基于内存资源和服务性能结合的容器内存负载预测方法,本发明主要包含三个部分,分别为性能指标选取方法、性能窗口大小选择方法、负载预测算法。
1.性能指标选取
内存资源使用情况获取起来比较直观,但容器服务的性能表现指标就较为抽象。现在常用QoS(Quality of Service)表示服务质量,这个值越高说明提供的服务质量越高、服务性能越好。性能测量指标多种多样,常见的有响应时间、吞吐量、请求量、故障时间、准确性等等。对于单次处理时间短、交互性频繁的应用服务,例如WEB类型的应用服务,使用响应时间可以有效测量服务性能,并且可依据其用户请求量的变化,动态调整资源分配情况,保证服务质量。
但是对于大数据分析类程序,数据处理量大,或运算逻辑复杂,导致单次运行时间较长,可达到分钟级别甚至小时级别,不同数据分析作业往往加载不同的数据集合和运算逻辑,无法以响应时间或吞吐量作为性能测量指标。大数据分析类程序交互频率较低,通常只是将作业提交至分析***中运行,然后等待返回结果,只有在大数据分析程序运行过程中检测服务质量的变化并据此作出调整,才能实现弹性伸缩的效果。而且GC对程序性能的影响也一致,在执行GC操作时,必须暂停程序运行,目的是保证检测对象树的完整性。
本发明根据实际云环境中大规模计算环境的特点,主要针对需要长时交互的大数据分析类***(分钟、小时级的响应速度要求),选择GC时长作为后续算法的性能评价指标。
2.性能窗口大小选择方法
在本发明中,容器服务的预期性能,通过滑动窗口对历史数据进行分析得到。由于工作负载的动态变化、异构的基础设施和多租户共享***的影响,选择一个合适的窗口大小是非常重要的。之前的流量预测工具通常会考虑大量历史数据,因此被归类为“远程依赖(LRD)”方法,然而基于LRD的技术并非最适合云计算***中的在线流量预测,因为其不具有传统网络的周期性行为。在过去的方法中,大多都使用固定大小的观测窗口,但在易于变化的云环境中,历史数据之间的耦合性会随着时间而改变,现有的固定大小窗口无法适当地限制数据范围以捕捉数据中的局部趋势。
本发明中设计一种方法来自适应选择最佳观测值的滑动窗口大小,并捕获预期性能的最新趋势,提高其准确性。如果滑动窗口很大,则可以更好地消除性能异常数据,这适用于时间序列波动剧烈的情况;如果窗口很小,则对性能变化更加敏感,但是预测算法的工作量会降低,适用于波动较为稳定的情况。因此根据最近一次窗口和当前固定滑动窗口的数据方差,决定当前滑动窗口的大小。如果方差较小表示期望值接近历史均值,如果方差较大表示期望值将根据历史数据进行趋势延伸。
算法流程为接收上一次窗口和当前固定滑动窗口的平均值,并对其进行比较,为了避免算法不必要的开销,选择5%作为置信区间的边界,意思为如果两者之间的差异在5%以内,则表示不需要更改滑动窗口大小,反之则根据波动性变化更改窗口大小。
用oldAvg表示上一次滑动窗口内的平均值,用curAvg表示当前固定大小滑动窗口内的平均值,为了消除不同数据场景的差异,使用direct表示当前固定滑动窗口和上一次滑动窗口的正向平均变化,公式表示为:
Figure DEST_PATH_IMAGE032
式(3-7)
使用inverse表示当前固定滑动窗口和上一次滑动窗口的反向平均变化,公式表示为:
Figure DEST_PATH_IMAGE033
式(3-8)
使用variance表示两者的方差,公式表示为:
Figure DEST_PATH_IMAGE034
式(3-9)
接下来使用方差与置信区间进行比较,如果方差小于置信区间阈值,则不改变滑动窗口大小;如果方差在大于置信区间阈值,则根据当前固定滑动窗口和上一次滑动窗口的平均值大小对滑动窗口进行伸缩,如果当前固定滑动窗口的平均值大于上一次滑动窗口的平均值大小,则滑动窗口大小加一,反之减一;用wSize表示最终的滑动窗口大小,公式表示为:
Figure DEST_PATH_IMAGE035
式(3-10)
最后将最终的滑动窗口大小作用于计算预期性能的滑动窗口中,在每次负载预测时根据历史数据动态调整滑动窗口大小;增加对历史数据的短程依赖效果,适用于云计算环境。
3.负载预测算法
本节主要将预测算法应用于容器管理***并结合容器云环境对其进行分析。预测算法的流程大致为,每次检测容器服务现阶段的性能表现,然后和容器服务的预期性能做比较,比较后得出性能差值。这个差值反应现阶段的容器服务状态是变好还是变坏,也反应服务的负载程度是增大还是减小。随后根据性能的变化情况以及当前的内存资源使用情况,计算下一阶段的内存映射值。映射值根据容器和主机的实际情况,输出最后的预测调整值。
Figure DEST_PATH_IMAGE036
表示容器服务性能指标,根据上述描写的性能指标选择,使用容器服务运行 过程中的垃圾回收(GC)时长来作为检测指标。当新的计算需求到来而没有足够可用的内存 空间时,则会执行垃圾回收操作,造成一定的时间延误。如果容器可使用内存空间较少,程 序在执行过程中会频繁执行垃圾回收操作,就会导致服务性能下降。本***通过监控最近 一定时间段(interval)内的执行垃圾回收操作的平均时长(
Figure DEST_PATH_IMAGE037
),来表示本次弹性伸缩 的服务性能指标,用
Figure DEST_PATH_IMAGE038
表示。表达式为:
Figure DEST_PATH_IMAGE039
式(3-1)
Figure DEST_PATH_IMAGE040
表示服务运行过程中的预期性能,由于数据分析类程序在运算过程中有较 强的阶段性,且距离本次预测时间点越近的数据作用越明显。针对程序运行过程中的趋势 性,以过去
Figure DEST_PATH_IMAGE041
时间内的滑动窗口为时间序列,对窗口内检测到的容器服务实际性能指标做 加权平均运算,权重随预测点的时间距离依次递减。表达式为:
Figure DEST_PATH_IMAGE042
式(3-2)
Figure DEST_PATH_IMAGE043
表示观测性能与预期性能的差值,经过处理未知工作负载之后,服务的垃圾 回收时长可能会发生波动变化。因此用性能差值可以很好的反应容器服务在刚刚过去的一 段时间,是否面临着内存不足或者内存过剩的情况,进而决定是否对容器内存进行扩增或 者收缩行为。其表达式为:
Figure DEST_PATH_IMAGE044
式(3-3)
随后预测模型会根据性能差值
Figure DEST_PATH_IMAGE045
和当前的内存使用情况
Figure DEST_PATH_IMAGE046
两项影响因子计算出 下一阶段内存分配大小的映射指标
Figure DEST_PATH_IMAGE047
,使用上一阶段的映射指标,结合上阶段刚刚过 去的服务性能表现,也就是性能差值
Figure DEST_PATH_IMAGE048
,决定对内存映射指标上调还是下降。当服务的垃圾 回收时长增加,则
Figure DEST_PATH_IMAGE049
,意味着应该需要为容器扩增内存空间,以帮助其达到期望状态, 此时应上调内存映射指标。表达式为:
Figure DEST_PATH_IMAGE050
式(3-4)
其中,
Figure DEST_PATH_IMAGE051
表示下一阶段容器应调整的内存映射值,是通过在上一阶段的映射值
Figure DEST_PATH_IMAGE052
中,依据性能差值变化和内存资源使用情况,计算得出的结果。
Figure DEST_PATH_IMAGE053
,因为面对不 同的主机和容器使用场景,实际的内存使用值会因场景而异,所以使用内存映射比的方法 可消除这种差异,后面再结合容器的实际情况转换成实际预测值。参数
Figure DEST_PATH_IMAGE054
为弹性系数, 表示模型的弹性力度,因为对于不同的场景,有不同的弹性速率需求,如何控制这个弹性速 率也是一个较为复杂的问题,可根据用户和管理者的弹性需求,自动优化这个弹性参数,本 发明中不对该参数进行探讨;参数
Figure DEST_PATH_IMAGE055
表示垃圾回收时间和内存映射值之间的一阶模型,由 用户设定,目的是控制映射值
Figure DEST_PATH_IMAGE056
;参数
Figure DEST_PATH_IMAGE057
根据容器的使用率
Figure DEST_PATH_IMAGE058
计算得出,表达式 为:
Figure DEST_PATH_IMAGE059
式(3-5)
Figure DEST_PATH_IMAGE060
,表示性能指标变得糟糕,接下来需要为程序增大内存分配以满足程序 的负载,增大的幅度取决与当前的内存利用率,也就是说如果内存利用率处在一个较低的 值,那么性能变差大概率不是由内存空间紧缺导致;相反如果利用率处在一个较高的值,那 么因内存紧缺导致性能变差的可能性也会较大,因此参数
Figure DEST_PATH_IMAGE061
就可以更准确的决定下一阶 段内存配额的大小。同理,当
Figure DEST_PATH_IMAGE062
时,说明性能指标变得乐观,可适当地缩减内存以节约 资源,此时
Figure DEST_PATH_IMAGE063
,也就是内存的空闲率,当空闲率很高的时候,可以缩减较大的内 存空间,而也不至于影响到服务的性能;当空闲率很低时,就要谨慎一点,避免影响服务性 能。
最后,由预测模型输出的内存映射指标和主机中允许为程序分配的真实内存决定 下一阶段提供的内存大小
Figure DEST_PATH_IMAGE064
,因为
Figure DEST_PATH_IMAGE065
,所以任意时刻提供的内存大小不会超过系 统设定的资源限制:
Figure DEST_PATH_IMAGE066
式(3-6)
其中
Figure DEST_PATH_IMAGE067
Figure DEST_PATH_IMAGE068
表示主机设置中所能为程序分配的最大内存和最小内存。设 置最小值的目的是提供服务最基本的使用资源,而不至于限制服务的启动。设置最大内存 是为了防止在云计算环境中,因单个服务的资源抢占行为而影响到主机上其他服务,提升 了***的安全性。按照预测模型中输出的建议内存大小,根据弹性伸缩策略,调整容器分配 内存。工作负载是来自外界的并且不可预测的,此负载预测就是按照以上方法,预测内存资 源需求,来应对未来工作负载,并且达到高性能和高内存利用率的效果。
综上,本发明提出基于内存资源使用情况与垃圾回收服务性能结合的负载预测算法,使用垃圾回收时长作为服务性能的衡量指标,根据历史时间序列的监控数据对容器下一阶段的内存使用量进行预测,使得内存后续的弹性伸缩机制动态调整拥有前瞻性。本发明可解决大型作业在伸缩过程中的服务质量检测问题,在保证服务质量的同时,节约内存资源。
可以理解的是,对本领域技术人员来说,对本发明的技术方案及发明构思加以等同替换或改变都应属于本发明所附的权利要求的保护范围。

Claims (2)

1.一种基于内存资源和服务性能结合的容器内存负载预测方法,其特征在于:包括步骤如下:
(1)、性能指标选取:选择垃圾回收,即GC时长作为后续算法的性能评价指标;
(2)、性能窗口大小选择:根据上一次滑动窗口和当前固定滑动窗口的数据方差,决定当前滑动窗口的大小;
(3)、负载预测算法:每次检测容器服务现阶段的性能表现,然后和容器服务的预期性能做比较,比较后得出性能差值;随后根据性能的变化情况以及当前的内存资源使用情况,计算下一阶段的内存映射值;内存映射值根据容器和主机的实际情况,输出最后的预测调整值;
所述的性能窗口大小选择,具体步骤如下:
(2.1)、接收上一次滑动窗口和当前固定滑动窗口的平均值
用oldAvg表示上一次滑动窗口内的平均值,用curAvg表示当前固定滑动窗口内的平均值,使用direct表示当前固定滑动窗口和上一次滑动窗口的正向平均变化,公式表示为:
Figure FDA0003466343560000011
使用inverse表示当前固定滑动窗口和上一次滑动窗口的反向平均变化,公式表示为:
Figure FDA0003466343560000012
使用variance表示两者的方差,公式表示为:
variance=(direct-inverse)2 式(3-9)
(2.2)、使用方差与置信区间进行比较,如果方差小于置信区间阈值,则不改变滑动窗口大小;如果方差大于置信区间阈值,则根据当前固定滑动窗口和上一次滑动窗口的平均值大小对滑动窗口进行伸缩,如果当前固定滑动窗口的平均值大于上一次滑动窗口的平均值大小,则滑动窗口大小加一,反之减一;用wSize表示最终的滑动窗口大小,公式表示为:
Figure FDA0003466343560000013
(2.3)、将最终的滑动窗口大小作用于计算预期性能的滑动窗口中,在每次负载预测时根据历史数据动态调整滑动窗口大小。
2.根据权利要求1所述的基于内存资源和服务性能结合的容器内存负载预测方法,其特征在于:所述的负载预测算法,具体步骤如下:
(3.1)、用P表示容器服务性能指标,使用容器服务运行过程中的GC时长来作为检测指标;通过监控最近时间段interval内的执行垃圾回收操作的平均时长GCn,来表示本次弹性伸缩的服务性能指标,用Pi表示;表达式为:
Figure FDA0003466343560000021
(3.2)、用
Figure FDA0003466343560000022
表示容器服务运行过程中的预期性能,以过去w时间内的滑动窗口为时间序列,对窗口内检测到的容器服务实际性能指标做加权平均运算,权重随预测点的时间距离依次递减,表达式为:
Figure FDA0003466343560000023
(3.3)、用ei表示观测性能与预期性能的差值,用性能差值反应容器服务在过去的一段时间,是否面临着内存不足或者内存过剩的情况,进而决定是否对容器内存进行扩增或者收缩行为,其表达式为:
Figure FDA0003466343560000024
(3.4)、预测模型根据性能差值ei和当前的内存使用情况U两项影响因子计算出下一阶段内存分配大小的映射指标R∈(0,1],使用上一阶段的映射指标,结合上阶段刚刚过去的服务性能表现,也就是性能差值ei,决定对内存映射指标上调还是下降;当服务的垃圾回收时长增加,则ei>0,则应该需要为容器扩增内存空间,此时应上调内存映射指标,表达式为:
Ri=Ri-1+pole(α·ωi·ei) 式(3-4)
其中,Ri表示下一阶段容器应调整的内存映射值,是通过在上一阶段的映射值Ri-1中,依据性能差值变化和内存资源使用情况,计算得出的结果,Ri∈(0,1];参数pole为弹性系数,参数α表示垃圾回收时间和内存映射值之间的一阶模型;参数ωi根据容器的内存使用率Umem计算得出,表达式为:
Figure FDA0003466343560000025
(3.5)、由预测模型输出的内存映射指标和主机中允许为程序分配的真实内存决定下一阶段提供的内存大小Mi
Mi=Ri·(Mmax-Mmin)+Mmin 式(3-6)
其中Mmax和Mmin表示主机设置中所能为程序分配的最大内存和最小内存。
CN202111471717.0A 2021-12-06 2021-12-06 一种基于内存资源和服务性能结合的容器内存负载预测方法 Active CN113867972B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111471717.0A CN113867972B (zh) 2021-12-06 2021-12-06 一种基于内存资源和服务性能结合的容器内存负载预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111471717.0A CN113867972B (zh) 2021-12-06 2021-12-06 一种基于内存资源和服务性能结合的容器内存负载预测方法

Publications (2)

Publication Number Publication Date
CN113867972A CN113867972A (zh) 2021-12-31
CN113867972B true CN113867972B (zh) 2022-03-15

Family

ID=78985855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111471717.0A Active CN113867972B (zh) 2021-12-06 2021-12-06 一种基于内存资源和服务性能结合的容器内存负载预测方法

Country Status (1)

Country Link
CN (1) CN113867972B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107045455A (zh) * 2017-06-19 2017-08-15 华中科技大学 一种基于负载预测的Docker Swarm集群资源调度优化方法
US20180084270A1 (en) * 2016-09-20 2018-03-22 Advanced Micro Devices, Inc. Dynamic reload of video encoder motion estimation search window under performance/power constraints
CN111198808A (zh) * 2019-12-25 2020-05-26 东软集团股份有限公司 预测性能指标的方法、装置、存储介质及电子设备
CN111813548A (zh) * 2020-06-30 2020-10-23 北京金山云网络技术有限公司 一种资源调度方法、装置、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180084270A1 (en) * 2016-09-20 2018-03-22 Advanced Micro Devices, Inc. Dynamic reload of video encoder motion estimation search window under performance/power constraints
CN107045455A (zh) * 2017-06-19 2017-08-15 华中科技大学 一种基于负载预测的Docker Swarm集群资源调度优化方法
CN111198808A (zh) * 2019-12-25 2020-05-26 东软集团股份有限公司 预测性能指标的方法、装置、存储介质及电子设备
CN111813548A (zh) * 2020-06-30 2020-10-23 北京金山云网络技术有限公司 一种资源调度方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113867972A (zh) 2021-12-31

Similar Documents

Publication Publication Date Title
WO2020206705A1 (zh) 一种基于集群节点负载状态预测的作业调度方法
CN109978222B (zh) 一种基于贝叶斯网络的风电爬坡事件概率预测方法及***
CN103036974B (zh) 基于隐马尔可夫模型的云计算资源调度方法和***
US10789102B2 (en) Resource provisioning in computing systems
US8181050B2 (en) Adaptive throttling for data processing systems
US11726836B2 (en) Predicting expansion failures and defragmenting cluster resources
WO2022016808A1 (zh) 一种kubernetes集群资源动态调整方法及电子设备
KR20190070659A (ko) 컨테이너 기반의 자원 할당을 지원하는 클라우드 컴퓨팅 장치 및 방법
US20090094183A1 (en) Predictive Monitoring Method and System
KR101113943B1 (ko) 워크로드 관리 방법과 장치 및 이를 이용한 분산 컴퓨팅 시스템
KR101886072B1 (ko) 분산 인 메모리 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템 및 방법
US11652720B2 (en) Allocating cloud resources in accordance with predicted deployment growth
CN113886010A (zh) 容器资源的控制方法、设备及计算机存储介质
CN105022823B (zh) 一种基于数据挖掘的云服务性能预警事件生成方法
CN110990160B (zh) 一种基于负荷预测的静态安全分析容器云弹性伸缩方法
CN113194040A (zh) 瞬时高并发服务器线程池拥塞智能控制方法
CN106598693B (zh) 一种基于延时策略的能耗及负载敏感的虚拟机整合方法
CN113867972B (zh) 一种基于内存资源和服务性能结合的容器内存负载预测方法
CN115269123A (zh) 一种容器资源调整方法、装置、电子设备及介质
KR100547625B1 (ko) 그리드 정보서비스를 위한 지능형 모니터링 시스템 및 방법
Jing et al. An energy efficient and resource‐constrained scheduling framework for smart city application
US20230297154A1 (en) Power resource management
CN114138477B (zh) 一种信息***运行态服务资源分配方法
CN116755837A (zh) 容器集合的调整方法和装置、存储介质及电子设备
CN113626140A (zh) 一种虚拟机调整方法和相关装置

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