系统稼动率是,设计系统时的一个非常重要的指标。系统稼动率也是于客户签订SLA当中的一个重要因素。那么如何计算系统稼动率呢?
服务提供商通常提供的SLA如下,”停机时间(月)”是”30天/月”为标准计算的。
SLA | 停机时间(月) | 停机时间(年) |
---|---|---|
95% | 36小时 | 18.3天 |
99% | 7.2小时 | 3.7天 |
99.5% | 3.6小时 | 1.8天 |
99.7% | 2.2小时 | 1.1天 |
99.9% | 43.2分 | 8.8小时 |
99.95% | 21.6分 | 4.4小时 |
99.99% | 4.3分 | 52.6分 |
99.999% | 25.9秒 | 5.3分 |
关于SLA及违反SLA时的定义,应查看服务提供商的合同条约。
系统稼动率
系统稼动率是指,系统正常提供服务的百分比,稼动率越接近100%,表示系统正常提供服务的时间越长,既”系统的可靠性越高”。
稼动率的计算方法如下。
稼动率 = MTBF(MeanTimeBetweenFailure) / (MTBF(MeanTimeBetweenFailure) + MTTR(MeanTimeToRepair))
上图的系统稼动时间是 “正常稼动 100小时” -> “故障修复 4小时” -> “正常稼动 60小时” -> “故障修复 2小时” -> “正常稼动 80小时” -> “故障修复 26小时”。
MTBF(MeanTimeBetweenFailure)的计算方法
MTBF(平均故障间隔时间)是,系统连续运行的平均时间,计算方法如下。
MTBF = 总稼动时间 / 故障次数
上图的 总稼动时间 和 故障次数 如下
- 总稼动时间:100小时 + 60小时 + 80小时 = 240小时
- 故障次数:3次
使用上面的方法计算的话,240小时(总稼动时间)/3次(故障次数) = 80小时(MTBF)。
MTTR(MeanTimeToRepair)的计算方法
MTTR(平均修复时间)是,修复所花的平均时间,计算方式如下。
MTTR = 总修复时间 / 故障次数
上图的 总修复时间 和 故障次数 如下
- 总修复时间:4小时 + 2小时 + 6小时 = 12小时
- 故障次数:3次
使用上面的方法计算的话,12小时(总修复时间)/3次(故障次数) = 4小时(MTTR)。
计算稼动率
稼动率使用下面的方法计算,使用在上面计算的MTBF和MTTR计算的话,稼动率是 95% = 80小时 / (80小时 + 4小时)。
MTBF(MeanTimeBetweenFailure) / (MTBF(MeanTimeBetweenFailure) + MTTR(MeanTimeToRepair))
串联系统的稼动率
系统可能由多个系统组成,例如下图是有由2个系统串联组成的系统。
当其中的一个系统发生故障时,可能导致整个系统服务停止。
串联系统的特点是,当其中一个系统发生故障时,整个系统将无法正常提供服务。
串联系统的稼动率可使用以下计算方法。
串联系统的稼动率 = 系统A的稼动率 x 系统B的稼动率
例如,系统A的稼动率为0.8,系统B的稼动率为0.9时,该串联系统的稼动率为 0.8 x 0.9 = 0.72。
并连系统的稼动率
接下来确认一下,并联系统的场景。并联系统的特点是当并联系统中的一个系统停止的话,剩下的另一个系统持续提供服务。除非2个系统同时发生故障以外,该系统将持续提供服务。
并联系统的稼动率计算方法如下。
并联系统的稼动率 = 1 – (系统A的故障率 x 系统B的故障率)
例如,将系统稼动率为0.8系统A和系统稼动率为0.9的系统B进行并联时
- 系统A的故障率为 1 – 0.8 = 0.2
- 系统B的故障率为 1 – 0.9 = 0.1
系统的故障率为 0.1 x 0.2 = 0.02
该并连系统的稼动率为 1 – 0.02 = 0.98(98%)。