系统可用性

article/2025/10/13 7:01:30

        一个网站、系统的战术包括可用性战术、可修改性战术、性能战术、安全性战术、可测试性战术、易用性战术。可用性是在某个考察时间,系统能够正常运行的概率或时间占有率期望值。它是衡量设备在投入使用后实际使用的效能,是设备或系统的可靠性、可维护性和维护支持性的综合特性。采用可用性战术将会阻止错误发展为故障,或者至少能够把错误的影响限制在一定范围内,从而使系统恢复成为可能。对于一个软件和系统,出现故障、不可用的现象是非常重大的事故,那么如何衡量系统的可用性和提高系统系统的可用性呢?

可用性的衡量

衡量系统的高可用性,一般通过SLA,全称Service Level Agrement,也就是有几个9的高可用性。我们经常可以看到很多公司会宣称自己的系统可以达到99.99%、99.999%等。

工业界通常通过统计故障发生到恢复的时间的方法来测量SLA。一般以年度为单位,统计一年内的系统不可用总时长。具体对应关系如下表:

   对于 SLA 指标来说,9 的数字越多可用性越高,宕机时间越少,系统就可以在给定的时刻内高比例地正常工作。然而对系统的挑战就越大,投入的成本也会越高。 比如 5 个 9 要求系统每年只宕机 5 分钟左右,而 4 个 9 要求每年宕机时间不超过一个小时。这就使得系统需要在设计、基础设施、数据备份等不同层面采取多种方式,甚至增加基础设施投资来保证可用性。

不同系统的可用性要求也是不同的,比如:淘宝、京东等这些电商系统用户量很多,不同区不同时刻都有大量的用户在使用系统,这必然对系统的可用性要求很高。

据以往这些系统的故障统计和不准确地测试数据推测,它们目前的可用性是在 3 个 9 到 4 个 9 左右。相对而言,企业类的工作软件因为通常只在工作时间被使用,或只在某些特定的地区使用,或只给某部分人某一特定时间使用,可用性的需求就会低一些。

 

如何提高系统可用性

       提高系统的可用性有三方面:

  1. 错误检测用来检测故障的某种类型的健康监视;
  2. 自动恢复用来检测到故障时某种类型的恢复;
  3. 错误预防用来阻止错误演变为故障。

错误检测包括三个战术,第一个是信号或者响应,采用组件主动询问方式,在一个系统或网站中即一个组件发出一个信号,并希望在预定义的时间内收到一个来自审查组件的响应,该战术可以用在共同负责某项任务的一组组件内。第二种方式监视组件采用被动方式,就好像我们给老师汇报阶段学习,在系统或网站中即一个组件定期发出一个心跳信息,另一个组件收听该信息。心跳还可用于传递数据。第三个是异常:异常处理程序通常将错误在语义上转换为可以被处理的形式,异常通常与引入异常的程序在同一个进程中。

错误恢复就是回滚,回到之前的状态,分为六种战术,第一种是表决,运行在冗余处理器上的每个进程都具有相等的输入,它们计算的值都发给表决者,表决者发现异常则终止进程,该方法用于纠正算法的错误操作或处理器的故障,通常用在控制系统中。第二种是主动冗余:所有的备份的组件都以并行的方式对事件做出响应,它们的状态都相同,但每次只使用一个组件的响应而丢弃其余组件的响应;主动冗余通常用在客户机或服务器的配置中,在这种配置中,即使发生错误,也可在极短的时间,通常为几毫秒内恢复,比如门户网站采取的策略。第三种是被动冗余:主组件对事件做出响应,并通知其它备用组件必须进行的状态更新。第四种是备件:备件是计算平台配置用于更换各种不同的故障组件。出现故障时,必须将其重新启动为适当的软件配置,并对其状态进行初始化。第五种是Shadow操作:出现故障的组件可以以“Shadow模式”运行,这样可以在系统恢复前模仿工作组件的行为。第六种是状态再同步:主动和被动冗余战术要求所恢复的组件在重新提供服务前更新其状态。错误预防就是设置进程监听器,当一个事物出现错误时,从进程中删除事物。

可用性的保障

影响可用性的因素有很多,包括系统故障、基础设施故障、数据故障、安全攻击、系统压力等等。

可用性的保障涉及到很多层面,其中包括但不限于了:

  • 软件的设计、编码、测试、上线和软件配置管理的水平

  • 工程师的人员技能水平

  • 运维的管理和技术水平

  • 数据中心的运营管理水平

  • 依赖于第三方服务的管理水平

  • 对待技术的态度

  • 一个公司的工程文化

  • 领导者对工程的尊重

保障系统的高可用,并不是一个简单的事情,真正的保证高可用,还是需要大量实践的!

 


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

相关文章

系统可用性量表评估问卷

1,中文:可用性问卷 2,英文原版: sus Measuring Usability With The System Usability Scale (SUS) The System Usability Scale (SUS) was originally created as a “quick and dirty” scale for administering after usabili…

软件可靠性

知识点 主要难点和考点可靠性计算 串联系统 串联系统可靠性计算 并联系统 并联系统可靠性计算 并联系统有一个系统是可靠系统,整个并联系统就是可靠系统 1-R 表示系统的失效率 N模混合系统 可靠性计算 计算软件可靠性指标公式 可靠性:MTTF/(1MT…

软件测试中的可用性、可维护性、可靠性有什么区别?

我们生活在一个用户依赖于对服务的一致访问的可靠性时代。在相互竞争的服务之间进行选择时,对用户来说,没有比可靠性更重要的特性了。但是可靠性是什么意思呢? 为了回答这个问题,我们将根据可靠性工程中的其他度量来分解可靠性:可用性和可维护性。区分这些术语并不是语义…

可靠/可用性介绍

可靠/可用性主要目的是保护业务零中断和高用户体验。 可靠可用性基本概念 广义的可靠性(Reliability)由三个部分组成:可靠性(Reliability)、可维修性(Maintainability)和可用性(Avaliability)。其中狭义的可靠性是指产品在规定的条件和时间内完成规定功能的能力&a…

软件测试可用性常用指标

网站可用性 所谓网站可用性(availability)也即网站正常运行时间的百分比,业界用 N 个9 来量化可用性, 最常说的就是类似 “4个9(也就是99.99%)” 的可用性。 描述通俗叫法可用性级别年度停机时间基本可用性2个999%87.6小时较高可用性3个999.9%8.8小时具…

服务器系统可用性99.9,可用性99.9

可用性99.9 内容精选 换一换 云数据库 RDS服务支持切换主备实例的可用性策略,以满足不同业务需求。可选择 “可靠性优先”或者“可用性优先”两种策略。调用接口前,您需要了解API 认证鉴权。该接口仅支持MySQL引擎。仅支持主备实例,即:HA实例。实例在创建、数据库升级、创建…

软件设计中的可用性和可用性测试

什么是可用性 在创建软件的环境中,术语“可用性”表示一种方法,它将用户而不是系统摆在过程的中心。这一方法称作以用户为中心的设计,它从设计过程的一开始就将用户关心的问题和意见考虑在内,并提出在任何设计决策中用户的需要都应…

谈一谈软件系统的可用性

什么是可用性 系统的可用性用如下公式表示: 其中: MTBF:即平均无故障工作时间,英文全称是“Mean Time Between Failure”。是衡量一个产品(尤其是电器产品)的可靠性指标。单位为毫秒、秒钟、分钟、小时等…

功能测试 性能测试 可用性_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文档、图像、样式表或脚本等,也可以放置网站文…