浅谈系统高可用几个9

浅谈系统高可用几个9

概述

经常看到各种技术文章或者分布式系统介绍说系统的可用性达到了多少个9,那么所谓”几个9“到底是怎么计算的?又意味着什么?我们简单计算分析下看看。所谓”1个9“是指90%,”2个9“是指99%,”3个9“是指99.9%,依次类推。

可用性的反面是故障时间,网站或者分布式系统会因为很多原因导致不可用,比如:程序bug;运维更新错误;环境配置升级变化;机器硬件故障;被恶意攻击;网关不小心踢掉了网线/电源插座;市政施工挖断了光纤;程序猿删库跑路;地震海啸自然灾害等等。

计算公式

如果按照年为单位计算系统的故障时间,公式如下:

故障时间秒数=(1-可用性) * 365 * 24 * 3600

计算6个9以内的情况得到如下结果:

可用性指标 计算公式 不可用时间
99.9% 0.1% * 365 * 24 * 60 525.6分钟
99.99% 0.01% * 365 * 24 * 60 52.56分钟
99.999% 0.001% * 365 * 24 * 60 5.256分钟
99.9999% 0.0001% * 365 * 24 * 60 * 60 31.536秒

结论

可见,如果只有1个9的可用性,体验是极其糟糕的,1年下来有1个多月不能使用。一些大型网站号称能过做到4个9,那么1年有52分钟故障时间,其实已经是不错的情况了。