谈一谈软件系统的可用性

article/2025/10/13 8:01:21

什么是可用性

系统的可用性用如下公式表示:

Availability=(MTBF/(MTBF+MTTR))*100%

其中:

  • MTBF:即平均无故障工作时间,英文全称是“Mean Time Between Failure”。是衡量一个产品(尤其是电器产品)的可靠性指标。单位为毫秒、秒钟、分钟、小时等
  • MTTR:平均修复时间(Mean time to repair,MTTR),是描述产品由故障状态转为工作状态时修理时间的平均值。产品的特性决定了平均值的长短。单位为毫秒、秒钟、分钟、小时等

互联网和软件行业写入SLA中的可用性就是在特定周期内的可用性,一般用几个9表示。这个周期一般跟计费周期相关,譬如包月资源周期定为一个月,下表以年为周期:

可用性年不可用时间
90%t=365day*24h*60min*60s*(1-0.9)=315,3600s=36.5day
99%t=365day*24h*60min*60s*(1-0.99)=315,360s=87.6h
99.9%t=365day*24h*60min*60s*(1-0.999)=31,536s=8.76h
99.99%t=365day*24h*60min*60s*(1-0.9999)=31,536s=52.56min
99.999%t=365day*24h*60min*60s*(1-0.99999)=31,536s=5.256min
99.9999%t=365day*24h*60min*60s*(1-0.999999)=31,536s=31.536s

那是不是Availability越高系统就越好呢?答案是:不一定,看下面两个

  • 有一个系统,MTBF=2h,MTTR=5s,即可以稳定运行2小时,然后挂掉,5秒钟之后又恢复了,通过公式计算Availability=0.9999768,约等于5个9
  • 另一个系统,MTBF=30day,MTTR=1h,即可以稳定运行30天,然后挂掉,1小时之后恢复,通过公式计算Availability=0.9986130,约等于4个9

能说这两个系统都很好吗?答案是:不能

能说第一个系统好于第二个系统吗?答案还是:不能

因为:系统的可靠性和可用性同等重要,只谈其一,没有意义

如何提升可用性

从公式可以看出,提升可用性有两个方向,分别是:

  1. 提升MTBF,即提升系统可靠性
  2. 降低MTTR,即减小故障恢复时间

提升可靠性

提升系统可靠性,有两个大方向:

  1. 提升系统质量,让系统能够长时间稳定运行,这是最容易想到却最不容易做到的
  2. 并联或者冗余,让系统对外提供长时间稳定运行的能力,但内部允许故障,只要保证同一时间至少一个实例正常运行即可。受益于摩尔定律,计算机系统需要的硬件设备越来越便宜,开发和维护成本占比越来越高,并联或者冗余的方案成为提升可靠性的主流

降低故障恢复时间

降低故障恢复时间,分阶段有多重手段来实现,大致如下:

  1. 原始阶段。用户使用系统功能时发现不可用,经投诉反馈渠道知会到相关人员,由运维人员恢复故障,这个阶段的主要特点是:被动发现,用户体验极差
  2. 手工阶段。专人定时巡检,发现故障后及时知会运维人员修复,这个阶段的主要特点是:主动发现、发现不及时、修复不及时
  3. 自动发现。专门的系统监控所有组件,一旦发现故障,告警知会运维人员修复,这个阶段的主要特点是:主动发现、发现及时、修复不及时
  4. 智能运维。一套智能系统监控所有组件,发现故障后自动调整系统,例如隔离故障实例启动新实例进行替换、自动扩缩容适应负载变化等,这个阶段的主要特点是:智能运维、无人值守

我始终相信:随着技术的不断发展,脏活、累活终究都会变成机器的活儿

参考链接

  • MTBF
  • MTTR

http://chatgpt.dhexx.cn/article/DpL4MbjW.shtml

相关文章

功能测试 性能测试 可用性_6种可改善软件的可用性测试方法

功能测试 性能测试 可用性 Collette Stumpf是Surge的软件设计师。 成功的软件项目请客户,简化流程或以其他方式为您的业务增值。 但是,如何确保您的软件项目能够带来预期的改进? 用户会体验到更好的性能吗? 所有任务的生产率都会…

漫谈软件架构设计系列(一):可用性设计

作者:中国移动云能力中心 —— 胡建华 概要:高可用设计师应用软件架构设计的最基本要求,无论一个产品处于初创阶段还是快速增长期,作为一款商业软件面向用户提供服务,那么可用性的设计是必须予以考虑的。 一、基本概…

什么是服务器?服务器是干什么用的?

服务器 摘要: 服务器相信很多电脑爱好者都听过或者了解一些,一般我们很难看到真正的服务器,因为服务器一般均放置在机房重点,闲人一般均是免进的。比如我们每天浏览的网站、玩的游戏等,所有的数据均存在服务器&#x…

