CentOS 上 Java 应用性能测试实操指南
一 测试流程与分层
二 常用工具与用途
| 工具 | 用途 | 典型命令或要点 |
|---|---|---|
| JMH | Java 微基准测试 | 通过 Maven 生成 JMH 工程,注解配置 Warmup/Measurement/Fork,避免 JIT 与预热影响 |
| Apache JMeter | 负载与压力测试(HTTP/RPC/DB) | 非 GUI 运行:jmeter -n -t testplan.jmx -l result.jtl;聚合报告分析吞吐与 P95/P99 |
| VisualVM | JVM 可视化监控 | 监控堆、线程、GC、取样;可远程通过 JMX 连接 |
| JConsole | JMX 图形监控 | 本地/远程连接查看内存、线程、类、CPU |
| jstat/jstack/jmap/jps | 命令行诊断 | 如:jstat -gcutil |
| perf | Linux 内核级 CPU 采样剖析 | perf record -F 99 -g -p |
| dstat/nmon | 系统资源监控 | dstat -ta 16;nmon 实时查看 CPU/内存/磁盘/网络 |
| Prometheus + JMX Exporter + Grafana | JVM/业务指标采集与可视化 | JMX Exporter 暴露指标,Prometheus 拉取,Grafana 展示趋势与告警 |
| Micrometer | 应用内度量埋点 | 与 Spring Boot Actuator/Prometheus 集成,记录时延、计数、直方图 |
| sysbench/iperf/stress | 系统基线(CPU/IO/网络/压力) | 评估服务器极限与瓶颈边界,辅助归因(CPU/IO/带宽) |
| 以上工具覆盖了从代码级到系统级、从监控到剖析的完整链路,适合在 CentOS 上系统化开展性能测试与诊断。 |
三 一步步执行
步骤 1 微基准 JMH
步骤 2 负载与压力 JMeter
步骤 3 监控与剖析
四 结果判读与瓶颈定位
五 实践建议与常见坑