论文部分内容阅读
随着人工智能、大数据业务的兴起,云计算平台的底层支撑作用变得愈加重要。在云平台中,以Docker代表的容器技术,凭借其轻量化、便捷性等特点,得到广泛应用。资源的合理分配是保证容器服务质量和控制设施成本的关键,而在数据分析时代内存资源尤为重要。面对复杂多变的云业务需求,如何保证容器服务在拥有良好性能表现的同时,尽可能地节省内存计算资源,是值得关注和研究的问题。那么,根据容器服务当前的内存需求量进行资源动态伸缩是实现资源有效利用、避免浪费的重要方法。资源动态伸缩主要分为水平伸缩和垂直伸缩两种方向,水平伸缩通过调整计算节点数量来达到弹性伸缩效果,但在一些单次响应时间较长的大数据任务中,或单个实例节点无法被复制和分解的情况下,并不能发挥很好作用。而垂直伸缩则是调整单个计算节点的资源配额来实现弹性伸缩效果,细化了弹性粒度,深层次优化资源分配结构。目前垂直弹性伸缩主要使用基于阈值的反应式伸缩方式和固定大小的伸缩单元,存在滞后性和准确性差等问题,针对以上问题,本文进行优化改进,最终设计并实现一种基于负载预测的容器内存垂直弹性伸缩机制,论文主要工作如下:(1)提出基于内存资源和服务性能结合的混合预测算法,根据历史时间序列的服务质量监控数据和当下容器资源使用状况,预测下一时段的内存资源需求量和计划缩放的资源大小,提前做出主动式垂直伸缩,解决伸缩滞后性问题。使用垃圾回收时长作为服务性能的衡量指标,解决大型作业在伸缩过程中的服务质量检测问题。使用强化学习算法优化弹性系数,使预测模型可以适应不同的弹性需求,在陌生环境中做出最优决策。(2)提出基于阈值判断的动态伸缩间隔策略,当内存压力达到阈值并持续一定时间后无需等到默认的弹性时间立即执行弹性操作,灵活控制弹性频率,避免负载突然增加但弹性伸缩不及时导致服务质量变差。提出对预测低估的填充策略,根据时间窗口内存消耗突发情况,动态填充份额,避免内存使用量无法超过限定额度而影响服务质量。(3)完成容器垂直伸缩机制的总体设计,完成资源监控模块、负载预测模块和弹性伸缩模块的具体实现。对伸缩机制进行测试分析,实验结果表明,容器弹性伸缩机制可很好完成资源监控功能并根据监控数据实现内存垂直弹性伸缩,在保证容器服务质量不受影响同时,有效降低内存资源浪费。