JVM 命令行工具
常用JDK命令行工具在JDK安装目录的bin下,
- jps
- jstack
- jstat
- jinfo
- jmap
- jhat
jps 查看所有的Java进程
命令 | 作用 |
---|---|
jps -q | 查看当前服务器上所有的Java进程 |
jps -l | 与上述操作类似,同时显示启动类名 |
jps -v | 查看对应进程的jvm参数 |
jps -m | 查看对应进程启动时,传给main函数的参数 |
- jps -l
- jps -v
jstat 监视虚拟机各种运行状态信息
如查询类加载信息,JIT信息,内存使用,gc信息
格式如下,
1 | jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] |
🐖:
jstat -gcnew -h3 7568 1000 9
表示 每隔1000ms,查看进程7568的新生代信息,共查看9次,每3行打印一次头部(标题)
jinfo 实时查看和调整虚拟机各项参数
jinfo vmid | 输出jvm进程的全部参数和系统属性 |
jinfo -flag name vmid | 查看对应JVM参数的具体值 |
jinfo -flag [+|-]name vmid | 运行状态下,动态开启关闭布尔型JVM参数 |
jinfo -flag name=[value] vmid | 运行状态下,动态设置JVM参数值 |
jmap 生成堆转储快照
生成堆转储快照的三种方式
- jmap
- -XX:+HeapDumpOnOutOfMemoryError
- linux下 kill -3 发送进程退出信号,也可存储dump信息
使用:
1 | jmap -dump:format=b,file=path vmid |
🐖:jmap不仅能生成堆转储快照,还能查询堆和方法区的详细信息,如空间使用率,垃圾回收器等,以及查询finalizer执行队列等
可使用jmap --help
查看常用命令
jmap查看堆内存详细信息,
1 | jmap -heap 7568 |
jstack 生成虚拟机当前时刻的线程快照
1 | jstack vmid |
可视化的分析工具
- JConsole
- VisualVM
🐕 后续补充…