这个问题是关于一类类似的问题,但我会问它作为一个具体的例子。如何可靠地检测异常资源消耗?
我有一个文件系统的内容波动的服务器。我需要监视此文件系统上的可用空间,以确保它不会被填满。为了争论,我们假设如果它填满了,服务器就会关闭。
这并不重要,它可能是一个“工作”队列。
在“正常”操作,在可用空间内的“正常”范围而变化,但有可能是病变:
- 其他一些(可能是外部的) 部件,增加了工作可能失控 的
- 一些部件,消除工作抓住了,但仍未被发现
过程的统计特性基本上都是未知的。
我在寻找的是一种算法,它将可用空间的定时周期性测量值(欢迎输入的替代建议)作为输入,并产生输出,当事情“异常”时发出警报,文件系统“很可能会被填满”。避免误报显然是非常重要的,但避免误报几乎同样重要,以避免麻木系统管理员的大脑,因为他们会发出警报。
我明白,有其他解决方案,比如在底层问题上抛出更多的存储空间,但实际上我遇到了1000次不足的情况。
考虑到存储的历史测量结果的算法很好,尽管最小化历史数据量的动态算法是优选的。
我已经接受了弗兰克的回答,我现在要回到绘图板,以深入研究他的引用。
有三种情况,我觉得,兴趣爱好,不是为了:
- 的“哈罗德销售刚刚起步”的情景:活动的峰值,在一秒钟的分辨率是“关拨号“,但并不代表资源枯竭的真正危险;
- “全球变暖”情景:需要计划(相对)稳定的增长;和
- “Google向我发送索引的主动副本”方案:这会以相对较短的顺序耗尽我的所有资源,除非我采取措施阻止它。
这是最后一个就是(我认为)最有趣的,富有挑战性的,从一个系统管理员的角度..
+1 Frank,谢谢你的深思熟虑。我已经探索了排队论;和统计平滑,卡尔曼滤波等等。但是仍然存在的一个大问题是如何区分突然爆发的活动和未决的灾难。 – 2008-12-23 14:16:57