简单区分

从事故、稳定方面简单理解如下:

名词

简单理解

可靠性

不出事故

可用性

不出事故 出事故后,快速止损

稳定性

解决故障问题基础上 服务持续稳定、性能稳定

对比Availability可用性、Reliability可靠性、Stability稳定性_可靠性

总体对比











可用性

可靠性

稳定性

英文

Availability

Reliability

Stability

关注点

关注的是服务总体的持续时间。

系统在给定时间内总体的运行时间越长,可用性越高。


关注系统可以无故障地持续运行的概率,关注的是故障率。
故障的频率越高,可靠性越低。

影响可靠性的因素就是能够引起故障的所有因素,包括软件设计错误,编码错误,硬件故障等等。


指软件在一个运行周期内、在一定的压力条件下,在持续操作时间内出错的概率,性能劣化趋势等等。

如果一个系统的性能时好时坏,它一定是不稳定的,而不一定是不可靠的。
稳定性更关注系统在给定条件下的响应是否一致,行为是否稳定。
可靠是可用的前提,稳定是可靠的进一步提升。

对比


在《分布式系统原理与范型》中提到的下面例子中比较准确的解释了两者的区别:

如果系统在每小时崩溃1ms,那么它的可用性就超过99.9999%,但是它还是高度不可靠。

与之类似,如果一个系统从来不崩溃,但是每年要停机两星期,那么它是高度可靠的,但是可用性只有96%。

作为系统的响应,首要目标是先降低故障的次数,频率要低,从而提高可靠性;

同时在故障出现后,要提高故障的恢复时间,速度要快,从而提高业务的可用性。

对比


对于电力系统而言,
稳定性就是“人民用电不要忽明忽暗忽快忽慢”,可靠性就是”不要用着用着突然没有啦“。
-知乎盛夏白日梦

故障与出错的差别

可用性

可用性指系统在给定时间内可以正常工作的概率,通常用SLA(服务等级协议,service level agreement)指标来表示。

这是这段时间的总体的可用性指标。

通俗叫法

可用性级别

年度宕机时间

周宕机时间

每天宕机时间

1个9

90%

36.5天

16.8小时

2.4小时

2个9

99%

87.6小时

1.68小时

14分钟

3个9

99.9%

8.76小时

10.1分钟

86秒

4个9

99.99%

52.6分钟

1.01分钟

8.6秒

5个9

99.999%

5.26分钟,315.36秒

6.05秒

0.86秒

可靠性

可靠性相关的几个指标如下:

MTBF(Mean Time Between Failure)

即平均无故障时间,是指从新的产品在规定的工作环境条件下开始工作到出现第一个故障的时间的平均值。

MTBF越长表示可靠性越高,正确工作能力越强 。

MTTR(Mean Time To Repair)

即平均修复时间,是指可修复产品的平均修复时间,就是从出现故障到修复中间的这段时间。

MTTR越短表示易恢复性越好。

MTTF(Mean Time To Failure)

即平均失效时间。系统平均能够正常运行多长时间,才发生一次故障。

系统的可靠性越高,平均无故障时间越长。

这些指标跟可用性关系

Availability = UpTime/(UpTime+DownTime) = MTBF / (MTBF + MTTR)

稳定性

Stackoverflow 看到这样一段代码来表示稳定性和可靠性的区别,甚为有趣:

# Reliable but unstable:
    add(a,b):
     if randomInt mod 5 == 0: 
        throw exception
     else
        print a+b        

# Stable but unreliable:
    add(a,b):
     if randomInt mod 5 == 0: 
         print a+a
     else
         print a+b

参考: