一种面向存储系统的突发访问行为的预测方法及装置
技术领域
本发明涉及一种突发访问行为的预测方法及装置,尤其是一种面向存储系统的突发访问行为的预测方法及装置,属于数据挖掘和数据存储领域。
背景技术
突发访问是一种非常普遍的数据访问模式,它包括了各种计算机相关的工作负载(如磁盘I/O,文件系统访问,网络数据包,网页访问等等)。突发指的是在极短时间内形成大量的工作负载,造成服务器满足不了急剧上升的访问量而无法顺利完成用户提交的相关请求。例如,在2008年的奥林匹克运动会中,由于大规模的访问请求,导致了订票系统的奔溃以至于无法顺利被访问。再如1998年世界杯在实况转播时的数据访问突然激增到一个非常高的水平,而随后又回归正常的访问水平。而传统的计算机系统(例如,集群,数据中心等)往往是基于预期的峰值负载来对资源进行静态的配置。但是,当系统的负载骤降或者从波峰转向波谷时,这种静态的资源分配方式会导致能耗和资源采用率低下等问题。数据显示,许多大型企业的IT基础设施的采用率大约只有35%,在某些企业中可能会低至15%。Google也报告称其服务器的采用率往往在10%到15%之间。如果从能耗的角度考虑,就会发现系统中大量的闲置资源在没有对外提供服务的情况下也消耗了大量的能量。此外,突发访问往往伴随着自然灾害(如地震)或突发事件(如恐怖袭击)而发生,无法准确其预测发生时间。另一方面,突发访问具有突发流量大的特点,发生时,访问请求量往往达到正常情况下的数十倍甚至数百倍。可见对于存储系统的突发访问行为的分析与预测具有极为重大的现实意义和应用价值。
其中,由于突发访问行为发生的随机性,如何有效地预测突发访问行为一直是一个非常具有挑战性的问题。造成这一问题的因素主要是:主导突发访问行为因素的确定。
目前国内外关于突发访问的相关研究工作主要有:2011年肖军和云晓春等人提出了基于时延的flashcrowd控制模型,该文章主要是采用平均的请求返回时延作为突发访问出现的检测依据,动态地评估有待保护存储服务器的负载情况,同时建立一套相应的session级别的准入控制机制。2010年WenanZhou等人针对视频点播网络提出了基于突发访问缓解算法的动态资源分配,其结果也表明这种基于单播和多播的混合电缆网络,视频对象访问模型以及突发访问模型的方法,是经济有效且健壮的。2007年BrianT.Davis等人提出了一种突发调度访问的重排机制。该机制通过改变内存访问流的顺序来减少访问延迟,它将内存的访问集中到同一个内存块和同一行中以最大化设备总线的采用率从而达到减少访问延迟的目的。该文的实验结果表明,突发调度相比较于按顺序的内存调度,可以减少21%左右的执行时间。2005年HaoJiang等人提出的“为什么互联网流量的突发是发生在短时间尺度范围的”一文,并解释了相关问题。然而以上提到前人所做的一些关于突发访问的相关工作,基本上是围绕突发访问行为的现象,如何检测突发访问行为,如何解决突发访问行为带来的严重后果,如何采用突发访问行为等方面进行开展的,并没有任何关于预测突发方面的研究。
因此,为了让存储系统能够以一种更合理节能的方式调配资源,人们急需一种更准确、更有效的突发访问行为的预测技术。
发明内容
本发明的目的是为了解决上述现有技术的缺陷,提供了一种面向存储系统的突发访问行为的预测方法,该方法获得了相对较高的突发访问命中率,能够以较灵活的方式调整存储系统的I/O数据集的训练集,将得到的频繁关联I/O用于后续的突发预测实验;此外,该方法挖掘频繁关联I/O时的对象是基于块级别的,得到的频繁关联模式相对稳定,对于提高突发预测的准确性方面更有保障。
本发明的另一目的在于提供一种面向存储系统的突发访问行为的预测装置。
本发明的目的可以通过采取如下技术方案达到:
一种面向存储系统的突发访问行为的预测方法,所述方法包括以下步骤:
S1、取存储系统的I/O数据集一部分作为训练集,对训练集进行频繁关联I/O的挖掘;
S2、以指定预测时间为时间粒度对存储系统的I/O数据集的测试集进行划分,并获取测试集所对应预测时间点的I/O请求总数;
S3、提取每个预测时间点的指定观察时间中的I/O请求数据,对每个观察时间点的I/O请求数据进行过滤,使每个观察时间点的频繁关联I/O被过滤,得到每个观察时间点的非频繁关联I/O;
S4、采用每个观察时间点的非频繁关联I/O判断对应的预测时间点是否发生突发访问行为。
作为一种优选方案,步骤S1中,所述对训练集进行频繁关联I/O的挖掘采用基于关联强化窗口的Apriori算法实现,所述基于关联强化窗口的Apriori算法是指:
在传统Apriori算法基础上,在处理算法的第三步,即在扫描数据库进行候选集与整个数据集匹配,统计出候选集的支持度并删除不符合要求的候选集时,引入了关联强化窗口。
作为一种优选方案,所述关联强化窗口用于限定I/O数据块的数据量,具体为:
用于限定一段时间,然后采用动态变化的步长依次往后移动进行候选频繁I/O数据块序列的匹配。
作为一种优选方案,采用基于关联强化窗口的Apriori算法对训练集进行挖掘,得到的频繁关联I/O为最符合80/20规则以及满足时间开销阈值的频繁关联I/O。
作为一种优选方案,所述预测时间指定为30秒,所述观察时间指定为预测时间的前10秒。
作为一种优选方案,步骤S4中,所述采用每个观察时间点的非频繁关联I/O判断对应的预测时间点是否发生突发访问行为,具体为:
若每个观察时间点的非频繁关联I/O达到观察阈值,则判断对应的预测时间点的I/O请求总数会超过突发阈值,即对应的预测时间点发生突发访问行为;否则,对应的预测时间点没有发生突发访问行为。
作为一种优选方案,所述观察阈值是指预测突发访问行为发生时10秒内的I/O请求数的取值,所述突发阈值是指突发访问行为发生时所应该达到的请求数。
作为一种优选方案,所述方法还包括:
S5、计算得出步骤S4预测中捕获突发访问行为的命中率和突发访问行为的发生率。
作为一种优选方案,步骤S4中,所述采用每个观察时间点的非频繁关联I/O判断对应的预测时间点是否发生突发访问行为,存在以下四种情况:
a、观察时间点的非频繁关联I/O达到观察阈值时,对应的预测时间点发生了突发访问行为;
b、观察时间点的非频繁关联I/O达到观察阈值时,对应的预测时间点没有发生突发访问行为;
c、观察时间点的非频繁关联I/O没有达到观察阈值时,对应的预测时间点发生了突发访问行为;
d、观察时间点的非频繁关联I/O没有达到观察阈值时,对应的预测时间点没有发生突发访问行为;
所述捕获突发访问行为的命中率,指的是情况a占情况a和情况c总数的比例;
所述突发访问行为的发生率,指的是情况a占情况a和情况b总数的比例。
本发明的另一目的可以通过采取如下技术方案达到:
一种面向存储系统的突发访问行为的预测装置,所述装置包括:
关联挖掘模块,用于取存储系统的I/O数据集一部分作为训练集,对训练集进行频繁关联I/O的挖掘;
关联过滤模块,用于以指定预测时间为时间粒度对存储系统的I/O数据集的测试集进行划分,并获取测试集所对应预测时间点的I/O请求总数;然后提取每个预测时间点的指定观察时间中的I/O请求数据,对每个观察时间点的I/O请求数据进行过滤,使每个观察时间点的频繁关联I/O被过滤,保留每个观察时间点的非频繁关联I/O;
突发预测模块,用于采用每个观察时间点过滤后得到的非频繁关联I/O判断对应的预测时间点是否发生突发访问行为。
本发明相对于现有技术具有如下的有益效果:
1、本发明采用基于数据挖掘的手段,获取存储系统中的频繁关联I/O,并确定主导突发访问的因素是非频繁关联I/O后,通过过滤经过挖掘得到的频繁关联I/O,保留非频繁关联I/O,最后用于对突发访问行为的预测分析,这样的预测方法相对便捷,且效率较高,结果相对稳定。
2、本发明对存储系统中的频繁关联I/O进行挖掘,是在传统Apriori算法的基础上引入了关联强化窗口,不仅使得挖掘得到的结果与传统Apriori算法一致,更在时间开销方面获得接近20%-40%以上的提高,挖掘效率更优。
3、本发明在挖掘频繁关联I/O时的对象是基于块级别的,得到的频繁关联模式相对稳定,对于提高突发预测的准确性方面更有保障。
4、本发明采用的预测逻辑相对简单明了,但预测突发访问行为的命中率却远远优于传统的时序预测方法,大约是传统的时序预测方法的2倍,使得本发明的预测方法更具有实用性和应用性。
5、本发明的预测方法对有效指导存储系统的资源调配,达到节能,减少资源浪费,提高存储系统健壮性和稳定性等方面具有重大意义。
附图说明
图1为本发明实施例1的面向存储系统的突发访问行为的预测装置原理框图。
图2为本发明实施例1的面向存储系统的突发访问行为的预测方法的流程图。
图3a~图3c为本发明实施例2的关联强化窗口匹配的工作流程图。
图4为本发明实施例2的突发访问行为预测的工作流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1:
如图1所示,本实施例的面向存储系统的突发访问行为的预测装置包括关联挖掘模块、关联过滤模块和突发预测模块,其中:
所述关联挖掘模块,用于取存储系统的I/O(Input/Output,输入/输出)数据集一部分作为训练集,对训练集进行频繁关联I/O的挖掘;
所述关联过滤模块,用于以指定预测时间为时间粒度对存储系统的I/O数据集的测试集进行划分,并获取测试集所对应预测时间点的I/O请求总数;然后提取每个预测时间点的指定观察时间中的I/O请求数据,对每个观察时间点的I/O请求数据进行过滤,使每个观察时间点的频繁关联I/O被过滤,保留每个观察时间点的非频繁关联I/O;
所述突发预测模块,用于采用每个观察时间点过滤后得到的非频繁关联I/O判断对应的预测时间点是否发生突发访问行为。
如图2所示,本实施例的面向存储系统的突发访问行为的预测方法基于上述装置实现,包括以下步骤:
S1、关联挖掘模块取存储系统的I/O数据集一部分作为训练集,采用基于关联强化窗口的Apriori算法对训练集进行频繁关联I/O的挖掘,找出最符合80/20规则以及满足时间开销阈值的频繁关联I/O,将挖掘结果应用于关联过滤模块;其中,所述基于关联强化窗口的Apriori算法是指:
在传统Apriori算法基础上,在处理算法的第三步,即在扫描数据库进行候选集与整个数据集匹配,统计出候选集的支持度并删除不符合要求的候选集时,引入了关联强化窗口,所述关联强化窗口用于限定I/O数据块的数据量,因为每个I/O数据块对应了其出现的时间戳,所以该关联强化窗口相当于限定一段时间,然后采用动态变化的步长依次往后移动进行候选频繁I/O数据块序列的匹配。
I/O数据块序列具有一个时间属性,即每个数据块的出现与某个时间点之间存在联系。时间越短I/O块之间存在的关联度越强。例如,在得到1个星期的块数据集时,先将其进行7等份,1等份相当于1天内的磁盘访问数据;然后把1天的块数据集分成24等份,1等份相当于1个小时内的磁盘访问数据,按照这样的思路,关联强化窗口则可根据需要进行适当的调整,该关联强化窗口不仅考虑到了I/O请求数据的时间属性,还提高了挖掘出来的频繁关联序列的关联度,在该关联强化窗口内挖掘出的块I/O之间被认为是关联性较强的,反之则被视为较弱关联。
采用基于关联强化窗口的Apriori算法可以挖掘出与传统的Apriori算法相一致的结果,而且在时间开销上比传统的Apriori算法快了20%~40%,可见挖掘效率更优。
S2、关联过滤模块以指定预测时间(本实施例指定为30秒)为时间粒度对存储系统的I/O数据集的测试集进行划分,并获取测试集所对应预测时间点的I/O请求总数;为了找到预测突发访问的突破口,需要确定的是影响突发访问的主导因素,此时可以统计分析每个预测时间点,关联规则指导的I/O请求数是否与各个测试集的I/O请求总数趋势一致,从而确定主导突发访问行为的因素并非是频繁关联I/O。
S3、关联过滤模块提取每个预测时间点的指定观察时间(本实施例指定为预测时间的前10秒)中的I/O请求数据,对每个观察时间点的I/O请求数据进行过滤,使每个观察时间点的频繁关联I/O(经过步骤S1挖掘得到的)被过滤,保留每个观察时间点的非频繁关联I/O,供突发预测模块使用。
S4、突发预测模块采用每个观察时间点的非频繁关联I/O判断对应的预测时间点是否发生突发访问行为,具体为:
若每个观察时间点的非频繁关联I/O达到观察阈值,则判断对应的预测时间点的I/O请求总数会超过突发阈值,即对应的预测时间点发生突发访问行为;否则,对应的预测时间点没有发生突发访问行为;其中,所述观察阈值是指预测突发访问行为发生时10秒内的I/O请求数的取值,所述突发阈值是指突发访问行为发生时所应该达到的请求数。普遍来说,突发访问是指在一段相当短的时间里对存储服务器突然出现了大量的用户访问,发生时,访问请求量往往达到正常情况下的数十倍甚至数百倍。
在上述步骤S1~S4中,需要确定的值主要有观察阈值、突发阈值、预测时间长度和观察时间长度,具体可以针对不同的I/Otrace数据集,分别对各自的训练集进行相关的实验得出最终的结论,以供后续测试集实验中使用。
S5、计算得出步骤S4预测中捕获突发访问行为的命中率和突发访问行为的发生率。
上述步骤S4中,所述采用每个观察时间点的非频繁关联I/O判断对应的预测时间点是否发生突发访问行为,存在以下四种情况:
a、观察时间点的非频繁关联I/O达到观察阈值时,对应的预测时间点发生了突发访问行为;
b、观察时间点的非频繁关联I/O达到观察阈值时,对应的预测时间点没有发生突发访问行为;
c、观察时间点的非频繁关联I/O没有达到观察阈值时,对应的预测时间点发生了突发访问行为;
d、观察时间点的非频繁关联I/O没有达到观察阈值时,对应的预测时间点没有发生突发访问行为;
所述捕获突发访问行为的命中率,指的是情况a占情况a和情况c总数的比例;
所述突发访问行为的发生率,指的是情况a占情况a和情况b总数的比例。
经过实验分析,本实施例的预测方法捕获突发访问行为的命中率,远远优于传统的时序预测方法,大约是传统的时序预测方法的2倍。
实施例2:
本实施例是实施例1的面向存储系统的突发访问行为的预测方法的具体应用实例。
以结合图3a~3c的关联强化窗口匹配的工作流程图和图4的突发访问行为预测的工作流程图作详细分析。
为了使Apriori算法在挖掘本实施例用到的此类数据集时更有优势,提出了一种基于关联强化窗口的Apriori算法,该算法整体思路沿用了Apriori算法的思路,但在处理算法的第三步时,即在扫描数据库进行候选集与整个数据集匹配,统计出候选集的支持度并删除不符合要求的候选集时,引入了关联强化窗口,该关联强化窗口用于限定数据块的数据量,因为每个数据块对应了其出现的时间戳,所以该关联强化窗口相当于限定了一段时间,然后采用动态变化的步长依次往后移动进行匹配。
如图3a~3c所示,基于关联强化窗口的Apriori算法开始时,首先会扫描序列S先找出一项频繁集F_1,然后迭代循环从k-1项频繁集中生成k项候选集C_k,接着对候选集C_k中的每条候选序列c的每个元素(项)与数据块序列S中的每个元素(项)进行匹配。
如图3a中的候选序列“abc”的第一个元素“a”会与数据块序列“adbcadbecd”的每个元素在初始设定的窗口内进行逐一匹配,当候选序列的“a”与数据块序列“adbcadbecd”的第一个“a”匹配中时,则以“adbcadbecd”的第一个“a”为起点设置关联强化窗口,使候选序列“abc”余下的元素在该关联强化窗口内与“adbcadbecd”中的其他元素逐一进行匹配;在该关联强化窗口内,若候选序列“abc”中的所有元素与序列“adbcadbecd”匹配中时,则候选序列的支持度计数加一;再循环让候选序列“abc”的第一个元素“a”与序列“adbcadbecd”在上一轮被匹配中的第一个元素“a”位置j的下一位即“d”开始新的匹配,若匹配不中,则会一直往后匹配,直到关联强化窗口内所剩下的元素个数小于候选序列“abc”的个数;如图3b所示;若匹配中,则以该新匹配中的元素为起点,重新设置关联强化窗口如图3c所示,让候选序列“abc”余下元素与序列“adbcadbecd”在新窗口内进行如图3a所述的匹配过程;如此循环图3a、3b和3c的三个过程,对候选序列“abc”进行支持度的计数。最后当候选序列“abc”的支持度计数大于最大支持度阈值max_sup时,则该候选序列“abc”就是新挖掘出的频繁序列;当该支持度计数大于最小支持度阈值min_sup,小于最大支持度阈值max_sup时,则该候选序列“abc”为次频繁序列。
如图4所示,首先需要对三个真实的trace数据集web_0,usr_0和stg_0的训练集(第一天的数据)进行频繁关联规则的挖掘;其次,分别将三个trace数据集的测试集(后续天数的数据)以30秒的预测时间长度为时间粒度进行划分(如一天24小时,也即是86400秒,因此可划分为2880个以30秒为时间粒度的预测时间点),再获取测试集对应预测时间点的I/O请求总数;接着提取测试集中每个预测时间点(30秒)的观察时间(前10秒)中的I/O请求数据,将训练集得到的频繁关联规则,分别用于过滤测试集中每个观察时间点的I/O请求数据,进而得到其对应的观察请求总数(10秒);再接着,如果观察请求总数达到了观察阈值,则判断对应的预测时间点(30秒)的请求总数会超过突发阈值,即发生突发访问行为;最后计算得出该预测实验中捕获突发访问行为的命中率以及突发访问行为可能发生的发生率作为最终结果。
综上所述,本发明采用基于数据挖掘的手段,获取存储系统中的频繁关联I/O,并确定主导突发访问的因素是非频繁关联I/O后,通过过滤经过挖掘得到的频繁关联I/O,保留非频繁关联I/O,最后用于对突发访问行为的预测分析,这样的预测方法相对便捷,且效率较高,结果相对稳定。
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。