2008-12-23 66 views
2

这个问题是关于一类类似的问题,但我会问它作为一个具体的例子。如何可靠地检测异常资源消耗?

我有一个文件系统的内容波动的服务器。我需要监视此文件系统上的可用空间,以确保它不会被填满。为了争论,我们假设如果它填满了,服务器就会关闭。

这并不重要,它可能是一个“工作”队列。

在“正常”操作,在可用空间内的“正常”范围而变化,但有可能是病变:

  • 其他一些(可能是外部的) 部件,增加了工作可能失控
  • 一些部件,消除工作抓住了,但仍未被发现

过程的统计特性基本上都是未知的。

我在寻找的是一种算法,它将可用空间的定时周期性测量值(欢迎输入的替代建议)作为输入,并产生输出,当事情“异常”时发出警报,文件系统“很可能会被填满”。避免误报显然是非常重要的,但避免误报几乎同样重要,以避免麻木系统管理员的大脑,因为他们会发出警报。

我明白,有其他解决方案,比如在底层问题上抛出更多的存储空间,但实际上我遇到了1000次不足的情况。

考虑到存储的历史测量结果的算法很好,尽管最小化历史数据量的动态算法是优选的。


我已经接受了弗兰克的回答,我现在要回到绘图板,以深入研究他的引用。

有三种情况,我觉得,兴趣爱好,不是为了:

  1. 的“哈罗德销售刚刚起步”的情景:活动的峰值,在一秒钟的分辨率是“关拨号“,但并不代表资源枯竭的真正危险;
  2. “全球变暖”情景:需要计划(相对)稳定的增长;和
  3. “Google向我发送索引的主动副本”方案:这会以相对较短的顺序耗尽我的所有资源,除非我采取措施阻止它。

这是最后一个就是(我认为)最有趣的,富有挑战性的,从一个系统管理员的角度..

回答

1

如果它实际上是与工作的队列,然后排队论可能是找到答案的最佳途径。

对于一般情况下,你可能试图(多?)对历史数据进行线性回归,以检测资源使用量是否存在统计上显着的上升趋势,如果这种趋势持续存在,则可能会导致问题(您可能还能预测它必须持续多久才能导致问题)这种技术 - 只需为“问题”设置一个阈值,并使用趋势的斜率来确定需要多长时间)。你将不得不玩弄这个和你收集的变量,看看是否有任何统计上显着的关系,你可以在第一时间发现。

虽然它涵盖了一个完全不同的主题(全球变暖),但我发现tamino的博客(tamino.wordpress.com)是一个非常好的资源,用于统计分析充满知识和未知数据的数据。例如,请参阅this后。

编辑:根据我的评论我认为这个问题有点类似GW的问题。您的短期活动平均值为零,长期趋势叠加,您可能感兴趣。也可能有多个长期趋势,并且会不时发生变化。塔米诺描述了一种可能适用于此的技术,但不幸的是我找不到我想要的文章。它涉及沿数据滑动回归(想象多条线适合噪音数据),并让数据选取拐点。如果你能做到这一点,那么你或许可以确定趋势的重大变化。不幸的是,它可能只能在事实之后被识别,因为您可能需要积累大量数据才能获得重要意义。但它可能仍然是时候来应对资源枯竭。至少它可能会给你一个强有力的方式来确定未来需要的储备安全边际和资源。

+0

+1 Frank,谢谢你的深思熟虑。我已经探索了排队论;和统计平滑,卡尔曼滤波等等。但是仍然存在的一个大问题是如何区分突然爆发的活动和未决的灾难。 – 2008-12-23 14:16:57