Ji Xue-16,主动工单管理

论文Ji Xue (威廉和玛丽学院), Robert Birke(IBM苏黎世研究院),等,Managing data center tickets: prediction and active sizing,2015

I.介绍

通过预测未来将要发生的行为来降低工单数量,通过引入动态VM伸缩来调整资源用来,从而避免激活工单。环境包含8万VM,构建在6000物理机之上。

之前的工作[7],提出用神经网络可以有效预测用量,但训练成本高。解决方案:挖掘用量时间序列的空间依赖性,开发敏捷预测机制。Signature VM序列,用量序列子集,可以代表所有其他序列。

II统计和观察

A 用量工单

数据来自IBM生产数据中心,不同UNIX主机(AIX,HPUX,Linux,Solaris等),大多数VM是VMWare虚机。采样自2015-4-3到2015-4-9,从6000台物理机,8万台VM的CPU/内存,以及用量数据,每15分钟一个采样点。

当用量值超过阀值,触发用量工单。考虑三个阀值:60%, 70%, 80%。图2展示了2015-4-3的CPU/RAM用量序列。

图(a)至少有1个VM生成用量工单的物理机个数(百分比)。

图(b)每个物理机上CPU和内存工单数的均值和标准差。

图(c)物理机中生成80%工单的VM均值。

因为肇事的VM在物理机中只有1-2台,所以给这1-2台VM增加CPU或内存,可以降低总体工单量。否则,如果工单在物理机中的VM是平均分布的,那重设规格没什么用。

B 空间依赖性

计算物理机内的VM的CPU,Memory的Pearson相关系数:

1)每对CPU用量之间

2)每对内存用量之间

3)任意CPU-内存对

4)同VM的CPU-内存对

对每个物理机,我们计算这些数据的中值;然后考虑所有物理机上的累计分布函数CDF。结果见图3。图3可见,1),2),3),4)的均值分别为0.26,0.24,0.3,和0.62。可见同一物理机内的VM的CPU-Memory用量是高度相关的。

III空间时间预测模型

资源需求序列是实际用量序列加上资源配额序列。,这里的M是物理机内VM个数,N是考虑的资源个数。

标志序列:通过时序模型来预测的最小序列个数。

依赖序列:需求序列的其他部分。

给定,所有依赖序列的可用标志序列的线性组合来表示:

A搜索标志序列

第一步,定义初始标志序列集合,可以用DTW,或者基于相关系数的聚类CBC来实现。

第二步,定义标志序列的最终集合。用VIF(variance inflation factor)和逐步回归,来侦测和消除初始集合中的共线性序列。见图4

第一步,时间序列聚类

DTW动态时间封装法,找到时间序列聚类,让聚类内的距离最短。对大序列有问题。对图1所示的4个序列做DTW,DTW提供给了三个聚类:聚类1 VM1,聚类2 VM2,和聚类3 VM3,VM4。而CBC会把VM1,VM3,和VM4放到一个聚类。事实上,VM1的序列,VM4的序列,,都可以表示为VM3的序列的线性模型:

DTW计算细节如下:

两个序列:和

首先构造按对距离的平方矩阵。

两个序列的距离差异度,包装了矩阵内累积距离最小化,计算如下:

下一步用层次化聚类法【13】对任意给定的序列进行聚类,从2到。目标是把初始集合减掉一半。

用平均侧影值【14】来决策优化的聚类数。

每个序列i的侧影数:

a(i)表示序列i与同一个聚类内部的所有其他序列的平均距离差异度。

b(i)表示序列i与不同聚类的所有序列的最小平均距离差异度。

对一个给定的聚类个数,可以计算当前聚类条件下,所有序列侧影数的平均值。

选取不同的聚类个数,使得侧影数平均值最大,就是我们要找的聚类数。

CBC基于相关系数的聚类

把相关系数高的序列归到一类上。

对于每台物理机,首先对所有个序列两两配对,计算每个配对的相关系数,记为。

这样,对于一个需求序列,存在对。

为了形成一个聚类,首先对每个序列排序,首先根据大于阀值的的总个数,然后再按大于阀值的的均值。【15】建议阀值

排完序后,找到排头的,把这个序列,以及和它相关系数大于阀值的序列构成一个新聚类。这个新聚类中,排头的序列作为标志序列。

