系统稼动率是,设计系统时的一个非常重要的指标。系统稼动率也是于客户签订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%)