正如飞机在起飞前,机长、副机长要过一遍 checklist 查看,确认没问题了能力腾飞。楼主也整顿了一个零碎容量现状 checklist,不便对照检查。本文搭配架构师必备:如何做容量预估和调优,食用更佳。
作为架构师,不要感觉零碎容量是运维工程师才关怀的问题,而该当对系统容量现状做到一目了然。这样能力晓得零碎的瓶颈在哪,哪些优化是要优先做的,以及为了应答流动期间突发的流量,做多少扩容。
本文分为 2 大部分,一是资源使用率,二是业务指标。
资源使用率
服务实例
- 实例个数、每个实例 server 的工作线程个数、MQ 生产组线程个数
- QPS 峰值
- 接口响应工夫:均匀、95 分位、99 分位、最大值
- CPU 使用率峰值
- 报错数量 / 秒
- JVM 堆内存使用率峰值
- GC 回收工夫
- 磁盘使用率(如有,个别无本地存储)
MySQL
- 分库数量、分表数量、从库个数、路由规定
- QPS 峰值、TPS 峰值、读写比例
- CPU 使用率峰值
- 磁盘使用率
- 有无热点、数据歪斜
- 行总数
- 主从复制 / 同步提早 ms
- 慢查问数量 / 秒
- 长事务数量 / 秒
Redis
- 实例个数、集群形式
- QPS 峰值、TPS 峰值、读写比例
- CPU 使用率峰值
- 内存使用率峰值
- key 总数
- 有无热点实例、有无热点 key
HBase
- 实例个数、region 个数
- CPU 使用率峰值
- 磁盘使用率
- 行总数
- compaction 时间段
- 有无热点实例、有无数据歪斜
ElasticSearch
- 实例个数、分片 shard 个数、路由规定
- 文档 document 个数
- CPU 使用率峰值
- 磁盘使用率
- 有无热点实例、有无数据歪斜
音讯队列
- 实例个数、分片 partition 个数
- 音讯 TPS 峰值
- 生产沉积数量
- CPU 使用率峰值
- 音讯保留时长
业务指标
外围流程的业务指标
每个零碎都不一样,须要依据理论状况定义业务指标。如:
- xxx 成功率
- xxx 失败率
- xxx 个数、次数
- xxx 时长
- xxx 参加人数
- xxx 金额
状态机流转状况
如图所示,示例的状态机流转状况如下:
- 流转方向 :只能从 1 流向 2,不能从 2 流向 1
- 前置状态 :只能从 2 或 3 流向 4,不能从 1 流向 4
- 两头态停留时长 :2、3、4 是中间状态,不该当长时间停留,否则认为是卡住了
- 终结状态 :5(胜利)和 6(失败)是终结终态,最终都会变成 5 或 6
因而,须要关怀的业务指标如下:
- 各状态的个数
- 成功率:胜利终结状态的比例
- 整个流程的时长
- 卡在两头态的个数、时长