递归选择下一个排序列表中的排头序列,循环上述步骤,直到排序列表为空。

第二步,逐步回归

对标志序列集合的每个序列,我们用其余的标志序列对它做回归,并计算VIF值【15】。实践经验是VIF大于4就表示该序列可以用初始集中其他序列线性表示。找到至少一个VIF大于4的序列之后,我们用标准的逐步回归来去掉这个序列,该序列可以由其他标志序列的线性组合来表示。

B 预测模型

为了预测所有的需求序列,首先用神经网络模型和历史数据【7】来预测标志序列。然后,对每一个依赖序列,用标志序列做线性回归,用最小二乘估计来得到相关系数。

C 结果

1)DTW与CBC的区别

DTW,70%的物理机都只有2-3个聚类,其余有4-31个聚类。

CBC,有更多的聚类,因此有更多的标志序列。

2)两步方法的有效性

比较每一步的标志集合缩减和预测精确度。用横线表示25%,50%,75%。用虚线表示最极端的数据点。

(a)6000台物理机的每一台,标志序列占全部序列的百分比。DTW在两个步骤中把标志序列减少到26%。对于CBC,第一步减少到82%,第二步到66%。

(b)预测精确性。APE(绝对百分比误差)定义为:

DTW的APE是28%,而CBC只有20%多。

两步过程对精确度没有影响。

3)Inter-和Intra-资源模型

CBC(DTW)的平均APE:

inter模型是20%(28%);intra-CPU是21%(26%);intra-内存是23%(31%)。

平均标志序列数:CBC(DTW):

inter模型是66%(26%);intra-CPU是81%(41%);intra-内存是90%(45%)

总体上,inter模型比intra模型结果要好。

IV 资源规格重置

最小化目标:使用阀值超限异常的最小化。多选项背包问题。

分别考虑CPU和RAM。

下文中,定义的下标i为VM的索引。

A 工单优化问题的形式化

对一台物理机中的VM进行重新规格设置。

最重要的限制:所有的虚拟资源之和小于物理资源:

表示VM-i分配的虚拟资源量。

预测模块提供整个resizing窗口的所有需求序列,对每个VM i,T个工单窗口,

引入一个指示变量,表示VM i在t时刻有工单,由于需求超过了特定的用量阀值,。

因此优化过程可以写成:

限制(6)保证了当需求超过工单阀值时,必为1;否则,目标函数使趋向为0。

这个优化问题是一个典型的混合整数线性规划问题(MILP)。

1)Resizing算法

把原始问题转换成MCKP的原因是:

存在大量的MCKP有效解法。

允许整数变量数量的缩减。

用引理4.1把原始问题转换为MCKP问题。

引理4.1:对于VM i,优化的size

包含原始需求序列中的降序排列,加上0。例如,给定

,则缩减为

仅包含不重复值和0。

引入新变量,表示选择唯一值作为VM i的量。

下一步是定义当选择作为VM i的量,即之后,观察到的工单数,表示为。

举例,当前量=70,工单阀值=60%,

一台物理机的全部工单数可以写作:

全部容量的资源限制可以写作:

总结,我们归结成一个multi-choice 背包问题,原始背包问题的item被分成subgroup,每个group只能选择一个item。把我们的问题类比成多选问题,我们有M组VM需求,我们需要为每一组选择一个需求作为他们的capacity。

决策变量是,定义一个特定的需求是否可以选择作为VM i的容量。

工单数可以作为“权重”。

于是可以把问题改写为:

为了解MCKP,我们用最小化算法【19】。

Ji Xue-16, 异常检测+VM克隆

论文,同作者,同年,Tale of Tails: Anomaly Avoidance in Data Center,

I 介绍

异常VM分为两个类型:暂态异常,和持续异常。见图1。

TailGuard包含两个步骤:

Tail用量预测

VM克隆策略,把物理机的CPU、RAM负载重分布。

1)CPU持续异常的元凶是虚机整合(VM consolidation)。

2)CPU tail用量与物理机的CPU用量高度相关,且服从正态分布。

3)RAM异常与VM consolidation相关度不如CPU高。

II 数据特征

生产数据中心的trace记录,包含CPU和RAM利用率,每15分钟采样一次。6000台物理机,8万台VM,从2015年4月3日到9日。每台物理机上平均10台VM。

A,总览

