平均聚类系数_聚类方法排除CPU用量误报警
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用量误报警相关推荐
- 平均聚类系数_Python聚类算法的应用实例
一家批发经销商想将发货方式从每周五次减少到每周三次,简称成本,但是造成一些客户的不满意,取消了提货,带来更大亏损,项目要求是通过分析客户类别,选择合适的发货方式,达到技能降低成本又能降低客户不满意度的 ...
- python计算3j系数_聚类算法评估——轮廓系数及python实现
含义 轮廓系数(Silhouette Coefficient),是聚类效果好坏的一种评价方式. 可见轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优. 计算步骤 1)对于簇中 ...
- 单链聚类算法_聚类算法总结
1 什么是聚类算法? 聚类算法就是根据特定的规则,将数据进行分类.分类的输入项是数据的特征,输出项是分类标签,它是无监督的. 常见的聚类规则包括:1)基于原型的,例如有通过质心或中心点聚类, ...
- kmeans聚类算法_聚类算法入门:k-means
一.聚类定义 聚类分析(cluster analysis)就是给你一堆杂七杂八的样本数据把它们分成几个组,组内成员有一定的相似,不同组之间成员有一定的差别. 区别与分类分析(classificatio ...
- k-均值聚类算法_聚类算法-K-均值算法
k-均值聚类算法 聚类算法-K-均值算法 (Clustering Algorithms - K-means Algorithm) K-Means算法简介 (Introduction to K-Mean ...
- 图论中的聚类系数(Clustering coefficient)简单介绍
目录 前言 介绍 局部聚类系数 全局聚类系数 前言 在GraphSage论文的理论分析部分,涉及到一个概念叫做"Clustering coefficient",直译过来就是聚类系数 ...
- python社会网络度与聚类系数的计算(network+原理法)
一.借助包完成网络度与聚类系数的计算与可视化 python为我们提供了networkx包,可以帮助进行网络关键指标的实现.networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图 ...
- R语言Kmeans聚类、抽取聚类簇:fpc包的kmeansruns函数通过Calinski-Harabasz准则和平均轮廓系数(ASW)为Kmeans选择最优的聚类K值、并与层次聚类的最优K值进行比较
R语言Kmeans聚类.抽取Kmeans聚类找到的聚类簇:fpc包的kmeansruns函数通过Calinski-Harabasz准则和平均轮廓系数(Average average silhouett ...
- dbscan聚类算法_一种视频人群流的轨迹聚类方法
tags: KLT光流法,K-means聚类算法,DBSCAN聚类算法 方法简介 运动轨迹是一种在视频场景中捕捉复杂时间动态的有效方法.因此,我们将人流分割问题转化为一个轨迹提取和聚类任务.该方法分为 ...
- 利用python来求解网络的平均路径长度和聚类系数
利用python来求解网络的平均路径长度和聚类系数 # -*- coding: utf-8 -*- """ Created on Mon Aug 19 13:14:12 ...
最新文章
- 用于自动驾驶的实时 YUV 多任务 CNN
- Nature:初步探索限制饮食如何影响肿瘤生长
- Java黑皮书课后题第5章:**5.21(金融应用:比较不同利率下的贷款)编写程序,让用户输入输入贷款总额和以年为单位的贷款期限,然后显示利率从5%到8%每次递增1/8的各种利率下,每月支付额和总支付
- mysql将sql转为关系代数_关系数据库基础:关系代数运算知识笔记
- 双曲函数奇偶性_基本初等函数之奇偶性(强基系列42)
- 实践平台linux,关于构造Linux系统实践平台的设想
- Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)
- 深度神经网络反向传播算法
- “华为跳槽内幕”:有钱没用,你得值钱
- 1143 Lowest Common Ancestor
- 【Auto.js教程】Auto.js入门及第一个示例程序
- Linux文件管理器默认不显示隐藏文件
- 移动文件夹ubuntu
- 如何用c语言添加背景图片,如何实现在单文档的窗口背景上贴上图片?
- Python 获取优惠券淘宝口令
- 一手掌控美食新鲜“灵魂”且融汇到生活的方方面面
- 【后端教程】京东API网关实践之路!
- 2021你还在手写SQL吗?万字综述Text to SQL技术
- 面试官:线上环境 FGC 频繁,如何解决?
- ORALC常用函数(五)----STDDEV、STDDEV_POP、STDDEV_SAMP等函数
热门文章
- 【优化算法】人工电场优化算法(AEFA)【含Matlab源码 1797期】
- 【单目标优化求解】基于matlab多子群改进的海洋捕食者算法(MSMPA)求解单目标优化问题【含Matlab源码 1783期】
- wordpress 表格文字对齐_掌握Word对齐技巧,排版又快又美观
- 蒙特卡洛方法习题_蒙特卡洛方法
- # 畸变矫正_拒绝拍照边缘畸变 坚果Pro 3 Smartisan OS v7.2.0系统体验
- mysql数据库数据表的指令_mysql数据库和表操作命令
- mysql lvs+keepalived+mha_MHA+Lvs+Keepalived实现MySQL的高可用及读负载均衡_2(MySQL)
- 字符串 hash 唯一数字_物联网安全:基于Hash的RFID安全认证协议
- Redis源代码分析(三十)--- pubsub公布订阅模式
- JavaScript 动画 3---缓冲动画