1、系统稳定性的评判标准

在开始谈稳定性保障之前,我们先来聊聊业内经常提及的一个词SLA!业内喜欢用SLA (服务等级协议,全称:service level agreement)来衡量系统的稳定性,对互联网公司来说,就是网站与用户间定义的一种双方认可的协定。

我们平常经常看到互联网公司喊口号,我们今年一定要做到3个9、4个9,即99.9%、99.99%,甚至还有5个9,即99.999%。
9越多代表全年服务的可用时间,时间越长服务越可靠。就以一个标准99.99%为例,停机时间52.6分钟,平均到每周也就是只能有差不多1分钟的停机时间,也就是说网络抖动这个时间可能就没了。
服务稳定性计算标准一般都是,总的请求数-失败数 / 总请求数 ,比如100-5/100 = 95% ,下面列举了几个对应的停机时间。

1年 = 365天 = 8760小时
3个9        99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小时
4个9        99.99 = 8760 * 0.0001 = 0.876小时 = 0.876 * 60 = 52.6分钟
5个9        99.999 = 8760 * 0.00001 = 0.0876小时 = 0.0876 * 60 = 5.26分钟

2、提高系统稳定性的意义

我认为这是一个非常重要的问题,我们费了那么多资源,投入了许多时间、精力为的是什么,揭高系统稳定性的意义究竟是什么?

  • 不是让公司多挣钱,而是让公司少损失钱!(电商类,交易类系统)
  • 提升用户对系统的使用感受,减少用户的流失(用户评价:顺畅、垃圾、再在也用了、用竞品)

3、提高系统稳定性的本质

  • MTTF (Mean Time To Failure,平均无故障时间),指系统无故障运行的平均时间,取所有从系统开始正常运行到发生故障之间的时间段的平均值。 MTTF =∑T1/ N
  • MTTR (Mean Time To Repair,平均故障修复时间),指系统从发生故障到维修结束之间的时间段的平均值。MTTR =∑(T2+T3)/ N
  • MTBF (Mean Time Between Failure,平均故障间隔时间),指系统两次故障发生时间之间的时间段的平均值。 MTBF =∑(T2+T3+T1)/ N
  • 可靠性:度量标准是平均故障间隔时间 (MTBF),即经过此间隔时间后组件出现故障并需要修复。提高可靠性需要强调减少系统故障的次数,即不出故障或尽可能的少出故障,即增加MTTF时间。
  • 可用性:量化指标是周期内系统无故障运行的总时间(MTTF)。提高可用性需要强调减少从灾难中恢复的时间,即减小MTTR时间。

系统稳定性的本质:就是提高可靠性和可用性,增加故障间隔时间(MTTF),减小故障修复时间(MTTR)从而保障业务连续性,减少业务损失。

4、提高系统稳定性认知陷阱

本节大概讲一下,我们在维护系统时的一些常见陷阱,以及我们如何提升我们的认知水平。

陷阱1:我的系统从来没有发生过事故,肯定不会出故障

连续性思维:通常人们认为过去、现在、未来是连续的,而现实世界是非连续的,连续性只是认知假设。人类的默认思维方式是归纳法,它的适用范围是在同一曲线内,没有突变。我们的系统是一个变化的系统,一旦前提假设不成立,从过去看未来的归纳总结就不再成立。
认知升级:认识到连续性思维的局限,转变为非连续性思维,解决思维固化

陷阱2:网络出问题了,基础设施出问题了,我也没办法呀,不是我的错

Design for failure(故障设计):我们的系统构建在硬件、操作系统等基础设施之上,依赖中间件、数据库、网络,依赖于三方系统,所有的这些都有可能失效,我们必须基于这些依赖都会失效进行设计。
认知升级:一切都可能失效,要考虑失效场景

陷阱3:我考虑了这些异常场景,做了专门设计,肯定没问题

故障演练验证: 我们所有的设计是否有效,应该像物理学、化学一样,要得到验证,没有验证的东西都是

不可信的。我们要模拟故障场景,根据发生的概率和危害程度及后果进行可靠性设计验证、可用性设计验证,证明如我们期望的一样运行。
认知升级:设计是否有效,需要故障演练验

陷阱4:这个故障场景发生的可能性太低,应该不会发生

