• 六 系统可靠性分析与设计


    目录

    1、可靠性相关基本概念

    2、系统可靠性计算

    3、软件可靠性设计


    1、可靠性相关基本概念

    • 系统可靠性在规定时间内及规定的条件下完成规定功能的能力,也就是系统无故障运行的概率。有因素能够运行。论文提可靠性。
    • 系统可用性是指在每个规定时间点上,系统能够按照需求执行的概率。偏向结果,执行概率。质量属性提可用性。

    软件可靠性,不等于硬件可靠性。软件可靠性和硬件可靠性对比:

    • 复杂性。软件复杂性高。大部分时效都来自于软件失效。
    • 物理退化。硬件失效主要是物理退化,软件不存在物理退化。
    • 唯一性。真是唯一的版本,每个copy版本都一样,而两个硬件不可能完全一样。
    • 版本更新周期。硬件较慢,软件较快。

    可靠性指标:

    平均无故障时间 MTTF,无故障时间/总时间

    平均故障修复时间 MTTR,故障时间/总时间

    平均故障间隔时间 MTBF,MTTF+MTTR

    系统可用性 ,MTTF/(MTTF+MTTR)。

    在实际应用中,一般MTTR很小,所以通常任务MTBF约等于MTTF。

    2、系统可靠性计算

    串联并联系统

    串联可靠性计算: 可靠性 R= R1*R2 * R3。每个可靠性相乘。

    失效率近似公式:每个失效率相加。

    并联可靠性计算:  R= 1 -(1-R1)*(1-R2)*(1-R3)。1减去失效率。

    混合模型:并联看成一个整体进行计算。

    3、软件可靠性设计

    设计技术包括:

    • 避错技术。提前预知进行避错,高内聚低耦合,结构简单明了。
    • 容错技术。包容错误,冗余方案。能够自动处理故障。
    • 检错技术。运行中检测出错后报警,人工处理,成本较低。不能自动解决故障
    • 降低复杂度设计。

    容错技术中的冗余形式:

    • 结构冗余:硬件冗余,软件冗余。
    • 信息冗余:校验码。同类信息用多个信息类型表达,可能会出现多个信息对冲。比如周一 19:00-20:00(上午)。
    • 时间冗余:重复多次进行相同的计算。多次进行计算,比如数钱。

    容错技术中的冗余方案:

    • N版本程序设计(静态冗余),向恢复。开发N个版本(多个开发开发)并行运行。多个版本得到结果,然后通过表决器(表决算法)得到结果,输出正确结果或进行异常处理。

    • 恢复块设计(动态冗余),后向恢复。主块(验证测试程序检测)不合格,由后备块执行延续,不合格继续由后背块处理。

    • 防卫式程序设计。对于程序中存在的错误和不一致性,通过在程序中包含错误检查代码和错误恢复代码。 使得一旦错误发生,程序能撤销错误状态,引导恢复到一个已知的正确状态。例如:try catch。

    实现策略:错误检测,破坏估计,错误恢复。

    双机容错

    • 双机热备模式。(主备系统,即主干活,备用不干活,采用心跳等策略,主没反应然后备用干活)
    • 双机互备模型。(同时提供不同的服务,服务器运行不同的服务,心不跳则接管)
    • 双机双工模型。(同时提供相同的服务,集群的一种)。

    可靠性设计 集群:可从可伸缩性,高可用,可管理性变大,高性价比,高透明性分析。

  • 相关阅读:
    web前端期末大作业——餐品后台管理系统(html+css+javascript)
    LeetCode每日一题(920. Number of Music Playlists)
    (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
    因果论 —— 模型、推理和推断(概率、图及因果模型)②
    rabbitMQ
    计算机网络ISO七层网络模型及TCP
    shiro框架04会话管理+缓存管理+Ehcache使用
    【Linux】进程间通信——进程间通信的介绍和分类、管道、匿名管道、命名管道、匿名管道与命名管道的区别
    VScode 使用ESlint检查代码
    【Java八股文总结】之Java设计模式
  • 原文地址:https://blog.csdn.net/eternal_tc/article/details/127616842