java 常用命令工具

时间:2023-02-25 08:50:06

1. jmap

(1)分析堆信息

jmap -heap java_pid

(2) 导出 java进程 5460 的堆内容 到文件 heap.map ,然后使用 jhat 分析

jmap -dump:live,file=heap.map 5460

jhat heap.map 

(3)打印等待回收的对象信息

jmap -finalizerinfo java_pid

(4) 打印永久区状态

jmap -permstat java_pid

2. jinfo

jinfo 打印指定java进程 、核心文件、远程服务的配置信息。配置信息包括Java系统属性和Java 虚拟机命令行参数;如果给定进程运行在64位机器上,你可能需要指定-J-d64 选项。

说明:这个功能在未来JDK中可能不可用或不被支持(java8 及 更高版本)

无选项 :打印 命令行参数和java 系统属性键值对

-flag name 打印指定name 的命令行参数

-flag [+-]name 启用或禁用给定的命令行参数

-flag name=value 设定命令行参数到指定值

-flags 打印传递给虚拟机的命令参数

-sysprops 打印java 系统属性

-h 打印帮助信息

 在jdk1.7.0_09测试之后,仅 PermSize MaxPermSize 这两个参数支持 jinfo -flag name pid 输出

(1)打印参数值

$ jinfo -flag PermSize 5460
-XX:PermSize=268435456

(2)打印系统属性

jinfo -sysprops 5460

 3. jstat

参考链接 docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html#class_option

(1)内存模型使用率及GC次数和用时/百分比

jstat -gcutil java_pid

java 常用命令工具

S1使用率/S2使用率/初生代使用率/老年代使用率/永久区使用率/新生代GC次数/新生代GC用时s/FullGC次数/FullGC用时s/GC总共用时

 (2) 打印类装载信息

jstat -class java_pid

(3) 即时编译信息

jstat -compiler java_pid

(4)内存模型使用率及GC次数和用时/ kb

java 常用命令工具

(5)VM中新生代 幸存代 初生代 年代永久区的最小空间 最大空间 以及当前空间

jstat -gccapacity java_pid | column -t

java 常用命令工具

(6)新生代堆的用量

jstat -gcnew java_pid

java 常用命令工具

(7)年轻代对象的信息及其占用量

jstat -gcnewcapacity <pid>

(8)old代对象的信息

jstat -gcold <pid>

(9)old代对象的信息及其占用量

jstat -gcoldcapacity <pid> 

(10)perm类的信息及其占用量

jstat -gcpermcapacity<pid>

(11)当前VM执行编译的信息

jstat -printcompilation <pid>