这个问题是关于一整类类似的问题,但我会作为一个具体的例子来问它。
我有一个带有内容波动的文件系统的服务器。我需要监视此文件系统上的可用空间,以确保它不会被填满。为了争论,我们假设如果它填满,服务器就会宕机。
它是什么并不重要——例如,它可能是一个“工作”队列。
在“正常”操作期间,可用空间在“正常”范围内变化,但可能会出现以下问题:
- 增加工作的其他一些(可能是外部的)组件可能会失控
- 一些删除工作的组件卡住了,但仍未被发现
该过程的统计特征基本上是未知的。
我正在寻找的是一种算法,该算法将可用空间的定时定期测量作为输入(欢迎对输入的替代建议),并在事情“异常”并且文件系统为“可能会填满”。避免误报显然很重要,但几乎同样重要的是避免误报,以避免使接到警报的系统管理员的大脑麻木。
我很欣赏有替代解决方案,例如在潜在问题上投入更多存储空间,但我实际上经历过 1000 次还不够的情况。
考虑存储的历史测量值的算法很好,尽管最小化历史数据量的动态算法是首选。
我已经接受了弗兰克的回答,现在我要回到绘图板上深入研究他的参考资料。
我认为,有三种情况很有趣,但不按顺序排列:
- “Harrods's Sale 刚刚开始”情景:以一秒的分辨率出现的活动高峰“脱离了表盘”,但并不代表资源枯竭的真正危险;
- “全球变暖”情景:需要规划(相对)稳定的增长;和
- “Google 主动向我发送了一份索引副本”场景:这将在相对较短的时间内耗尽我的所有资源,除非我采取措施阻止它。
从系统管理员的角度来看,这是(我认为)最有趣和最具挑战性的最后一个。