[A类多层应用排队论]Stochastic Resource Provisioning for Containerized Multi-Tier Web Services in Cloud

Stochastic Resource Provisioning for Containerized Multi-Tier Web Services in Cloud

IEEE Transactions on Parallel and Distributed Systems,2017. CCF A类

Docker背景下构建的多层应用,运用G/G/n进行建模并且使用随机过程来解决非线性最优化问题。

背景

不能在变化的流量中适当地分配资源是导致响应时间延迟和资源浪费的重要因素。而响应时间的延迟会造成商业软件明显的损失,比如100ms的延迟会导致亚马逊损失1%的销售额,Google在遇到500ms的延迟时会损失20%的流量。

流量与CPU占用率的映射

尽管流量与CPU占用率之间的关系是非线性且变化的,它可以在每个时刻被描述出来。给定一个独立的容器集合S,流量数 λ i \lambda_i λi在容器i( i ∈ S i\in S iS)产生的CPU占用率 u i u_i ui在时间间隔t上可以表述为以下形式(引用:Z. Abbasi等 Thermal aware server provisioning and workload distribution for internet data centers./ Proc. ACM INt. Symp. High Perform. Distrib. Comput., 2010,pp.130-141)

λ i , t = Λ ⋅ u i , t \lambda_{i,t} = \Lambda \cdot u_{i,t} λi,t=Λui,t

其中quantity Λ \Lambda Λ被定义为一个peak workload与相关的peak CPU utilization的比例,在仅有一个容器i接受流量且其资源耗尽时。如此我们可以改写上式为

λ i , t = λ p e a k u p e a k u i , t \lambda_{i,t} = \frac{\lambda^{peak}}{u^{peak}}u_{i,t} λi,t=upeakλpeakui,t

quantity Λ \Lambda Λ的测量方法为在测试环境中构建一个只有容器i的层,并加流量到saturation。

排队现象描述

参考文献:

  1. J. Leverich等 Reconciling high server utilization and sub-milisecond quality-of-service. Proc. Eur. Conf Comput. Syst. 2014, Art. no.4
  2. J.Li等 Tales of the tail: Hardware, OS and application-level source of tail latency. Proc. ACM Symp. Cloud Comput., 2014, 1-14.

上述文献指出了一个现象,即如原图5所示,在高度负载的情况下,资源占用率与QoS高度相关。

我个人的理解是这样的。随着流量增大,有两种情况,一种是较小的时候,此时随着进入流量的增加,CPU占用率会逐渐增大,但响应时间会基本保持不变;此时服务会不断增加线程占用CPU,但是服务的并发能力没有达到上限。流量进一步增加就会到达第二个阶段,此时随着入口流量的增加,CPU占用率会变得相对平稳,但是响应时间会快速增加,此时服务的并发能力已经耗尽,因此会出现排队,也就是原文所提到的queueing delay。

同时,流量的种类(感觉作者的意思指的是流量的组成,即平均而言单个流量带来的资源需求是不同的)也会对CPU占用率产生直接影响。

建模

首先将网络请求描述为一个时间序列,我们认为一个时间序列可以被定义为一组随机变量,令 X t X_t Xt作为一个随机变量打死表一个固定长度为l的时间点t中所含有的所有请求数。如此,可以得到一组数据 { λ t t : ∈ [ 1 , T ] } \{\lambda_t t:\in [1,T] \} {λtt:[1,T]}来描述T*l时间内的访问量。

我们将上述集合作为一个随机过程,并将每一个观测值 λ t \lambda_t λt作为一个realization of the stochastic process。

作者使用了G/G/m排队系统来捕捉每一层的行为,对其进行建模。服务的到来时间与服务时间都服从一个随机的固定分布,且遵循FIFO的服务状况,长度为无限。

系统的请求到达速率为 λ \lambda λ,请求处理速率为 μ \mu μ,则到达的间隔时间的期望显然为 1 / λ 1/\lambda 1/λ

对于m台服务器,有 λ < m μ \lambda < m\mu λ<mμ,或者根据Little’s law,等价的有$\rho=\frac{R}{m}<1 $ s.t. R = λ μ R=\frac{\lambda}{\mu} R=μλ,其中 ρ \rho ρ是utilization factor,R是offered load,系统说是会处于稳定状态。

后面这部分过程略过,因为G/G/m是没有详细分析公式的,所以作者是使用 ρ → 1 \rho \to 1 ρ1的情况下G/G/1的公式分析与M/M/n来进行近似。

最后是得到了一系列的约束条件,然后求解一个两步的随机最优化模型来取得最佳的实例数量。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值