1、可靠性与可用性区别
1、系统可靠性:系统在规定时间内及规定的环境下,完成规定功能的能力,即系统无故障运行的概率
2、系统可用性:在某个给定时间点上系统能够按照需求执行的概率。
可靠性分为软件、硬件可靠性
2、可靠性指标
平均无故障时间MTTF
平均故障修复时间MTTR
平均故障间隔时间MTBF = MTTR+MTTF
系统可用性 = MTTF / (MTTF+MTTR) * 100%
3、可靠性计算公式
串联系统
并联系统
混合系统
4、影响可靠性的主要因素
1、软件的开发方法及开发环境
2、运行环境
3、软件规模
4、软件内部结构
5、软件的可靠性投入
5、可靠性设计
避错、降低复杂度、冗余、容错
1、N版本程序设计
同时进行多个不同版本的设计
三个新的阶段:相异成分规范评审、相异性确认、背对背测试
N版本程序的同步、N版本程序之间的通信、表决算法(全等表决、非精确表决osmetie表决)、一致比较问题、数据相异性
2、恢复块方法
恢复到上一次正确的时刻
设计时保证实现主块和后备块之间的独立性
必须保证验证测试程序的正确性
前向恢复:使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况。
后向恢复:系统恢复到前一个正确状态,继续执行。
两者对比
3、防卫式程序设计
对于程序中存在的错误和不一致性,通过在程序中包含错误检查代码和错误恢复代码,使得一旦错误发生,程序能撤销错误状态,恢复到一个已知的正确状态中去。
实现策略:错误检测、破坏估计、错误恢复。
代表:try{} catch(Exception e){}
4、双机容错
双机热备模式(主系统、备用系统) 同一时间只有一台运行
双机互备模式(同时提供不同的服务,心不跳则接管)运行不同服务,宕机则接管任务
双机双工模式(同时提供相同的服务,集群的一种)同时分担各自比例的任务