我有几百台网络设备,每10分钟就会登录到我们的服务器上。每台设备都有一个嵌入式时钟,在每次签入到服务器时对秒数进行计数并报告所用的秒数。因此,样本数据集如下所示
CheckinTime Runtime
2010-01-01 02:15:00.000 101500
2010-01-01 02:25:00.000 102100
2010-01-01 02:35:00.000 102700等。
如果设备重新启动,当它重新签入到服务器中时,它会报告运行时间为0。
我试图确定的是设备“健康状况”的某种可量化指标。
如果设备在过去多次重新启动,但在最近xx天内没有重新启动,则认为该设备是健康的,而对于除了最近xx天反复重新启动的设备之外,该设备的正常运行时间很长。此外,与在过去xx天内每24小时左右连续重启一次的设备相比,已经开机30天并刚刚重新启动的设备不应该被认为是“痛苦的”。
我尝试了多种方法来计算健康状况,使用了各种指标: 1.平均重启次数2.最大(正常运行时间) 3.平均(正常运行时间) 4.最近24小时内的重启次数5.过去3天内的重启次数6.过去7天内的重启次数7.过去30天内的重启次数
每个单独的指标只考虑设备健康的一个方面,但没有考虑与其他设备或其当前健康状态相比的整体健康状况。
任何想法都将不胜感激。
发布于 2010-02-02 06:10:04
你可以做一些像Windows7可靠性指标一样的事情--从完全健康状态(比如10)开始。每小时/天/签入周期,按(10 - currenthealth)*incrementfactor)递增健康。每次服务器宕机时,减去一定的百分比。
因此,假设崩溃因子为20%/crash,增量因子为10%/天:
<代码>F210
要运行一个示例:
从10点开始
第一天:没有崩溃,new health = CurrentHealth + (10 - CurrentHealth)*.1 = 10
第二天:一次崩溃,new health = currenthealth - currentHealth*.2 = 8,但仍然每天都在增加,所以new health = 8 + (10 - 8)*.1 = 8.2
第3天:无崩溃,新的健康= 8.4
第4天:两次崩溃,新的健康= 5.8
发布于 2010-02-02 06:10:17
您可以获取特定机器的重新启动计数/t,并将其与整个总体的标准偏差进行比较。那些下降的人表示,可能会标记出与平均值的三个标准差,因为在平均值中,系统更频繁地重新启动。
发布于 2010-02-02 06:17:48
您可以使用加权平均正常运行时间,并且仅当当前正常运行时间会使平均值更高时才包含当前正常运行时间。
权重将是正常运行时间的最近程度,因此最新的正常运行时间具有最大的权重。
https://stackoverflow.com/questions/2180410
复制相似问题