本文系统解析压测过程中如何通过 CES、CPU Utilization、Memory Utilization 等性能监控面板进行判断与决策。不涉及指标定义,聚焦「怎么看面板」与「从面板得出什么结论」。

阅读收益:建立压测读面板的心智模型,掌握基线建立、CPU/内存/CES 解读要点及结论输出流程。


一、核心认知:看关系,不看数值

常见误区

误区 正确思路
CPU 高不高? 在当前压测强度下,指标是否「符合预期关系」
内存满不满? 同上

性能问题本质是资源竞争,单点数值意义有限。

三条原则

  1. 单个指标没意义,看趋势
  2. 单张面板没意义,看联动
  3. 压测结果不是「高不高」,而是「稳不稳」

二、压测前:建立基线

压测前应先观察空载 / 低负载状态,作为后续对比基准。

2.1 CPU 基线

关注点 说明
占用率 是否长期 < 20%
波动 是否平稳,有无周期性抖动

目的:记住「正常状态」的形态,便于压测时对比。

2.2 内存基线

关注点 说明
启动后 是否迅速升高后稳定,或随时间缓慢上涨
回落 是否存在明显回落(GC / 释放)

目的:为后续判断「是否泄漏」提供对照。


三、CPU Utilization:怎么看、怎么判断

3.1 基本前提

  • CPU 高 ≠ 有问题
  • CPU 不高 ≠ 没问题

3.2 增长形态

形态 特征 含义
线性增长(健康) QPS ↑ → CPU 平滑上升;并发 ↓ → CPU 平滑下降 资源与负载关系合理
阶梯 / 突增(风险) 并发一上来 CPU 突顶;再加并发 CPU 不变,RT 暴涨 可能为锁竞争、同步阻塞、线程池打满

3.3 占用率区间

CPU 区间 建议判断
< 60% 系统较安全
60%–75% 可接受,需观察
75%–85% 临界区,重点盯
> 85% 基本不可持续

压测重点:不是「能否跑到 100%」,而是「在目标 TPS 下,CPU 是否还能留余量」。

3.4 CPU 高但 RT 未上升

场景 判断
短时间 可接受
长时间 风险

CPU 长时间接近上限时:

  • 任何抖动(GC / IO / 调度)都会放大为 RT 波动
  • 系统对突发流量缺乏缓冲能力

四、Memory Utilization:看形态,不看占用率

4.1 核心问题

内存是「用完就回」,还是「一路不回头」?

4.2 三种内存曲线

类型 特征 判断
健康型 压测开始后上升 → 稳定后平台 → 压测结束回落 正常
可疑型 每轮压测峰值升高;GC 后仅部分回落 需排查
高危型 内存只涨不跌;压测结束也不回落 即使未 OOM,也属结论级问题

4.3 内存未满但系统变慢

可能原因:

  • GC 频繁,CPU 被抢占
  • 对象创建过多,Young GC 压力大
  • 缓存策略不合理

结论:内存不是「用满才有问题」,而是「用得不健康就有问题」。


五、CES 面板:综合健康度的放大镜

CES 通常代表系统综合健康度 / 容量 / 服务状态(具体定义因公司而异)。

5.1 与压测阶段是否同步

压测阶段 CES 预期
升压 CES 同步下降
稳定 CES 稳定
降压 CES 恢复

不同步 = 存在隐藏瓶颈

5.2 CES 先掉、CPU 未高

通常意味着:

  • IO / DB / 下游服务先扛不住
  • 应用层尚未感知,系统已在「透支」

信号:扩容或架构问题的强信号。

5.3 CES 的定位

  • 问题暴露:通常在 CPU / Memory / RT 上先暴露
  • CES 作用:确认「整体是否已不可接受」,用于验证结论,而非发现新问题

六、压测读面板流程

步骤 内容
1 看 RT / TPS 是否符合预期
2 看 CPU 是否线性、是否有余量
3 看 Memory 是否稳定、有无趋势问题
4 用 CES 验证系统整体健康度
5 结合压测阶段,给出「是否可上线」判断

七、结论:面板支撑判断,而非展示数据

性能面板的价值在于支撑判断,而非单纯展示数据。

可据此判断是否跨过新手阶段的问题

  • 当前性能瓶颈是什么?
  • 再加 30% 流量,会先死在哪里?
  • 系统是「性能问题」还是「容量问题」?

延伸阅读