2

这个问题是关于一整类类似的问题,但我会作为一个具体的例子来问它。

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

它是什么并不重要——例如,它可能是一个“工作”队列。

在“正常”操作期间,可用空间在“正常”范围内变化,但可能会出现以下问题:

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

该过程的统计特征基本上是未知的。

我正在寻找的是一种算法,该算法将可用空间的定时定期测量作为输入(欢迎对输入的替代建议),并在事情“异常”并且文件系统为“可能会填满”。避免误报显然很重要,但几乎同样重要的是避免误报,以避免使接到警报的系统管理员的大脑麻木。

我很欣赏有替代解决方案,例如在潜在问题上投入更多存储空间,但我实际上经历过 1000 次还不够的情况。

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


我已经接受了弗兰克的回答,现在我要回到绘图板上深入研究他的参考资料。

我认为,有三种情况很有趣,但不按顺序排列:

  1. “Harrods's Sale 刚刚开始”情景:以一秒的分辨率出现的活动高峰“脱离了表盘”,但并不代表资源枯竭的真正危险;
  2. “全球变暖”情景:需要规划(相对)稳定的增长;和
  3. “Google 主动向我发送了一份索引副本”场景:这将在相对较短的时间内耗尽我的所有资源,除非我采取措施阻止它。

从系统管理员的角度来看,这是(我认为)最有趣和最具挑战性的最后一个。

4

1 回答 1

1

如果它实际上与工作队列有关,那么排队论可能是获得答案的最佳途径。

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

虽然它涵盖了一个完全不同的主题(全球变暖),但我发现 tamino 的博客 (tamino.wordpress.com) 是一个非常好的资源,可以对充满已知和未知的数据进行统计分析。例如,请参阅这篇文章。

编辑:根据我的评论,我认为这个问题有点类似于 GW 问题。您有短期的活动爆发,平均为零,并且您感兴趣的长期趋势叠加。此外,可能有不止一个长期趋势,并且不时变化。Tamino 描述了一种可能适用于此的技术,但不幸的是我找不到我想要的帖子。它涉及沿数据滑动回归(想象多条线适合噪声数据),并让数据选择拐点。如果你能做到这一点,那么你也许可以识别出趋势的重大变化。不幸的是,它可能只能在事后才能识别,因为您可能需要积累大量数据才能获得意义。但它可能仍然及时阻止资源枯竭。

于 2008-12-23T14:03:08.853 回答