在Ubuntu上监控Java性能可使用以下工具和方法:
JDK自带工具
- jps:查看Java进程ID及主类名。
- jstat:实时监控堆内存、垃圾回收等指标,如
jstat -gcutil <pid> 5000 10
(每5秒采样10次)。 - jstack:导出线程堆栈信息,用于分析死锁或线程状态。
- jmap:生成堆转储文件,配合工具分析内存泄漏,如
jmap -dump:format=b,file=heap.hprof <pid>
。 - jconsole:图形化监控JVM内存、CPU、线程等指标。
- VisualVM:功能更全面,支持内存分析、线程监控及性能调优。
- Java Flight Recorder (JFR):记录运行时数据,需配合JMC分析(需解锁商业功能)。
第三方工具
- Prometheus + Grafana:通过JMX Exporter采集JVM指标,实现分布式监控与可视化。
- Zabbix:企业级监控方案,支持Java进程状态监控及告警。
- JProfiler:商业级性能分析工具,提供CPU、内存、线程深度分析。
系统级命令
- top/htop:实时查看CPU、内存占用,结合
grep
筛选Java进程。 - ps:配合
grep
获取Java进程详情,如ps -ef | grep java
。
脚本监控
可编写Shell脚本定期采集指标(如CPU使用率),超过阈值时发送告警邮件。
以上工具可根据需求选择,轻量级场景可用JDK自带工具,复杂场景推荐Prometheus+Grafana或JProfiler。