《系统设计》课程学习笔记—可用性

196 阅读2分钟

可用性是指系统在特定时间段内保持运行以执行其所需功能的时间。它是系统、服务或机器在正常条件下保持运行的时间百分比的简单度量。

可用性中的9

可用性通常通过正常运行时间(或停机时间)作为服务可用时间的百分比进行量化。它通常以9的数量进行度量。

Availability=Uptime(Uptime+Downtime)Availability=\frac{Uptime}{(Uptime+Downtime)}

如果可用性为99.00%,则称可用性为“2个9”,如果可用性是99.9%,则称之为“3个9”,依此类推。

可用性 (百分比)停机时间 (年)停机时间 (月)停机时间 (周)
90% (1个9)36.53天72小时16.8小时
99% (2个9)3.65天7.20小时1.68小时
99.9% (3个9)8.77小时43.8分钟10.1分钟
99.99% (4个9)52.6分钟4.32分钟1.01分钟
99.999% (5个9)5.25分钟25.9秒6.05秒
99.9999% (6个9)31.56秒2.59秒604.8毫秒
99.99999% (7个9)3.15秒263毫秒60.5毫秒
99.999999% (8个9)315.6毫秒26.3毫秒6毫秒
99.9999999% (9个9)31.6毫秒2.6毫秒0.6毫秒

顺序可用性与并行可用性

如果一个服务由多个易于发生故障的组件组成,那么该服务的整体可用性取决于这些组件是顺序的还是并行的。

顺序

当两个组件顺序运行时,总体可用性降低。

Availability(Total)=Availability(Foo)Availability(Bar)Availability (Total)=Availability (Foo)∗Availability (Bar)

例如,如果 FooBar 都有 99.9% 的可用性,则它们的总可用性依次为 99.8%。

并行

当两个组件并行时,总体可用性提高。

Availability(Total)=1(1Availability(Foo))(1Availability(Bar))Availability (Total)=1−(1−Availability (Foo))∗(1−Availability (Bar))

例如,如果 FooBar 都有 99.9% 的可用性,那么它们并行的总可用性将是 99.9999%。

可用性与可靠性

如果一个系统是可靠的,它也是可用的。然而,如果可用,则不一定可靠。换句话说,高可靠性有助于提高可用性,但即使系统不可靠,也有可能实现高可用性。

高可用性与容错性

高可用性和容错性都适用于提高运行时间级别的方法。然而,它们实现目标的方式不同。

容错系统没有服务中断,但成本明显更高,而高可用系统的服务中断最小。容错要求完全的硬件冗余,就像主系统发生故障时,另一个系统应该接管,使运行时间不受到损失。