稳定性的定义
SLA = uptime / uptime + downtime 即系统不可用时间占比全年时间,数值越高,意味着系统稳定运行时间越长。
所谓的4个9,意味着全年最多有52.56分钟的故障时间。 5个9,意味着全年最多有5.26分钟的故障时间,等等,以此类推。
稳定性保障手段
- 弹性服务:容量规划,容量伸缩,全链路压测
- 故障隔离:强弱依赖,熔断限流,故障演练
- 应急体系:系统监控,系统告警,值班体系,核心链路梳理,监控埋点
- 稳定性建设文化:代码review,单元测试,故障复盘
容量规划
1:线上服务能承受多大的访问量 2.单台服务器能承受多大的访问量 3.需要加机器吗?需要加多少台机器 这个时候,就体现出容量规划的重要性了
容量 VS 性能
- 性能:决定一辆车能装什么东西
- 容量:决定需要多少量车
容量规划可以分解为下面 4 个步骤
- 明确目标
- 收集指标
- 趋势预测
- 容量部署
收集数据指标
不知道当前服务能承受的容量范围的话,不建议进行容量方面的规划。
我们需要通过测试来了解当前服务的数据指标。没有测试出你的服务上限的话,规划出来也是没有效果的。
测试主要分为下面 2 个步骤
- 测试服务器的主要功能 :业务维度 QPS、TPS
- 测试服务器硬件资源 : CPU、内存、硬盘、网络
趋势预测
预测容量是一个持续的过程,需要靠数学与直觉来进行精确的预测。
整体过程如下
-
首先确定资源度量指标 :比如内存消耗、硬盘消耗、CPU 消耗
-
其实对拥有的资源确定约束访问 : 比如 总内存大小、总硬盘大小等
-
最后根据监控趋势图( Zabbix 、Metrics)算出具体容量超出时间点 : 比如内存何时会耗尽