一种面向微服务架构的容器级弹性资源供给系统及方法
【技术领域】
[0001] 本发明设及一种面向微服务架构的容器级弹性资源供给系统及方法,属于互联网 和资源管理领域,特别是突发负载场景下的容器资源弹性供给问题。
【背景技术】
[0002] 微服务架构(Microservice)体现了互联网应用的设计思想,其核屯、理念是细粒度 模块划分、服务化接口封装、轻量级通信交互,具有W下两点优势:(1)模块自治性强,能很 好满足互联网应用变化快,模块独立更新的需求;(2)模块扩展性好,能很好满足互联网应 用用户量难预测,资源动态分配的需求。其中,前者设及的是应用开发和设计范畴;后者强 调的是应用运行和维护问题,也是本文关注的重点。根据Gadner报告,微服务本身具有良 好的扩展性,正逐渐成为构造互联网应用的主流架构模式,但从运行和维护的视角来看,应 对典型的互联网突变负载(Flash-crowds)场景,保障应用服务质量(如ality of Service) 依旧面临挑战(服务质量是指应用软件对时间要求的满足程度,响应时间是其重要的度量 指标之一,比如用户服务质量为5秒,即表示用户从请求发起到请求响应的时间间隔不应超 过5秒),比如化tf lixjacebookjwitter等。
[0003] 近年来,轻量级容器技术应运而生,其本质是模拟进程运行环境,具有资源占用 少、应用启动快等特点,正逐步成为支撑微服务运行的主流架构平台。容器具有秒级资源供 给的特点,可很好的满足互联网应用负载突变对实时资源供给的需求。然而,已有方法或受 限于物理机灵活性不够,资源难W弹性供给;或受限于虚拟机资源的供给分钟级时效性,通 常只能适用于周期变化(Time-of-day)的负载模式。随着互联化技术的快速发展和深入应 用,如何应对突变负载(Flash-crowds)依然面临挑战,如京东采用容器作为2015年"618"限 时抢购活动,用户访问数增长率高于预期,导致部分应用构件出现"无响应"、"卡顿"等现 象。
[0004] 已有工作主要面向物理机和虚拟机场景实现资源的弹性供给。一些文献针对物理 资源难W快速供给的特点,或采用容量规划,W服务质量作为约束条件,估算应用的峰值资 源需求;或采用准入控制机制,根据资源供给量反推应用可承受的峰值负载,通过拒绝服务 策略来保障应用的服务质量。如Ludmila化erkasova等人提出的基于准入控制机制,建立 会话与吞吐量的损失模型,推演资源的供给需求。又如Robedsson A等人提出的基于线性 模型的资源需求方程组,在保障应用质量的提前下估算资源需求的峰值,从而达到资源按 需供给的目的。一些文献考虑虚拟机性能开销因素,采用模型驱动的方法刻画虚拟化环境 下应用的资源需求变化,并W此作为资源提供的依据。运些方法通常采用增强学习 (Reinforcement Learning)、统计学习 (Statistical Learning)等机制进行模型参数训 练。如Karlsson Μ等人提出基于性能隔离的方法分析每个服务实例的资源需求,分别对每 种服务构建性能变化模型,从而进行自适应资源供给;一些文献考虑虚拟机之间相互性能 干扰问题,采用机器学习 (Statistical Machine Learning)、模糊控制(Fuzz;y Conhol)、 概率论(Probability Theory)等方法刻画出虚拟机之间相互性能干扰对应用资源供给的 影响,并W此作为应用资源供给的依据。如Bod出P等人提出的基于机器学习的方式,通过 历史数据集合对应用模型的性能参数进行规则训练,并根据得到的资源供给规则进行资源 动态调整。然而,由于虚拟机资源供给需要分钟级,因此上述方法通常只适用于负载随时间 周期性变化(T ime-of-day)的应用场景。
【发明内容】
[0005] 本发明技术解决问题:克服现有技术的不足,提供一种面向微服务架构的容器级 资源供给方法,解决了已有方法难W适用突发负载模式,存在用户服务质量难W保障的不 足。
[0006] 本发明技术解决方案:一种面向微服务架构的容器级弹性资源供给系统,包括数 据采集器、性能建模器、响应时间预测器、前馈控制器和容器调度器,其中:
[0007] 数据采集器,周期性监测容器CPU、内存、磁盘I/O、网络I/O系统资源,W及每秒用 户请求数;另外,数据采集器负责建立"负载-偏好资源利用率",因为容器的资源偏好具有 差异性,比如I/O密集型容器,其磁盘传输、网络传输等资源利用率可能要高于CPU的利用 率,又如计算密集型容器,其CPU和内存的利用率可能较磁盘10要偏高些。具体而言,数据采 集器周期性取得CPU利用率、内存利用率、磁盘I/O、网络I/O运个四个参数中的最高值,并将 其定义为偏好资源利用率,然后构造"负载-偏好资源利用率";
[000引性能建模器,根据数据采集器得到的数据,通过化ckson开环网络中的性能方程及 流量方程进行建模。在偏好资源利用率已知条件下,构建微服务架构下"负载-响应时间"的 关联方程;
[0009] 响应时间预测器,"负载-响应时间"关联方程存在未知变量,只有确定该未知变 量,方能计算出响应时间。因此,采用卡尔曼滤波,将未知变量作为预测矩阵,将已知变量作 为观测矩阵,通过对未知变量进行赋值,估算响应时间,并将估算值与监测值得方差及均 值传递给前馈控制器;
[0010] 前馈控制器,分析残差的方差及均值,通过模糊逻辑得到滤波参数Γ负载-响应时 间"关联方程中未知变量的取值)的校准值,其目的是修正未知变量,使得估算的响应时间 更加准确;
[0011] 容器调度器,根据响应时间预测值是否违背应用服务质量,按需进行容器级资源 的供给。
[0012] 所述性能建模器中,通过化ckson开环网络构建微服务架构下"负载-响应时间"的 关联关系方程具体如下:
[001引其中,視应用构件,i是应用构件实例,j,i的关系可描述为:用户请求将会流经多 个应用构件jl. . . jn,每个应用构件j都含有多个实例il. . .im;每个实例都运行在容器中;Uj e[0,l)是应用构件j的偏好资源利用率;UOj是指当应用构件j在零负载情况下的偏好资源 利用率;丫^是指应用构件j的第i个容器的并发数,即每秒到达的请求数,满足泊松到达过 程;Tji是指应用构件j的第i个容器的服务处理时间;Tj是指应用构件j的平均服务处理时 间;d是指服务总延迟时间;B是指服务总响应时间;τ堤服务j的负载与资源利用率的相关 系数;uj,UW,丫 ,B是通过监测获取的,是根据历史数据给出的经验值;
[0016]方程(1)代表偏好资源利用率等于应用构建本身的开销加上有负载时的额外开 销;方程(2)代表响应时间等于总延迟加上总服务处理时间,其中,服务处理时间等于应用 构建的平均服务时间与未使用的偏好资源利用率的反比;从而可W从"负载-偏好资源利用 率'得到"负载-响应时阿'的性能方程。
[0017] 所述响应时间预测器具体过程。
[0018] (1)对于方程(1)和方程(2),总延迟和应用构件的平均服务处理时间是难W预测 的,是未知数;偏好资源利用率、应用构件本身的资源开销、负载是可W观测得到的,是已知 数;
[0019] (2)通过卡尔曼滤波算法,将未知数作为预测矩阵;已知数作为观测矩阵;
[0020] (3)通过给未知数进行赋值,得到响应时间的预测值。
[0021 ]卡尔曼的滤波方程如下:
[0022] X(k)=H(k)X(k-l)+Qk (3)
[0023] Z(k)=H(k)X(k)+化(4)
[0024] 其中X化)是预测矩阵,其值为(r,,c//VJ,格式请调整代表服务处理时间与服务流 总延迟的矩阵;Z化)为观测矩阵,其值为0/,.,叫.,.,r,,,拼,格式请调整代表应用实例的 资源利用率、负载与响应时间的矩阵;Q化)是过程激励噪声协方差矩阵,其符合Q化)~N(0, Q),R化)是测量噪声协方差矩阵,其符合R化)~N(0,R)的高斯分布。
[0025] 所述前馈控制器具体过程,用W修正卡尔曼滤波中的未知数,提高响应时间预测 的准确性。
[0026] (1)由于突发负载具有不确定性,所W,需要调节卡尔曼滤波器的噪声方差阵。
[0027] (2)噪声方差阵是符合高斯分布的矩阵,可表示为标准差的一阶方程;而滤波器计 算过程中的残差(观测矩阵真实值与预测值的差),该差值代表滤波器对测量值的依赖程 度,其值增大时,代表负载在突发变化,滤波器预测的准确性在下降,而该值又与噪声方差 阵的标准差有关,所W,可W通过分析残差的方差与均值,调整噪声方差阵的变化,从而保 证滤波器预测的准确性。
[0028] 通过TS