一种面向云计算在线业务的异常负载检测方法

文档序号:9352722阅读:359来源:国知局
一种面向云计算在线业务的异常负载检测方法
【技术领域】
[0001] 本发明属于云计算应用技术领域,特别涉及一种利用在线业务的历史负载数据来 识别业务的异常负载以及异常运行状况的方法。
【背景技术】
[0002] 随着云计算技术的发展,越来越多的用户选择将业务部署或迀移到基于云架构的 平台上。利用云计算技术,分配到特定业务的计算、存储、网络等资源可以按需进行增加或 者减少,从而最大化资源利用率,降低业务的运营成本。在线业务在所有部署到云平台的业 务中占据了较大的比例。由于在线业务往往直接为用户提供服务界面,因此在线业务的负 载更容易受到用户访问量的影响。对业务的负载进行监控是云计算提供弹性资源伸缩的基 础,通过对负载进行不间断的监控,可以在资源需求变动的时候相应地调整资源分配量,从 而在保证业务服务质量的同时最大化资源的使用效率。
[0003] 对于云计算在线业务,在运行的生命周期内都会遇到由于突发用户请求、程序错 误等原因引发的异常运行状况。对于这些业务来说,对业务负载进行监控并根据负载状态 识别异常运行状态是保证业务能够正常运行的基本方法。对于由突发用户访问量导致的异 常负载变化,云平台可以通过资源弹性伸缩自动进行资源的调整,从而可以在无需人工干 预的情况下保证业务的资源分配和服务质量。然而对由程序异常导致的异常负载,自动化 的资源伸缩则无法保证业务的服务质量,因而需要将其同正常的负载变化区分开来,以保 证异常负载可以及时的得到人工干预。
[0004] 当业务负载发生变动时,能够自动、有效、迅速的判断负载是否处于异常状态可以 给运维人员带来极大的帮助。如果能够在异常发生之后通过业务的负载监控数据迅速发现 该异常的存在,便可以更快对出现异常的业务进行人工干预,及时排除掉或者修复出错的 程序,从而减少业务在异常状态下运行的时间,最大程度上保证业务的服务质量和用户体 验。
[0005] 现有的异常负载检测方法主要包括三类:基于阈值的异常负载检测,基于统计/ 回归模型的异常负载检测,以及基于性能特征的异常负载检测。基于阈值的异常负载检测 方法通过设定一定数量的性能阈值作为异常负载的条件,并利用对业务实时监测的负载数 据来匹配这些条件。若有条件被满足,即业务的性能数据超过某一设定的阈值,则认为当前 的负载为异常负载。这种方法依赖于运维人员的经验来设定异常负载的阈值条件,当业务 的负载特性发生变化时(例如业务程序升级),这些条件也需要进行相应的修正以保证后 续检测的准确性。并且这种方法对于突发访问的容忍能力低,当业务负载出现正常的快速 上升或者下降时会导致较高的误报率。
[0006] -种改进的方法是利用自适应的阈值来取代固定阈值。自适应的阈值方法周期性 地(例如每24小时)对负载数据的特性进行分析并相应地调整阈值设定。这种方法与固 定阈值方法一样存在高误报率的问题。并且当业务负载在短时间内震荡时,自适应的调整 算法无法发挥其作用,从而对于业务突发性请求的容忍能力没有相应的提升。
[0007] 基于回归/统计模型的异常负载检测方法对负载数据进行回归分析(例如线性回 归)并建立回归模型,从而得到负载的变化趋势,然后再通过该趋势来预测未来一段时间 内的负载情况作为异常检测的依据。对于具有周期性负载特征的在线业务,可以对不同周 期内的负载数据进行独立的建模,并将这些模型进行交叉对比,从而识别出异常的特征周 期。这类方法的问题在于模型需要不断的进行校准和修正,同时预测的准确性会直接影响 异常检测的准确性。
[0008] 基于性能特征的异常负载检测方法使用统计方法来对业务的性能特性进行建模, 并选择一定的业务性能特征参数与元数据作为异常负载的"指纹",从而根据这些"指纹"来 识别异常负载。对于一定时间内的业务负载数据,首先对其进行分析,计算出指纹,之后将 该指纹与该业务在其它不同时段的负载特性以及性能指标进行匹配,判断该指纹是否为异 常负载。识别过程通常利用到基于统计学的方法(例如高斯分布)或数据挖掘方法(例如 聚类算法)。检测的准确性依赖于这些"指纹"特征的准确性。由于业务的特征在业务的整 个生命周期内是不断变化的,因此这些"指纹"也需要不断的进行调整和修正,从而很难做 到完全的自动化。
[0009] 总结来说,现有的利用负载数据判断在线业务的异常状况的方法无法得到较高的 准确度,存在误报率高的问题。同时,这些方法在很大程度上依赖于运维人员的经验,无法 做到完全的自动化监控。

