Jvm --- 常用工具
jps:虚拟机进程状况工具
JVM Process Status Tool。
可以列出所有目前正在运行虚拟机的进程。
jps -l
详细参数:
- -q 输出LVMID,省略主类名称
- -m 输出虚拟机进程启动时传递给Main函数的参数
- -l 输出主类的全名,如果进程执行的是jar包,输出jar路径
- -v 输出虚拟机进程启动时 JVM的参数
jstat:虚拟机统计信息监视工具
JVM statistics Monitoring Tool
jstat是用来监视虚拟机各种运行状态信息的命令工具。使用的格式是:
jstat [ option vmid [ interval [ s | ms ] [ count ] ] ]
参数interval和count代表查询的时间间隔和查询次数
注:对于这个vmid在本地是一致的,如果在远程主机上面,这个格式应该是:
[ protocol: ] [ // ] lvmid [ @hostname ] [ : port ] /servername
jinfo:Java配置信息
Configurations Info for Java
jinfo [ options ] pid
jinfo的作用是实时地查看和调整虚拟机的各项参数。
jmap: Java内存映像工具
Memory Map for Java
jmap可以生成堆转储快照(一般是headump或dump文件),查询finallize执行队列、Java堆和永久代的详细信息,比如空间使用率、当前使用哪种收集器等等。
jmap [ options ] vmid
主要参数:
- -dump 生成Java堆转储快照。
- -heap 显示Java堆的详细信息,比如使用了哪种回收器,参数配置,分代状况等等。
- -histo 显示堆中对象的统计信息。
- -permstat 以ClassLoader为统计口径显示永久代内存状态。
- -F 强制生成dump快照
jstack:Java堆栈跟踪工具
Stack Track for Java
该命令用于生成虚拟机当前时刻的线程快照。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合。
命令格式:
jstack [ options ] vmid
选项:
- -F 当正常输出的请求不被响应时,强制线程堆栈
- -l 除了堆栈外,显示关于锁的附加信息
- -m 如果调用到本地方法的话,会显示C/C++的堆栈