如何提高系统稳定性?

news2024/11/28 0:55:23

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、总结

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

 

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/166746.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试开发知识总结(一)

本文内容顺序:测试基础理论、测试岗经常被问到的场景题、智力题、测试岗高频算法题、数据库、Linux知识点。常用自动化测试工具1、Appium官网:http://appium.ioAppUI自动化测试Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台…

为什么很少拿神经网络来直接做滤波器呢?

其实无论是IIR(RNN)还是FIR(CNN)滤波器都可以看成一个简单神经网络,而且有严格的推理,可解释性比神经网络强多了,而已易于工程实现,因此在工程中大量应用。你说的含色噪声和其他乱七八糟的噪声难以滤除时&a…

ROS | Realsense中的IMU解算orientation

文章目录概述一、定义介绍二、操作教程(一)、下载并编译imu_tools功能包1.创建工作空间并初始化2.下载imu_tools并编译(二)、修改配置1.修改imu_tools源码2.修改launch文件3.启动解算概述 本文详细介绍了如何使用ROS自带的工具解算6轴IMU,获取其位姿。 一、定义介绍…

mybatis之动态SQL常见标签的使用

引入where标签的原因: 在上篇文章使用if语句的查询中,我们在SQL语句后面都写入了where 11,以保证每次都能够查询出结果,但这种方法并不是最合理的,假设我们现在将where后面的11去掉: 如下所示&#xff1a…

上午摆摊,下午写代码,35岁程序员的双面人生超爽!

最近看到一个程序员发帖分享自己的工作:白天出摊卖馄饨,下午在家为海外公司全职远程工作。“年入百万是可以的,并且我老家是三线城市,没有房租、通勤费用,性价比还是很高的。” 对比在大城市天天996的程序员&#xff0…

【JavaEE】多线程之线程安全(synchronized篇),死锁问题

目录 线程安全问题 观察线程不安全 线程安全问题的原因 从原子性入手解决线程安全问题 ——synchronized synchronized的使用方法 synchronized的互斥性和可重入性 死锁 死锁的三个典型情况 死锁的四个必要条件 破除死锁 线程安全问题 在前面的章节中&#xff0c…

Wav2Vec HuBert 自监督语音识别模型

文章目录Wav2Vec: Unsupervised pre-training for speech recognitionabstractmethodwav2vec 2.0: A Framework for Self-Supervised Learning of Speech RepresentationsabstractintroductionmethodMODEL arch损失函数finetuneexprimentHuBERT: Self-Supervised Speech Repres…

商品期货跨期套利实战笔记

合约对:IC2301&IC2302 价差计算 前-后(6082-6079.8) 做多价差开仓(预期价差变大) 买2301(前) 卖2302(后) 做空价差开仓(预期价差变小)&…

【Java|golang】1813. 句子相似性 III

一个句子是由一些单词与它们之间的单个空格组成,且句子的开头和结尾没有多余空格。比方说,“Hello World” ,“HELLO” ,“hello world hello world” 都是句子。每个单词都 只 包含大写和小写英文字母。 如果两个句子 sentence1…

react hooks组件间的传值方式(使用ts),子孙传值给祖先组件

父子组件传值参考:react hooks组件传值父传子很简单,只要父组件传参,子组件写好interface childProps和props去接收即可子传父稍复杂父组件写一个回调函数:changeTaskState{(id: any) > { changeTaskStateByID(id) }}当然这个 …

图自监督表征

1、综述 数据挖掘领域大师俞士纶团队新作:最新图自监督学习综述图自监督学习综述:Graph Self-Supervised Learning A Survey图自监督学习(Graph Self-supervised Learning)最新综述Github代码汇总图自监督学习在腾讯Angel Graph中…

基础数学(二)两数之和 三数之和

目录 两数之和_牛客题霸_牛客网 三数之和_牛客题霸_牛客网 两数之和_牛客题霸_牛客网 给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。 (注:返回的数组下标从…

从0到1完成一个Node后端(express)项目(四、路由、模块化、中间件、跨域)

往期 从0到1完成一个Node后端(express)项目(一、初始化项目、安装nodemon) 从0到1完成一个Node后端(express)项目(二、下载数据库、navicat、express连接数据库) 从0到1完成一个Nod…

分页查询数据重复的问题 (分页时数据库插入数据导致)

参考:https://blog.csdn.net/desongzhang/article/details/124941189参考之后 自己遇到的坑解决办法一、问题描述分页时,同时在数据库中添加数据,导致第n页和第n1页有部分数据重复(重复条数和查询分页时的添加的数据量有关)二、解决办法分页的…

商业智能 BI 跟业务系统的思维差异,跨越和提升

各行业都已开始进入数据时代,但很多企业还是分不清商业智能 BI 跟一般的业务信息化系统定位、用户、思维层面上的差异。 在企业的 IT 信息化规划中,基础的业务系统建设一定是走在前面的,有了这些系统基础,才会有数据的积累&#…

SH-PEG-Silane巯基-聚乙二醇-硅烷试剂简介Silane-PEG-SH

SH-PEG-Silane巯基-聚乙二醇-硅烷 外观:固体或液体,取决于分子量大小。 PEG可选分子量: 1000,2000,3400,5000,10000 溶剂: 溶于DMSO,DMF,DCM,溶于水。 纯度:>95% 保存:-20℃&#xff0c…

目标检测模型设计准则 | YOLOv7参考的ELAN模型解读,YOLO系列模型思想的设计源头

转载:https://mp.weixin.qq.com/s/5SjQvRqRct6ClpE2eEcdkw设计高效、高质量的表达性网络架构一直是深度学习领域最重要的研究课题。当今的大多数网络设计策略都集中于如何集成从不同层提取的特征,以及如何设计计算单元来有效地提取这些特征,从…

Ubuntu22.04 设置静态IP

1.查看网卡名称及IP ip addr 网卡名称:ens33 IP:192.168.44.130 2.修改配置文件 在 /etc/netplan/ 目录下找到配置文件 *.yaml ,修改为 network:version: 2#renderer: NetworkManagerethernets:ens33:addresses: [192.168.44.130/24]dhcp4: nooptio…

Chrome扩展程序(插件),用你开发的脚本在浏览器上随心所欲

Chrome扩展程序(插件),用你开发的脚本在浏览器上随心所欲Chrome插件的文件结构Hello_World编写利用JavaScript实现Hello Everything灵活运用浏览器的存储storageoptions_Page基本用法电脑发通知 - Notifications的应用普通界面右键菜单 - con…

Android 9.0系统源码_SystemUI(八)PhoneWindow更新状态栏和导航栏背景颜色的流程解析

前言 状态栏与导航栏属于SystemUi的管理范畴,虽然界面的UI会受到SystemUi的影响,但是,APP并没有直接绘制SystemUI的权限与必要。APP端之所以能够更改状态栏的颜色、导航栏的颜色,其实还是操作自己的View更改UI。可以这么理解&…