墨菲定律(Murphy's Law):主要内容有四个方面:

  • 任何事都没有表面看起来那么简单;
  • 所有的事都会比你预计的时间长;
  • 会出错的事总会出错;
  • 如果你担心某种情况发生,那么它就更有可能发生。

墨菲定律的根本内容是指任何一个事件,只要具有大于零的机率,就不能架设它不会发生。
认知升级:担心发生的迟早会发生,杜绝侥幸心理

陷阱5:这几天报警数有点多,不过没有用户反馈,过几天再说

海恩法则:任何不安全事故都是可以预防的。海恩法则,是航空界关于飞行安全的法则。海恩法则指出:每一起严重事故的背后,必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。

按照海恩法则分析,当一件重大事故发生后,我们在处理事故本身的同时,还要及时对同类问题的“事故

征兆”和“事故苗头”进行排查处理,以此防止类似问题的重复发生,及时解决再次发生重大事故的隐患,把问题解决在萌芽状态。

海恩法则强调两点:一是事故的发生是量的积累的结果;二是再好的技术,再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心
认知升级:不要麻痹大意,事情会由量变到质变转换的

5、提高系统稳定性的具体方法

上面说了一大堆,又是标准,又是意义的,下面的才是干货,我以为自己的角度进行了一下归纳总结。

6、总结

系统就像一辆高速运行的汽车,随时都会有新的需求,新的问题在等着我们,我们不能让这个高速行驶的汽车停下来修复问题,所以我们只能在它运行的时候修复,这是一项风险很高的操作,所以需要我们在各个环节都做好了,才能保证它不出问题。要提高系统稳定性也不一朝一夕的事,是一个长期的过程,所以不要松懈,有问题及时解决。

本是后山人,偶做前堂客。醉舞经阁半卷书,坐井说天阔。写的不好敬请谅解!

如何提高系统稳定性?相关推荐

  1. 如何提高系统的稳定性?

    如何提高系统的稳定性? 2人以上的需求或项目,必须制定主要负责人,负责整体系统的设计.代码把控,内外部的协调,把整体流程串起来,不只是每个人只做自己的部分: 在需求评审之前,相关人把prd通读,把问题 ...

  2. 换个角度聊系统稳定性建设(2021版)

    前面发过一篇同名的文章,但那个是2020年年初写的.后续在做稳定性工作过程中有了一些新的输入与心得,于是在前一篇文章基础之上做了一些完善,主要是修改了一些错别字,追加了一些新的感悟,为便于阅读,我将更 ...

  3. 换个角度聊系统稳定性建设

    写在前面 对于任何系统来说,系统稳定性都是最基本的一个要求,只不过每个项目都有其发展周期,每个周期都有其主要的发展目标,比如业务爆发初期我们要求业务快速迭代,业务发展中期我们可能更多的是要求精细化运营 ...

  4. 减少亚稳态导致错误,提高系统的MTBF

    1.亚稳态与设计可靠性 设计数字电路时大家都知道同步是非常重要的,特别当要输入一个信号到一个同步电路中,但是该信号由另一个时钟驱动时,这是要在接口处采取一些措施,使输入的异步信号同步化,否则电路将无法 ...

  5. 淘宝技术沙龙「系统稳定性与性能」的笔记与思考

    转自 http://itzoo.info/?p=591 一 如何利用应用自己的数据来保证系统的稳定-淘宝小赌 总体感觉淘宝经过最近这几年双十一和双十二的洗礼,在流量的容量规划和控制方面做了很多工作: ...

  6. 3+1保障:高可用系统稳定性是如何炼成的?

    简介: 影响系统稳定性的架构设计有哪些?一个可持续保障的研发运维流程机制是怎样的?如何培养团队技术人员的意识和能力?本文作者以团队技术负责人的视角,从三大技术要素和一个业务要素,分享在稳定性建设上的实 ...

  7. matlab系统稳定性分析,控制系统稳定性分析的MATLAB实现

    收稿日期 :200706220 基金项目 :周口师范学院青年基金资助项目(No. ZKNUQN200621) 作者简介 :刘 伟(1976 - ) ,女 ,河南太康人 ,助教 ,硕士 ,主要从事电力系 ...

  8. 面对系统的稳定性、我们如何做好系统稳定性建设?

    1.背景介绍 在移动互联网时代,用户群的积累比之前更容易,但同样,也会因为糟糕的用户体验,而快速流失用户,哪怕是号称独一无二的12306网站,也在不断优化系统来提升用户体验:而在后移动互联网的物联网时 ...

  9. Java应用,如何提高系统健壮性

    Java 是一门广泛应用于企业级应用的编程语言,在编写大型系统时需要考虑系统健壮性,以确保系统的可靠性和稳定性. 以下是提高 Java 系统健壮性的一些建议: 异常处理:合理处理异常可以避免程序在遇到 ...

最新文章

  1. 谷歌将比特币现金汇率纳入货币信息搜索
  2. 高级篇:独立开发者 5 分钟入门 ASO
  3. 命令行选项“/source-charset”与预编译头不一致
  4. 完全图解RNN、RNN变体、Seq2Seq、Attention机制
  5. BO QUERY BUILDER - SI_INSTANCE相关属性
  6. python canvas画移动物体_Python GUI编程入门(25)-移动Canvas对象
  7. opencv waitKey() 函数理解及应用
  8. BitTorrent协议规范(BitTorrent Protocol Specification)系列之元信息文件结构(Metainfo File Structure)-第二部分...
  9. LINUX使用OpenSSL进行签名
  10. html5箱子游戏源代码,html5 canvas绘制小人推箱子小游戏源码
  11. 乌克兰网站网站服务器,乌克兰服务器地址ip
  12. Vue 拖拽缩放组件 vue-drag-resize属性
  13. Mysql,姓名按笔画排序
  14. html默认office打开如何更改,怎么设置office默认打开方式,修改office的默认打开方式...
  15. powerdesigner 导入sql文件生成模型
  16. 深入浅出WMS之出库流程解析
  17. 猿创征文|HCIE-Security Day60:邮件过滤技术
  18. Spring Boot+Vue(一)node.js环境搭建
  19. 编程之美--3.5最短摘要的生成
  20. 搜狗皮肤php怎么转换,搜狗皮肤PHP怎么使用 搜狗输入法皮肤PHP使用方法

热门文章

  1. php中文数字转阿拉伯数字,中文数字转阿拉伯数字
  2. 2020年免费远程控制软件排行出炉!网站监控免费下载有那些?
  3. microbit开发环境搭建
  4. 起诉中介的民事诉讼状
  5. CHIL-ORACLE-创建序列
  6. 云服务器cvm系统,cvm云服务器如何登录
  7. matlab如何实数域因式分解,x^n+1在实数域和复数域上如何因式分解
  8. 词袋 图像检索 matlab,词袋模型BoW图像检索Python实战
  9. 谷歌以54亿美元收购网络安全公司、数百万惠普设备存在高危漏洞|3月10日全球网络安全热点
  10. 大脑的信息获取特点与记忆模式