linux怎么查看jvm使用率
linux怎么查看jvm使用率详细介绍
在 Linux 系统中查看 JVM 使用率(如内存、CPU、GC 等),可以通过 JDK 自带工具或系统命令结合使用。以下是常用方法:
1. 使用 jstat(JDK 自带,推荐)
jstat 是 JDK 提供的轻量级工具,用于监控 JVM 统计信息(如内存、GC、类加载等)。
常用命令格式
bash
jstat -选项 Java进程PID 间隔时间ms 采样次数
示例:查看内存与 GC 使用率
bash
jps your_application_name
jstat
输出字段含义(示例):
plaintext
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT0.00 0.00 52.34 23.15 94.56 91.23 123 0.456 2 0.123 0.579
S0/S1:Survivor 区 0/1 的使用率(%)E:Eden 区使用率(%)O:老年代(Old Generation)使用率(%)M:元空间(Metaspace)使用率(%)YGC:年轻代 GC 次数YGCT:年轻代 GC 总耗时(秒)FGC:Full GC 次数FGCT:Full GC 总耗时(秒)GCT:总 GC 耗时(秒)
2. 使用 top 或 htop 查看进程资源占用
top 是系统级监控工具,可查看 Java 进程的 CPU、内存使用率(但无法直接区分 JVM 内部区域)。
操作步骤
- 启动
top后,按P按 CPU 排序,按M按内存排序。 - 找到 Java 进程(PID),查看其
%CPU(CPU 使用率)和%MEM(内存使用率)。
bash
PID
3. 使用 ps 结合 jinfo 查看 JVM 参数
ps 可以获取 Java 进程的启动参数,jinfo 用于查看 JVM 运行时参数(如堆内存配置)。
示例
bash
jinfo PID
jinfo PID
4. 使用 jmap 分析堆内存(谨慎使用)
jmap 用于生成 JVM 堆内存转储快照(.hprof 文件),可结合 jhat 或 MAT(Eclipse Memory Analyzer)分析内存占用细节。
示例
bash
jmap b,fileheap_dump.hprof PID
jmap PID
5. 图形化工具(需远程连接)
若 Linux 有图形界面或通过远程工具(如 X11 转发),可使用以下工具:
- JConsole:JDK 自带的图形化监控工具(
jconsole命令启动)。 - VisualVM:功能更强大的图形化工具(
jvisualvm命令启动),支持实时监控内存、线程、GC 等。
总结
- 实时监控 JVM 内存、GC 优先用
jstat; - 查看进程整体 CPU / 内存用
top或htop; - 分析堆内存细节用
jmap(需谨慎); - 图形化工具适合本地或远程调试。