CentOS Java监控工具介绍
作者:WarmHope
时间:2026-07-12
浏览:0
CentOS 环境下,Ja va 应用的监控到底该怎么搞?这个问题其实拆开来看,无非三个层面:JVM 本身、应用层、还有底层的操作系统。下面就把市面上常用的工具和典型用法梳理一遍,方便大家按需选型,落地时少走弯路。 工具分类与用途 先说工具的分类。不同的工具,干的活不一样,有的适合应急诊断,有的适合
CentOS 环境下,Ja va 应用的监控到底该怎么搞?这个问题其实拆开来看,无非三个层面:JVM 本身、应用层、还有底层的操作系统。下面就把市面上常用的工具和典型用法梳理一遍,方便大家按需选型,落地时少走弯路。

工具分类与用途
先说工具的分类。不同的工具,干的活不一样,有的适合应急诊断,有的适合长期观测。下面这个表格基本覆盖了从 JVM 诊断到系统监控的完整链路,可以组合使用。
| 工具 | 类型 | 主要用途 | 典型场景 |
|---|---|---|---|
| jps | JVM 自带 | 列出本机所有 Ja va 进程 PID | 快速定位目标进程 |
| jstat | JVM 自带 | 监控 GC、内存、类加载、JIT 等统计 | 观察 GC 频率与内存各区使用 |
| jinfo | JVM 自带 | 查看/动态修改 JVM 参数 | 核对与调整运行时参数 |
| jstack | JVM 自带 | 打印线程栈,定位死锁/阻塞 | 线程争用、卡死排查 |
| jmap | JVM 自带 | 生成堆转储,分析内存泄漏 | 内存泄漏定位、对象分布 |
| JConsole | 可视化 | 图形化查看内存、线程、类、CPU | 本地/远程连接诊断 |
| VisualVM | 可视化 | 性能监测、线程分析、内存泄漏检查 | 深度排查与采样 |
| JMX | 管理与监控 | 远程采集 MBean 指标与操作 | 对接监控平台、脚本化采集 |
| Prometheus + JMX Exporter | 指标平台 | 将 JVM/JMX 指标转为 Prometheus 格式 | 长期存储与告警 |
| Grafana | 可视化 | 构建监控大盘与告警面板 | 可视化展示与运维看板 |
| Micrometer + Spring Boot Actuator | 应用指标 | 暴露 /actuator/prometheus 端点 | Spring Boot 应用快速接入 |
| SkyWalking | APM/分布式追踪 | 调用链追踪、性能剖析 | 微服务链路与性能瓶颈 |
| MyPerf4J | APM | 高性能、低开销的 Ja va 性能监控 | 生产环境低侵入监控 |
| New Relic / AppDynamics | 商业 APM | 响应时间、吞吐量、错误率等全链路 | 企业级可观测性 |
| dstat / nmon | 系统监控 | CPU、内存、磁盘、网络资源监控 | 关联瓶颈定位(系统层) |
| crontab + 脚本 | 运维自动化 | 存活检测、异常重启/告警 | 稳定性保障与自愈 |
快速上手步骤
说实话,工具再多,关键还在于怎么用。下面这几步,基本覆盖了从快速诊断到长期观测的常用路径,适合大多数 CentOS + Ja va 的场景。
- 定位进程:用
jps -l拿到目标 PID,后续所有操作都靠它。 - 观察 GC 与内存:运行
jstat -gcutil(每 1 秒一次,共 10 次),重点关注 S0U、S1U、EC、EU、OC、OU、MC、MU 这些列,以及 YGC、YGCT、FGC、FGCT、GCT。1000 10 - 线程与死锁:用
jstack抓线程栈,找出 BLOCKED 或 WAITING 状态的线程,分析锁竞争。 - 内存泄漏定位:用
jmap -dump:live,format=b,file=heap.hprof生成堆转储,再用 Eclipse MAT 分析。 - 远程可视化:启用 JMX(配置示例见下节),通过 JConsole 或 VisualVM 远程连接,查看内存、线程、类、CPU 等。
- 指标化与告警:部署 JMX Exporter 暴露 JVM 指标,Prometheus 拉取并存储,Grafana 配置大盘与告警规则。
- Spring Boot 应用:引入 Micrometer 与 Actuator,暴露
/actuator/prometheus端点,由 Prometheus 采集、Grafana 展示。 - 分布式追踪:在微服务中接入 SkyWalking,获取调用链与性能剖析数据。
关键配置示例
配置这块,直接给几个常用的例子,拿过去就能用。
- 启用 JMX(远程)
在启动参数中加入:
ja va -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar yourapp.jar
注意:生产环境务必开启认证与 SSL,并限制来源 IP。
- Prometheus 抓取 Spring Boot 应用
在 prometheus.yml 中添加作业:
scrape_configs:
- job_name: 'ja va-app'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:8080']
应用侧需要引入 Micrometer 依赖并启用 Actuator 的 prometheus 端点。
- 常用 jstat 命令
jstat -gcutil ,每 1 秒采样一次,共 10 次。这一步最常用,用来观察 GC 与内存分区的使用变化。
告警与可视化实践
工具链搭起来了,接下来就是怎么用好它。下面这套实践可以形成从指标到链路再到系统的闭环观测与告警体系。
- 指标与面板:以 Prometheus 作为时序存储,围绕 JVM(内存、GC、线程)、应用(QPS、延迟、错误)、系统(CPU、内存、IO、网络)建立指标与 Grafana 面板,设置阈值告警。比如 FGC 频繁、线程池满、HTTP 5xx 激增,这些都需要第一时间响应。
- 链路追踪:在微服务架构中引入 SkyWalking,把调用链、慢调用、异常与业务拓扑纳入统一观测。跨服务瓶颈往往需要通过链路才能定位。
- 系统层关联:使用
dstat或nmon观察 CPU steal、磁盘 await、网络丢包等系统指标。很多时候性能问题并不在 JVM 内部,而是系统层资源不足导致的。 - 稳定性保障:通过
crontab + 脚本做进程存活检测与异常重启/告警,作为平台告警的补充防线。关键时刻,靠它兜底。
作者最新文章
思源笔记
2026-09-16 17:42
在线PDF转TXT操作步骤与乱码排查指南
2026-09-04 13:02
PDF加水印后如何检查显示效果?在线工具操作步骤与避坑指南
2026-09-03 13:02
Xshell保持连接不断开及会话文件本地存储路径详解
2026-09-03 06:02
两个PDF怎么合并成一个?在线合并后怎么检查顺序?
2026-09-02 20:00
上一篇:
CentOS中Java性能优化技巧
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































