一、JDK自带命令行工具(基础监控)
JDK自带的命令行工具是监控Java应用的基础手段,无需额外安装,适合快速排查问题:
jps(本地)或jps -l(显示主类名)。jstat -gcutil <PID> 5000 10(每5秒刷新一次,共10次,显示GC各区域使用率)。jmap -dump:format=b,file=heapdump.hprof <PID>(需谨慎使用,可能暂停应用)。jstack <PID> > thread_dump.txt(将输出保存到文件便于分析)。jcmd <PID> help(查看所有可用命令)。二、图形化监控工具(直观可视化)
图形化工具更适合日常监控和趋势分析,降低技术门槛:
jconsole(本地进程自动列出,远程需配置JMX)。jvisualvm(本地或远程连接)。三、系统级监控命令(Linux原生)
通过Linux系统命令监控Java应用的资源占用,适合了解应用对系统的影响:
top实时显示进程的CPU、内存占用(按M按内存排序,按P按CPU排序);htop是其增强版,界面更友好(需安装:yum install htop或apt install htop)。ps -ef | grep java(过滤出Java进程)。vmstat 1 5(每秒刷新一次,共5次)。iostat -x 1(显示磁盘读写延迟、吞吐量)。四、第三方监控平台(分布式/长期监控)
适合生产环境的分布式系统,支持长期数据存储、告警和可视化:
-javaagent:/path/to/elastic-apm-agent.jar)。五、日志与性能剖析工具
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log,使用GCViewer或GCEasy工具分析日志。jmap生成堆转储文件,用Eclipse MAT(Memory Analyzer Tool)或VisualVM分析内存中的对象分布(如大对象、内存泄漏点)。-XX:+UnlockCommercialFeatures -XX:+FlightRecorder,用JMC(Java Mission Control)分析记录文件。