异常VM的按天统计,CPU阀值60%,RAM阀值80%。

图2(a),物理机CPU按天超阀值次数平均值的概率密度函数。

图2(b),这些超阀值的行为是暂态异常还是持续异常。多数异常持续时间超过了1个时间窗口。

图2(c),物理机平均CPU用量超过阀值,和异常类型,之间的关系。

图2(d-f),相似结论,对RAM。

B. 物理机异常VM的根因分析

VM的聚集程度与CPU/RAM异常的关系。VM聚集程度定义为单物理机的VM个数。

图3(a),x轴是不同的VM聚集度,y轴是CPU用量超阀值的次数分布。

图3(b),RAM

图3(c-d),物理机中至少一台VM有一次用量超限的概率。

说明物理机CPU超限,依赖于VM的CPU超限

C. CPU用量是否平衡

图4(a),多数租户的平均物理机用量都很低,90%的租户平均CPU用量少于35%。

CV等于均值除以标准差。

图5(a),按天物理机用量的CV均值,和95%用量的CV均值的累计分布函数。物理机的长尾用量显示高CV值,均值0.5;而平均用量CV值低,均值0.12。说明均值用量随时间较稳定。

图5(b),预测误差APE的累计分布函数。

通过last value预测均值用量,而通过均值用量来预测长尾用量。

根据均值用量,把物理机分为若干bin。在每个bin内,计算CPU的长尾用量。图6,CPU的95%用量的累计分布函数,bin宽度为正负3%。

图6显示,在每个bin内,长尾用量分布近似于正态分布。例如,对于(60+3)%的bin,95%ileCPU用量的均值和标准差是79.9%,和8.2%。

III TailGuard

两个关键步骤:

预测CPU长尾用量;

物理机负载重分配,通过VM克隆和负载在线监控。

图7描述了工作流程

TailGuard首先为需要降低负载的主机主动创建VM克隆,把克隆放到空间较富裕的主机上。

然后,在原始VM和克隆VM之间分配CPU负载。

克隆完成后,在线监控CPU,RAM用量。

A) 预测物理机CPU Trail用量

目标是预测长尾用量L,对于一个给定的物理机,长尾分布的均值和标准差已知。

和表示物理机所属的长尾分布的均值和标准差。

是安全边界。

1)找到长尾分布

如何把物理机划分到bin,根据其平均用量。

对每个物理机和所有的租户,计算(M,T),M表示均值用量,T表示长尾用量。根据M划分bin。

Bin的宽度设为1%已经足够了,所有的bin至少有30个长尾样本。

对每个bin,抽取两组:

(i),bin的均值,和T的均值。

(ii),bin的均值,和T的标准差。

我们把这两组元组都放到图9(a)和(b)中。

Bin的均值,和bin中tail usage的均值存在线性关系。

Bin的均值,和tail的标准差存在二次关系。

我们用公式2-3来拟合上面的图9:

2)TRA 长尾预测

对某个tenant i,有一个优化的均值,令目标值=优化状态下得到的平均长尾用量。于是可以计算:

从而得到优化的。

最终,租户i的物理机j的预测值是:

B)VM克隆

