状态大小监控与动态扩缩容 - 第1节
为什么需要状态监控?
做 SRE 这些年,我见过太多系统在半夜突然崩溃。没有监控,你连崩溃的原因都找不到。说白了,监控就是系统的眼睛和耳朵。
你想想看,一个线上服务跑得好好的,突然用户反馈说打不开了。你登录服务器一看,CPU 100%,内存快满了。但问题是——什么时候开始满的? 是慢慢涨上来的,还是突然爆发的?没有历史数据,你只能靠猜。
我个人习惯,任何系统上线前,第一件事就是搭监控。不是等出问题了再补,而是从一开始就埋好探针。这就像盖楼之前先画图纸,而不是等楼歪了再找原因。
状态监控到底监控什么?
很多人以为监控就是看 CPU、内存、磁盘。嗯,这些确实重要,但远远不够。我遇到过最坑的一次:所有基础指标都正常,CPU 30%,内存还有一半,但用户就是访问不了。后来发现是应用层的连接池满了,基础指标根本看不出来。
所以,状态监控要分层来看:
- 基础设施层:CPU、内存、磁盘、网络 I/O
- 中间件层:数据库连接数、消息队列堆积、缓存命中率
- 应用层:请求延迟、错误率、吞吐量
- 业务层:订单量、注册数、支付成功率
每一层都有自己的关键指标。只看一层,就像盲人摸象。
监控的黄金指标
业界总结了三大黄金指标体系:USE、RED、Four Golden Signals。这三个体系各有侧重,我一般会组合使用。
USE 方法:资源视角
USE 是 Brendan Gregg 提出的,全称是 Utilization、Saturation、Errors。它主要针对资源层面。
| 指标 | 含义 | 举例 |
|---|---|---|
| Utilization(利用率) | 资源被使用的百分比 | CPU 使用率 80% |
| Saturation(饱和度) | 资源排队等待的程度 | CPU 运行队列长度、磁盘 I/O 等待 |
| Errors(错误数) | 资源层面的错误计数 | 磁盘坏道、网卡丢包 |
我记得有一次排查数据库性能问题,CPU 利用率才 40%,但查询特别慢。用 USE 一看,磁盘饱和度很高,I/O 等待时间飙升。原来是磁盘的 IOPS 打满了,CPU 在等磁盘。这就是饱和度的价值——光看利用率是不够的。
RED 方法:服务视角
RED 是 Tom Wilkie 提出的,全称是 Rate、Errors、Duration。它主要针对服务层面。
| 指标 | 含义 | 举例 |
|---|---|---|
| Rate(速率) | 每秒请求数 | QPS 5000 |
| Errors(错误率) | 请求失败的比例 | 5xx 错误率 0.1% |
| Duration(延迟) | 请求处理时间 | P99 延迟 200ms |
RED 方法特别适合微服务架构。每个服务都暴露这三个指标,整个调用链的健康状况一目了然。我曾经在一个项目里,把所有微服务的 RED 指标汇总到一个大屏上。哪个服务延迟高了,哪个错误率上去了,一眼就能定位。
Four Golden Signals:Google 的实践
Google 的 SRE 团队提出了四个黄金信号,算是 USE 和 RED 的集大成者:
- 延迟(Latency):请求处理时间,区分成功和失败的延迟
- 流量(Traffic):系统承载的请求量
- 错误(Errors):显式错误(5xx)和隐式错误(返回正确但结果不对)
- 饱和度(Saturation):系统资源的使用程度
这四个信号覆盖了从用户感受到系统内部的全链路。我个人觉得,延迟是最敏感的指标。用户可能不在乎你的 CPU 是多少,但延迟高了,用户一定骂娘。
三个体系怎么选?
很多新手会问:到底用哪个?我的答案是:全都要,但各有侧重。
| 场景 | 推荐体系 | 原因 |
|---|---|---|
| 基础设施监控 | USE | 资源视角,直接看 CPU、内存、磁盘 |
| 微服务监控 | RED | 服务视角,关注请求和错误 |
| 全链路监控 | Four Golden Signals | 覆盖最全面,从用户到资源 |
| 容量规划 | USE + Four Golden Signals | 既要看资源饱和度,也要看流量趋势 |
说白了,没有银弹。我一般会先搭 Four Golden Signals 作为基础,然后对关键资源补充 USE,对关键服务补充 RED。这样三层覆盖,基本不会漏掉重要指标。
知识体系总览
下面这张图总结了本章的核心逻辑。你可以看到监控体系的分层结构,以及三个黄金指标体系的定位。
这张图把本章的核心逻辑串起来了。从「为什么需要监控」出发,到监控分层,再到三大指标体系,最后落到组合使用。你可以在后续章节中反复参考这张图。
小结
监控体系不是一蹴而就的。我刚开始做 SRE 时,也走过弯路——指标堆了一大堆,真正出问题时却找不到关键信息。后来慢慢摸索出这套分层 + 黄金指标的方法,才算是有了章法。
记住几个要点:
- USE 看资源,RED 看服务,Four Golden Signals 看全局
- 不要只看平均值,百分位延迟才是真相
- 监控要分层覆盖,从基础设施到业务指标
- 先搭基础监控,再逐步完善,别想一步到位