您好,登录后才能下订单哦!
# Linux 中怎么查看 JVM 信息
在 Linux 环境下管理和监控 Java 应用程序时,查看 JVM(Java Virtual Machine)的运行状态、配置参数和性能指标是开发者及运维人员的常见需求。本文将详细介绍多种命令行工具和方法,帮助您全面获取 JVM 的运行信息。
## 1. 使用 `jps` 查看 Java 进程
`jps`(Java Virtual Machine Process Status Tool)是 JDK 自带的工具,用于列出当前系统中所有的 Java 进程及其主类名和进程 ID。
```bash
jps -l
输出示例:
12345 com.example.MainApplication
67890 sun.tools.jps.Jps
常用选项:
- -q
:仅显示进程 ID
- -m
:显示传递给 main 方法的参数
- -v
:显示 JVM 启动参数
jinfo
查看 JVM 配置jinfo
可以实时查看和修改某个 Java 进程的 JVM 参数:
jinfo <pid>
若要查看特定参数(如堆内存配置):
jinfo -flags <pid>
jstat
监控性能指标jstat
提供丰富的 JVM 统计信息,包括类加载、垃圾回收、编译情况等。
查看 GC 统计(每 1 秒刷新一次):
jstat -gcutil <pid> 1000
关键列说明:
- S0
/S1
:Survivor 区使用率
- E
:Eden 区使用率
- O
:老年代使用率
- M
:元空间使用率
- YGC
/FGC
:Young GC/Full GC 次数
jmap
分析内存使用jmap -heap <pid>
jmap -dump:format=b,file=heap.hprof <pid>
jmap -histo:live <pid>
jcmd
综合诊断工具JDK 7+ 提供的全能工具,支持多种诊断操作:
列出所有可用命令:
jcmd <pid> help
查看 JVM 系统属性:
jcmd <pid> VM.system_properties
生成线程转储(替代 jstack
):
jcmd <pid> Thread.print
jmc
提供实时监控、飞行记录器(Flight Recorder)和堆分析功能。
jvisualvm
支持 CPU/内存采样、线程分析、MBean 查看等功能。
在启动应用时添加 JMX 参数:
java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-jar app.jar
使用 jconsole
连接:
jconsole <host>:<port>
ps aux | grep java | grep -v grep | awk '{print $2}' | xargs -I {} sh -c 'echo "PID: {}"; jinfo -flags {} | grep Xmx'
watch -n 1 "jstat -gc <pid> | awk '{print \$12,\$13}'"
工具 | 主要用途 | 适用场景 |
---|---|---|
jps |
快速定位 Java 进程 | 进程管理 |
jstat |
实时性能监控 | GC 调优 |
jmap |
内存分析 | 内存泄漏调查 |
jcmd |
综合诊断 | JDK 7+ 环境全面分析 |
JMX | 远程监控 | 生产环境监控 |
掌握这些工具的组合使用,可以高效诊断 JVM 性能问题。建议在日常开发中积累常用命令,形成自己的排查工具箱。 “`
注:实际使用时请将 <pid>
替换为实际的 Java 进程 ID。所有工具均需在 JDK 环境下运行(非 JRE)。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。