网络服务器是干什么用的

关于网络服务器介绍 定义 有时,这两种定义会引起混淆,如web服务器。 它可能是指用于网站的计算机,也可能是指像apache这样的软件,运行在这样的计算机上以管理网页组件和回应网页浏览器的请求。 服务器 服务器作为硬件来说&…

客户端与服务器

1.客户端与服务器 1.1 客户端 在前端开发中,客户端特指“Web 浏览器”。实际开发中,只要可以访问服务器的一端都属于客户端(手机、平板、电脑中的各种软件都可以是客户端)。 1.2 服务器 概念:服务器是提供服务的设备…

服务器是什么?它是用来干什么的?

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、服务器是什么? 二、服务器的作用 1、提高访问速度 2、提高安全性 三、云服务器与物理服务器 1、云服务器 云服务…

什么是伺服器

服务器/伺服器(server)是一种计算机,用于处理请求并通过 Internet 或本地网络将数据传送到另一台计算机。 大多数人将“服务器”一词理解为网络服务器,其中可以通过诸如网络浏览器之类的客户端在因特网上访问网页。但是&#xff0…

服务器的概念

第一次听到服务器的时候,脑子里的第一个想法就是,这个就是给计算机服务的东西吧,然而自己也是没有真的了解服务器的含义,总有点模棱两可的感觉,今天就找了一些关于服务器的资料,进一步的连接服务器。 服务…

服务器基本概念

服务器基本概念 服务器的前世今生 计算机分为64位和32位,64位为主流的计算方式,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。 服务器发展史: 大型机小型机X86服务器(工业标准服务器&a…

服务器是什么?

一.服务器是什么? 服务器是计算机的一种,它比普通计算机运行快、负或事高,价格。服务器网络中为其客户机(如PC机、智能手机、ATM等经端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的CPU运算能力长时间的可靠运行、强大的1/O外部数…

何谓服务器(Server) ?

何谓服务器(Server) ? 定义 1.一个管理资源并为使用者提供服务的电脑软件,通常分为档案服务器(能使使用者在其它电脑存取档案),资料库服务器和应用程式服务器。 2.执行以上软件的电脑。 有时,这两种定义会引起混淆&am…

【WEB服务器】什么是WEB服务器

一、概述 Web服务器一般指的是“网站服务器”,是某种驻留在因特网上的计算机程序,可以向请求终端提供服务,主要功能时存储、处理和传递网页给“客户”,传递内容一般是HTML文档、图像、样式表或脚本等,也可以放置网站文…

服务器是干什么用的?

首先,什么是服务器?服务器是提供计算服务器和网络服务的设备。服务器和计算机由CPU、硬盘、内存、系统总线等组成。比如我们访问一个网站,点击这个网站会发出访问请求,服务器会响应服务请求,进行相应的处理&#xff0c…

什么叫做服务器

服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。 服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似…

什么是服务器?(Powercert animated videos)

什么是服务器? 本篇文章是源自以下链接视频的字幕: 什么是服务器?(Powercert animated videos) 服务器本质上是一个用于为用户提供服务的专用电脑,比如一个普通的桌面电脑或者是一个工作站,所以服务器是一台许多用户…

服务器简介

1、什么是服务器? 【服务器】: 也称伺服器,是一种高性能计算机,提供计算服务的设备。 2、服务器的构成 服务器:由处理器(CPU)、硬盘、内存、系统总线等组成,和通用的计算机架构类似。由于服务…

涨知识 | 服务器到底是什么?

我们经常听到诸如服务器炸了,服务器崩了,重启服务器之类的话。 但是身处信息时代的你,是否真的懂服务器是什么? 1.服务器的概念 百度百科上这样说 服务器(Server),也称伺服器,是提…

什么是服务器?

服务器概述 服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。 服务器在网络中为其它客户机/客户端(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。 服务器具有高速的CPU运算能力、长时间…

什么是服务器?服务器是干什么用的?服务器的基本属性有哪些?怎么配置服务器?怎么挑选适合自己的服务器?

服务器的基础 服务器指一个管理资源并为用户提供服务的计算机,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。相对于普通PC来说,服务器在稳定性、安全性、性能等方面都要求更高,因此C…

WebRTC 协议介绍--一篇读懂DTLS、SRTP、SRTCP

DTLS作用 资料包传输层安全(英语:Datagram Transport Layer Security,缩写为 DTLS),又译数据包传输层安全,是一种通信协议,提供UDP协议在传输层的发送安全。它能够提供与TLS类似的安全保护。DTLS常用于流媒体。 DTLS与TLS DTLS is similar to TLS intentionally excep…