基于隐马尔可夫模型的虚拟机性能异常预测
2016-09-25宋馥莉
鲁 明,宋馥莉
(河南广播电视大学,河南 郑州 450008)
基于隐马尔可夫模型的虚拟机性能异常预测
鲁 明,宋馥莉
(河南广播电视大学,河南 郑州 450008)
基于隐马尔可夫模型(Hidden markov model,简称HMM)的虚拟机性能,提出了一种虚拟机性能异常的预测方法。该方法的核心思想是基于业务系统的运行时资源消耗具有一定的规律性。通过该规律性采用隐马尔可夫模型刻画当前业务系统的正确状态,并根据业务系统预测结果是否偏移正常状态来判定业务系统是否出现性能异常。基于TPC-W的试验结果显示,该方法具有快速发现和定位性能异常的能力,且其运行时开销较小。
虚拟机;性能异常发现;机器学习
随着云计算业务范围的不断扩展,越来越多的关键业务系统向云计算迁移,云计算服务的可靠性和稳定性日益被关注。虚拟机作为构建云计算底层信息化的关键性基础设施,其运行性能的优劣和可靠性,直接关系到用户对云服务的体验度和满意度[1-2]。软件分布在 Internet 上应该是自治的、上下文敏感的、演化的,所以需要提供更好的可扩展性、可读性和可重用性[3]。如何对虚拟机性能异常进行准确预测,对虚拟机的故障信息进行准确及时定位成为研究热点。第3方数据显示,谷歌网络的故障率约为每年每集群1 h,国内阿里云数据服务商的3 000台规模服务器每天会损坏3块硬盘,其sata磁盘年故障率约为3.6%。传统虚拟机性能异常预测技术,主要针对系统正常运行情况下的参数轮廓进行建模,然后提取系统当前运行状态的参数,勾画系统当前运行状态的轮廓,以当前运行状态轮廓与正常系统运行状态轮廓进行对比,从而得出系统当前是否异常的结论,一般采用神经网络、专家系统、数学统计和模式匹配技术,来对日志文件或者网络流量进行分析对比,从而判断当前虚拟机的性能异常情况。BOULON等[4]设计开发了基于Hadoop云平台的大规模监控系统chukwa。该系统只提供了虚拟机的管理功能,虚拟机性能异常预测只能靠系统管理者的经验来获得 。JIN等[5]提出一些虚拟机内部监测的方法,分别从主机代理、检查点和回滚、陷阱和检查、体系结构监控这4个内部指标进行内部监测方法进行对比分析,以评估对虚拟机的影响程度、健壮性影响等。CHEN等[6]在一种基于PCA的虚拟机聚类的云监控可扩展性改进中,采用了统计分析的方法对集群内的虚拟机的相似行为进行识别分类,可实现基于虚拟机的一些性能指标进行相似虚拟机的自动聚类分组,对虚拟机性能异常预测的功能只能靠人为的对聚类分组的数据进行推测。田文洪等[7]提出了名为CloundMoni的虚拟机监控框架,却未对虚拟机性能异常状态的预测展开重点研究。王敏等[8]在基于主元法分析法的虚拟机异常监控研究中提出了一种对虚拟机进行多维数据采集,然后采用主元法对采集到的数据进行分析,从而得出虚拟机系统是否异常的结论。该方法在对集中式计算环境,或是针对已知异常源分析中对虚拟机状态异常有较高的识别率,却不太适合于在线部署实施[9]。于明等[10]提出了一种基于信息熵的虚拟机异常检测方法。这种方法往往会受到信息采样矩阵行值N的设置影响,而采用矩阵行值N的最优化设置,目前尚未有相关的理论依据。本研究针对业务系统运行时系统资源消耗有一定的规律性,同时兼顾考虑到资源竞争对资源消耗分布的影响,提出了一种基于隐马尔可夫模型(Hidden Markov model,简称HMM)的虚拟机性能异常发现方法,能快速发现和定位性能异常,以便达到及时修正此类异常的目的。
1 隐马尔可夫预测方法
隐马尔可夫模型(Hidden Markov model,HMM)是统计模型,用来描述一个含有隐含未知参数的马尔可夫过程[11-12]。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来进一步分析,是在被建模的系统被认为是一个马尔可夫过程与未观测到的(隐藏的)的状态的统计马尔可夫模型。
典型的隐马尔可夫模型如图1所示。它是用五元组λ(S,O,A,B,π)来刻画的:
图1 隐马尔可夫模型Fig.1 Hidden Markov model
图1中:S={S1,S2,…,SN}表示隐马尔可夫模型的隐含状态,例如系统健康还是互相干扰;O={O1,O2,…,OM}表示可观测的系统特征。例如,监测的CPU、内存、网络等资源使用情况;A={aij,i,j=1,2,…,B}和B={bjk,j=1,2,…,N,k=1,2,…,M}表示各个状态之间的转移概率趋势。
本研究采用向量数组{S,I}表示状态空间,其中S表示系统的健康状况,其取值范围为{h1,h2},分别表示系统处于正常、异常状态;I表示系统的干扰状况,其取值范围为{l1,l2},分别表示无干扰和有干扰2个状态。因此,可得到系统的4个(H*L)隐藏状态,以及它们之间的概率转移矩阵
可观测的系统状态采用CPU利用率、内存利用率、网络利用率、磁盘读写速度这4个特征来刻画。因此,可以得到构成隐马尔可夫模型的输出状态的概率矩阵
2 基于隐马尔科夫链模型的性能异常检测模型及算法
2.1性能异常检测模型设计
如图2所示,根据系统状态观测序列Y=(y1,y2,…,yt),计算系统在下一个时刻Xt+1进入干扰状态的概率P(Xt+1=Xi)。具体而言,首先计算t时刻系统分别处于不同状态的概率向量数组πt,然后在此基础上计算t+1时刻系统处于不同状态的概率向量数组Xt+1,根据异常状态分布确定t+1时刻出现异常的概率。
图2 概率预测算法过程Fig.2 Probabilistic prediction algorithm process
(2)
通过上述计算过程,可以得到t+1时刻系统处于不同状态的概率。
2.2模型参数训练
建立一个通用HMM模型λ=(S,O,A,B,π)确定模型的状态数,允许的状态转移和观测序列向量的大小。
将训练得到的数据与N个状态进行对应,计算隐马尔可夫模型的初始参数,状态之间的转移概率矩阵A在这里初始化,设定状态i只能返回到本身或者转移到j=i+1状态,即aij=0,ji+1。
对于初始状态概率分布,设定πi=1,即假设HMM是从第1个状态开始的,而对于观察概率的初始化,假设:bij=1/M,1≤i≤N, 1≤k≤M,这样,就初始化一个隐马尔科夫模型λ=(S,O,A,B,π)。
最后采用向前-向后算法或者Viterbi算法计算出观察向量O在这个模型下的P(O|λ),用Viterbi分割取代均匀分割,重新进行参数的初始估计。
初始模型确定之后,利用Baum-welch重估算法对初始隐马尔科夫模型进行重新计算。隐马尔科夫模型的各个参数在这个步骤中得以重新估计,得到一个新的λ=(S,O,A′,B′,π′),然后利用向前-向后算法或者Viterbi算法计算出观察值序列O在这个模型下的P(O|λ′),为了估计出最接近于观察值序列O的模型,设定门限值C,当|P(O|λ′)-P(O|λ)| 本研究所述方法已在基于Xen的虚拟化环境下进行了原型实现。本研究将多台虚拟机在不同的应用场景内进行30多次试验,模拟虚拟机异常检测,每次异常检测的结果相似,从这些试验数据来验证分析所提出的方法的有效性。这里由于篇幅有限,下面只给出其中一次的试验结果。 试验的硬件部署环境如图3所示,服务器A作为主节点运行Xen服务程序,其配置了Intel Core i7 CPU 3.40 GHz 4 CPU,4 G内存以及千兆网卡,其同样配置了Intel Core i7 CPU 3.40 GHz,4 G内存以及千兆网卡。服务器F作为NFS文件服务器,用于存储虚拟机的镜像文件,其硬件配置为Intel Core2 CPU 2.83 GHz,4 G内存以及千兆网卡。另外有一台负载生成的客户端节点C,用于产生对系统的压力负载。所有的服务器节点都通过一个千兆的交换机连接在同一个局域网中。 其中,load generator作为负载生成器,使用的是Apache公司的Jmeter用于对系统进行压力测试。Xen作为一个开放源代码虚拟机监视器,Fedora是一款基于linux的操作系统,作为系统测试的平台。 图3 试验系统 服务器A上安装2个Tomcat 7.0.41虚拟机,其命名分别是Node 0和Node 1,每台虚拟机占用2 V CPU,2 G内存。客户端节点C部署了Windows操作系统,并运行JMeter压力生成程序来产生负载。 控制Jmeter对Node 0进行压力测试,使其CPU利用率分别从0%到100%,Node 1空闲。可见本算法未发现Node 0和Node 1出现性能异常,Steal和Usr之间没有出现分歧。其中,Steal表示虚拟机应该能使用而未使用的CPU资源情况,Usr表示虚拟机实际使用的CPU资源情况。 图4 不存在资源竞争的情况Fig.4 No Competition for resources 控制Node 0和Node 1所有虚拟CPU映射到同一物理CPU;控制Jmeter对Node 0进行压力测试,使其CPU利用率分别从0%到100%;控制Jmeter对Node 1进行压力测试,使其CPU利用率控制在75%。可见本算法能有效发现Node 0和Node 1出现性能异常,发生的拐点是当Node 0的使用率为25%时,且随着Node 0压力的增加,图中 Steal和Usr之间鸿沟越来越大。 两台虚拟机竞争同一CPU的情况: 图5 存在资源竞争的情况 这是因为Node 0和Node 1两台虚拟机使用同一物理CPU,其最多能使用到100%的CPU资源。Node 1正常需要获取75%的CPU,但当Node 0的CPU资源需求增加后,Node 0和Node 1的CPU资源需求会大于100%。此时会产生资源竞争现象,根据虚拟化默认调度算法,Node 0和Node 1会平分CPU资源,均为50%。 综上所述,本算法能有效地检测到因资源竞争而导致的性能问题。 计算机主机的异常行为多种多样,而在云计算的大背景下虚拟机的异常行为更为复杂多变,已有的针对主机异常检测的方法,如日志审计法、文件系统监控法、操作系统内核监控法、网络连接监控法等检测方法[11-12]。这些方法已经很难判断云环境下虚拟机的当前运行性能异常情况了。虚拟机的失效恢复机制是保障虚拟机可靠运行的重要方法,但是,由于虚拟化环境的特殊性,对整个虚拟机状态的复制备份过程是一个相当耗费资源的过程。传统的研究思路主要集中在对备份过程中产生的数据进行优化的方面,通过压缩或者去除冗余数据的方式来降低系统的开销[13-15]。本研究提出了一种利用隐马尔可夫模型对系统健康状态进行预测的方法,主要把采集到的性能指标采用了隐马尔科夫链模型进行分析预测,同时给出了训练数据的建模算法,在扩大性能指标采集的全面性基础上,提升了性能异常检测的准确性,对系统的备份频率进行动态调整,有效降低了系统正常状态下的性能开销问题,使有效计算可以获得更多的系统资源,提高了用户的响应时间。 [1] 陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报,2009,20(5):1337-134. [2] 刘鹏.云计算[M].北京:电子工业出版社,2011. [3] 鲁明,李旻.基于OSGi的Web容器重构[J].河南大学学报(自然科学版),2010,40(3):296-298. [4] BOULON J,KONWINSKI A, CHUKWA B, et al.A large-scale monitoring system[J].Computer Networks,2008,52(9):2013-2025. [5] JIN H, DENG L, WU S, et al., Live virtual machine migration with adaptive, memory compression [C].[S.L.]: International Conference on Cluster Computing, 2009:1-10. [6] CHEN H C,JIN H,HU K,et al.Scheduling overcommitted VM:behavior monitoring and dynamic switching-frequency scaling [J].Future Gereration Computer Systems,2013,29(1):341-351. [7] TIAN W H,SUN X S.CloudMoni:a monitoring framework for on demand virtual machine allocation in cloud data centers[J].Journal of Information and Computational Science,2013,10(4):4936-4946. [8] 王敏,邓胜东.基于主元分析法的虚拟机异常监控研究[J].西安邮电学院学报,2012,24(6):728-734. [9] SHAO Z Y,HE L.VSA:an offline scheduling analyzer for xen virtual machine monitor[J].Future Gereration Computer Systems,2013,29(8):2067-2076. [10] 于明,张雨.云环境基于多属性信息熵的虚拟机异常检测[J].华中科技大学学报,2015,43(5):60-68. [11] 刘绍辉,孙建超,姚鸿勋.一种改进的基于马尔科夫链的扩频图像隐写分析方法[J].中国科学院研究生院学报,2011,28(5):690-695. [12] 王卅,张文博,吴恒,等.一种基于硬件计数器的虚拟机性能干扰估算方法[J].软件学报,2015,26(8):2074-2090. [13] TAN Y, VENKATESH V, GU X. RESILIENT self-compressive monitoring for large-scale hosting infrastructures [J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 24(3):576-586. [14] 宋彩华.云资源监控中的数据传输模型研究[D].郑州:郑州大学,2013. [15] TOOSI A N, CALHEIROS R N, BUYYA R. Interconnected cloud computing environments: challenges, taxonomy and survey[J]. Acm Computing Surveys, 2014, 47(1):1-47. (责任编辑:常思敏) PredictionofvirtualmachinepropertyabnormalitybasedonhiddenMarkovmodel LU ming,SONG Fuli (Henan Radio and Television University, Zhengzhou 450008,China) We made an unusual discovery of virtual machine performance based on Hidden Markov Model. The core idea is that the consumption of resources has a certain regularity when the operation system runs. Hidden Markov model is adopted to correctly portray the current state of business systems, and according to the results of forecasts to determine whether the business system is abnormal or not. The test results based on TPC-W show that this method has the unusual ability to quickly find and locate properties, and the cost is much lower. virtual machine; discovery of property abnormality; robotic learning 2016-01-08 河南省教育厅科学技术研究重点项目(14A520084);河南省科技厅科技攻关课题(152102310325;152102310118) 鲁明(1977-),男,河南开封人,讲师,硕士,主要从事计算机应用技术和教育信息化研究。 1000-2340(2016)04-0563-05 TP 311 :A3 试验及结果分析
5 结论与讨论