论文部分内容阅读
随着应用互联网化的不断发展,用户访问量大规模增长,传统软件架构已逐渐无法适应互联网时代的快速变化,面临着诸多挑战。微服务架构倡导将服务划分成多个功能小而专一的服务模块,每个模块独立部署运行,通过轻量级的通信机制进行交互,在一定程度上解决了传统软件所面临的问题,但是,微服务架构模块数量繁多,资源管理复杂,如何进行自适应资源供给已成为亟需解决的问题之一。 容器作为物理资源的逻辑抽象,具有资源占用少、资源供给快等特点,适合工作负载突变的互联网应用模式,特别是面向微服务架构的新型服务范型。但是,已有工作受限于物理机和虚拟化环境,资源难以弹性供给或资源供给时效性较差,难以应对负载突变(Flash-crowds)的场景。 针对此问题,本文提出了一种服务质量(Quality of Service,QoS)敏感的容器资源弹性供给方法。该方法首先采用网络排队理论刻画工作负载、资源利用率和响应时间的关联关系,从而构建微服务架构的性能模型。其中,响应时间采用模糊自适应卡尔曼滤波算法进行预测(前馈控制器),该算法收敛速度快,不以历史数据为基准,只依赖于前一个周期的数据,所以可以很好地应对负载突变的无规律性。预测结果违背QoS是触发资源弹性供给的依据,本文以该依据作为集中调度的核心策略,辅以任务优先级、任务类型等因素,提供了扩展、收缩和迁移三种水平供给方式,从而实现了面向微服务的容器级自适应资源供给框架。基于CloudStone基准测试集的实验结果显示,前馈控制器具有快速收敛的特点,对响应时间的预测误差小于10%。在Flash-crowds场景下,相对于已有方法可有效保障应用的QoS。