平均聚类系数_聚类方法排除CPU用量误报警相关推荐

  1. 平均聚类系数_Python聚类算法的应用实例

    一家批发经销商想将发货方式从每周五次减少到每周三次,简称成本,但是造成一些客户的不满意,取消了提货,带来更大亏损,项目要求是通过分析客户类别,选择合适的发货方式,达到技能降低成本又能降低客户不满意度的 ...

  2. python计算3j系数_聚类算法评估——轮廓系数及python实现

    含义 轮廓系数(Silhouette Coefficient),是聚类效果好坏的一种评价方式. 可见轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优. 计算步骤 1)对于簇中 ...

  3. 单链聚类算法_聚类算法总结

    1      什么是聚类算法? 聚类算法就是根据特定的规则,将数据进行分类.分类的输入项是数据的特征,输出项是分类标签,它是无监督的. 常见的聚类规则包括:1)基于原型的,例如有通过质心或中心点聚类, ...

  4. kmeans聚类算法_聚类算法入门:k-means

    一.聚类定义 聚类分析(cluster analysis)就是给你一堆杂七杂八的样本数据把它们分成几个组,组内成员有一定的相似,不同组之间成员有一定的差别. 区别与分类分析(classificatio ...

  5. k-均值聚类算法_聚类算法-K-均值算法

    k-均值聚类算法 聚类算法-K-均值算法 (Clustering Algorithms - K-means Algorithm) K-Means算法简介 (Introduction to K-Mean ...

  6. 图论中的聚类系数(Clustering coefficient)简单介绍

    目录 前言 介绍 局部聚类系数 全局聚类系数 前言 在GraphSage论文的理论分析部分,涉及到一个概念叫做"Clustering coefficient",直译过来就是聚类系数 ...

  7. python社会网络度与聚类系数的计算(network+原理法)

    一.借助包完成网络度与聚类系数的计算与可视化 python为我们提供了networkx包,可以帮助进行网络关键指标的实现.networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图 ...

  8. R语言Kmeans聚类、抽取聚类簇:fpc包的kmeansruns函数通过Calinski-Harabasz准则和平均轮廓系数(ASW)为Kmeans选择最优的聚类K值、并与层次聚类的最优K值进行比较

    R语言Kmeans聚类.抽取Kmeans聚类找到的聚类簇:fpc包的kmeansruns函数通过Calinski-Harabasz准则和平均轮廓系数(Average average silhouett ...

  9. dbscan聚类算法_一种视频人群流的轨迹聚类方法

    tags: KLT光流法,K-means聚类算法,DBSCAN聚类算法 方法简介 运动轨迹是一种在视频场景中捕捉复杂时间动态的有效方法.因此,我们将人流分割问题转化为一个轨迹提取和聚类任务.该方法分为 ...

  10. 利用python来求解网络的平均路径长度和聚类系数

    利用python来求解网络的平均路径长度和聚类系数 # -*- coding: utf-8 -*- """ Created on Mon Aug 19 13:14:12 ...

最新文章

  1. 用于自动驾驶的实时 YUV 多任务 CNN
  2. Nature:初步探索限制饮食如何影响肿瘤生长
  3. Java黑皮书课后题第5章:**5.21(金融应用:比较不同利率下的贷款)编写程序,让用户输入输入贷款总额和以年为单位的贷款期限,然后显示利率从5%到8%每次递增1/8的各种利率下,每月支付额和总支付
  4. mysql将sql转为关系代数_关系数据库基础:关系代数运算知识笔记
  5. 双曲函数奇偶性_基本初等函数之奇偶性(强基系列42)
  6. 实践平台linux,关于构造Linux系统实践平台的设想
  7. Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)
  8. 深度神经网络反向传播算法
  9. “华为跳槽内幕”:有钱没用,你得值钱
  10. 1143 Lowest Common Ancestor
  11. 【Auto.js教程】Auto.js入门及第一个示例程序
  12. Linux文件管理器默认不显示隐藏文件
  13. 移动文件夹ubuntu
  14. 如何用c语言添加背景图片,如何实现在单文档的窗口背景上贴上图片?
  15. Python 获取优惠券淘宝口令
  16. 一手掌控美食新鲜“灵魂”且融汇到生活的方方面面
  17. 【后端教程】京东API网关实践之路!
  18. 2021你还在手写SQL吗?万字综述Text to SQL技术
  19. 面试官:线上环境 FGC 频繁,如何解决?
  20. ORALC常用函数(五)----STDDEV、STDDEV_POP、STDDEV_SAMP等函数

热门文章

  1. 【优化算法】人工电场优化算法(AEFA)【含Matlab源码 1797期】
  2. 【单目标优化求解】基于matlab多子群改进的海洋捕食者算法(MSMPA)求解单目标优化问题【含Matlab源码 1783期】
  3. wordpress 表格文字对齐_掌握Word对齐技巧,排版又快又美观
  4. 蒙特卡洛方法习题_蒙特卡洛方法
  5. # 畸变矫正_拒绝拍照边缘畸变 坚果Pro 3 Smartisan OS v7.2.0系统体验
  6. mysql数据库数据表的指令_mysql数据库和表操作命令
  7. mysql lvs+keepalived+mha_MHA+Lvs+Keepalived实现MySQL的高可用及读负载均衡_2(MySQL)
  8. 字符串 hash 唯一数字_物联网安全:基于Hash的RFID安全认证协议
  9. Redis源代码分析(三十)--- pubsub公布订阅模式
  10. JavaScript 动画 3---缓冲动画