容量基准测试需“可控施压+精准采样+时间对齐”:按50、100、200、500、1000阶梯设并发,每档稳压5分钟(含1分钟热身),档间插入30秒静默期;cpu与内存须用同一机制、同粒度(如node_exporter每5秒)采集并严格时间对齐;图表需叠加并发、cpu%、内存rss三曲线,标注三大拐点,并排除cgroup限频、中断激增、压测机过载等干扰。

容量基准测试中记录不同并发级别下的 CPU 和内存消耗曲线,核心是“可控施压 + 精准采样 + 时间对齐”。不是单纯跑完压测再看监控截图,而是让资源指标和并发负载在时间轴上严格对应,才能看出真实拐点和瓶颈特征。
明确并发阶梯与稳定观测窗口
并发级别不能随意设置,需按业务规律分段设计:
- 从 50、100、200、500、1000 这类整数阶梯起步,避免跳变过大(比如直接从 100 到 5000);
- 每个并发档位持续运行至少 5 分钟,前 1 分钟用于热身(JVM JIT 编译、连接池填充等),后 4 分钟才作为有效采样期;
- 相邻档位之间插入 30 秒静默期(并发归零),便于观察资源是否回落,判断是否存在累积效应(如内存未释放、线程堆积)。
统一时间戳采集 CPU 与内存指标
CPU 和内存必须用同一套采集机制、同一时间粒度,否则曲线无法叠加分析:
- 推荐使用 node_exporter + Prometheus:每 5 秒抓取一次
process_cpu_seconds_total和process_resident_memory_bytes,配合rate()函数计算 CPU 使用率; - 若用脚本采集,务必用
date +%s.%N记录毫秒级时间戳,避免top -b -n1或free -m输出时间错位; - 禁止混用工具:比如用 JMeter 报告里的“平均 CPU”和自己写的
vmstat脚本数据拼图——二者采样逻辑、统计口径完全不同。
绘制可比对的多维曲线图
单张图要同时呈现并发值、CPU 利用率、内存 RSS 三条曲线,横轴为绝对时间(非“第几分钟”):
- 纵轴左侧放 CPU 利用率(%),右侧放内存占用(MB),并发值用带标记的水平虚线叠在图中(例如“Conc=500”标在对应时段上方);
- 重点标注三个拐点:CPU 利用率首次突破 70% 的时刻、内存增长斜率明显变陡的起始点、两者开始不同步上升(如 CPU 飙升但内存平缓)的位置;
- 导出 CSV 时保留原始时间戳、并发档位标签、每秒采样值,方便后续用 Python 或 Grafana 做归一化分析(例如将各档位内存曲线按时间偏移对齐后叠加)。
注意环境干扰项
很多“异常曲线”其实来自外部干扰,记录时就要同步留证:
- 开启
systemd-cgtop或cgroup监控,确认压测进程没被容器或 cgroup 限频; - 记录
/proc/interrupts变化,排除网卡中断激增导致的 CPU 虚高; - 压测机自身资源也要监控——如果压测工具(如 JMeter)把本机 CPU 打满,发出去的请求节奏就会失真,连带影响被测系统资源读数。