【发明内容】

[0010] 本发明为了克服已有异常负载检测方法的不足之处,提出了一种面向云计算在线 业务的异常负载检测方法,利用在线业务的历史负载数据,通过小波分析和统计分析来检 测在线业务异常负载的方法。该方法和已有方法相比,不仅能够获得更高的准确度,而且具 有更好的自适应能力。
[0011] 本发明提出了一种面向云计算在线业务的异常负载检测方法,利用在线业务的历 史负载数据,通过小波分析和统计分析来检测在线业务异常负载的方法,包括以下步骤:
[0012] 步骤1)利用固定周期采样方法,收集承载某个在线业务的所有主机的各负载项 的信息数据,主要包括CPU使用率、内存使用率、磁盘I/O速率和网络I/O速率,记为(ef,: …,…,啦),其中贫表示某一时间点i的负载统计数据,i = 1,2,….,n ;n为正整数; x表示主机的CPU、内存、磁盘I/O或网络I/O之中任一项使用率;
[0013] 步骤2)预处理收集到的所有主机的负载项信息数据:对于当前在线业务的每一 个负载项的信息数据,将其处理成具有固定时间间隔的时间序列,如果某一时间点数据为 空,则对该时间点进行数据插补处理;各负载项的时间序列以元组的形式存储,记为(M, …,sR 其中Sf caverage^i-j^k+i,%-1)xk+2啤-印丨…),其中 k 为时间序 列周期与采样周期的比值。将收集到的负载数据处理成具有固定周期的时间序列,之后合 并所有主机的负载项的数据,得到当前业务所有负载项数据的时间序列;
[0014] 步骤3)对在线业务的每一个时间序列进行离散小波变换,得到系数矩阵和细节 向量;在得到的系数矩阵中的每一个系数向量上进行统计分析,计算出每一个系数向量存 在异常负载的概率;
[0015] 步骤4)采用加权公式对所有系数向量的概率计算带权平均值,求得每一个时间 序列存在异常负载的概率P,利用如下公式:
[0016]
其中 %= e lcigl+1 (5)
[0017] 对于求得的时间序列异常概率,存入在线业务数据库;
[0018] 步骤5)对于每一个时间序列,将求得的概率与置信函数给出的置信区间做对比, 判断是否存在异常负载;若求得的概率落入置信区间内,则说明该时间序列不存在异常;
[0019] 步骤6)综合当前在线业务的所有负载项的负载信息以及求得的异常负载概率, 判断该在线业务是否存在异常负载;具体包括以下步骤:
[0020] 步骤6. 1)根据步骤5)的结果找出对应在线业务的所有存在异常负载的负载项的 时间序列;
[0021] 步骤6. 2)对于所有存在异常的负载项,记录其时间序列的最后一个点所对应的 时间点,作为该项异常发生的时间点,记录项存入在线业务数据库中;
[0022] 步骤7)使用K-均值聚类算法查找出当前在线业务存在异常的承载服务器。
[0023] 所述步骤2)具体包括:
[0024] 步骤2. 1)选出承载某一在线业务的所有主机的所有负载项的信息数据,将该
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1