转自:http://blog.youkuaiyun.com/yqq__00/article/details/51441228
在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。
3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。
4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。
5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。
那么X个9里的X只代表数字3~5,为什么没有1~2,也没有大于6的呢?我们接着往下计算:
1个9:(1-90%)*365=36.5天
2个9:(1-99%)*365=3.65天
6个9:(1-99.9999%)*365*24*60*60=31秒
可以看到1个9和、2个9分别表示一年时间内业务可能中断的时间是36.5天、3.65天,这种级别的可靠性或许还不配使用“可靠性”这个词;而6个9则表示一年内业务中断时间最多是31秒,那么这个级别的可靠性并非实现不了,而是要做到从5个9》6个9的可靠性提升的话,后者需要付出比前者几倍的成本,所以在企业里大家都只谈(3~5)个9。
如果一个公司的业务承诺的可靠性是99.99%,那么每年只允许业务中断8.76小时。如果业务中断导致的损失是每小时100万,那么一年的损失是876万。
但是,如果这个公司承诺的可靠性是99.999%,那么每年只允许业务中断不超过1个小时,如果业务中断导致的损失是每小时100万,那么一年的损失小于100万。
我们可以算到,可靠性从99.99%提升到99.999%,可以挽回大概700万的损失。那么这种情况下是值得的。
但是如果你提升可靠性到99.999%上面的花费,超过了700万,那保持99.99%的可靠性也是一种选择。
任何产品都需要考虑投入与产出比,那么你允许的业务中断时间是多少?
99.99%的可靠性对大多数业务来说是足够的,对于一些离线业务,99.9%可靠性大部分场景下也够用了。
实现99.99%的可靠性
在一些领域,99.999%可靠性是必须的,如运输行业。假如火车控制系统故障了,那么可能成千上万的旅客就会被滞留。(天朝的7.23事故大家都知道)
这种场景下,实现99.999%可靠性通常使用容错处理,包含软件的容错和硬件的容错。常见的软件容错有负载均衡,就是多个实例同时提供服务。当软件容错不起作用时候,就需要用到硬件容错,硬件容错一半是做硬件冗余,如两个服务器做主备
转载于:https://blog.51cto.com/yntmdr/2083296