option参数 —— gc
新生代相关
SOC是第一个幸存者区的大小(字节)
S1C是第二个幸存者区的大小(字节)
SOU是第一个幸存者区已使用的大小(字节)
S1U是第二个幸存者区已使用的大小(字节)
EC是Eden空间的大小(字节)
EU是Eden空间已使用大小(字节)
老年代相关
OC是老年代的大小(字节)
OU是老年代已使用的大小(字节)
方法区(元空间)相关
MC是方法区的大小
MU是方法区已使用的大小
CCSC是压缩类空间的大小
CCSU是压缩类空间已使用的大小
其他
YGC是指从应用程序启动到采样时young gc次数
YGCT是指从应用程序启动到采样时young gc消耗的时间(秒)
FGC是指从应用程序启动到采样时full gc次数
FGCT是指从应用程序启动到采样时full gc消耗的时间(秒)
GCT是指从应用程序启动到采样时gc的总时间
interval参数
用于指定输出统计数据的周期,单位为毫秒。即:查询间隔
count参数
用于指定查询的总次数
-t参数
可以在输出信息前加上一个Timestamp列,显示程序的运行时间。单位:秒
经验
-h参数
可以在周期性数据输出时,输出多少行数据后输出一个表头信息
jinfo:实时查看和修改JVM配置参数
查看
jinfo -sysprops PID 可以查看由System.getProperties()取得的参数
jinfo -flags PID 查看曾经赋过值的一些参数
jinfo -flag 具体本参数 PID 查看某个java呈的具体参数的值
修改
针对boolean类型 jinfo -flag [+|-]具体参数 PID
针对非boolean类型 jinfo -flag 具参数=具体参数值PID
扩展
java -XX:+PrintFlagslnitial 查看所有JVM参数启动的初始值
java-XX:+PrintFlagsFinal 查看所有JVM参数的最终值
java -XX:+PrintCommandLineFlags 查看那些已经被用户或者JVM设置过的详细的XX参数的名称和值
jmap:导出内存映像文件&内存使用情况
基本语法
-dump
生成java堆转储快照:dump文件
特别的:-dump:live只保存堆中的存活对象
-heap
输出整个堆空间的详细信息,包括GC的使用、堆配置信息,以及内存的使用信息等
-histo
输出堆中对象的统计信息,包括类、实例数量和合计数量
特别的:-histo:live只统计堆中的存活信息
-permstat
以ClassLoader为统计口径输出永久代的内存状态信息
仅linux/solaris平台有效
-finalizerinfo
显示在F-Queue中等待Finalizer线程执行finalize方法的对象
仅linux/solaris平台有效
-F
当虚拟机进程对-dump选项没有任何响应时,可使用此选项强制执行生成dump文件
仅linux/solaris平台有效
-h|help
jmap工具使用的帮助命令
-J
传递参数给jmap启动的jvm
使用1:导出内存映像文件
手动的方式
jmap -dump:format=b,file=
jmap -dump:live,format=b,file=
自动的方式
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=
使用2:显示堆内存相关信息
jmap -heap pid
jmap -histo pid
使用3:其他作用
jmap -permstat pid 查看系统的ClassLoader信息
jmap -finalizerinfo 查看堆积在finalizer队列中的对象
jhat:JDK自带堆分析工具
option参数
-stack false|true 关闭|打开对象分配调用栈跟踪
-refs flase|true 关闭|打开对象引用跟踪
-port port-number 设置jhat HTTP Server 的端口号,默认7000
-exclude exclude-file 执行对象查询时需要排除的数据成员列表文件
-baseline exclude-file 指定一个基准堆转储
-debug int 设置debug级别
-version 启动后显示版本信息就退出
-j
option参数
-F 当正常输出的请求不被响应时,强制输出线程堆栈
-l 除堆栈外,显示关于锁的附加信息
-m 如果调用到本地方法的话,可以显示C/C++的堆栈
-h 帮助操作
jcmd:多功能命令行
jcmd -l 列出所有的JVM进程
jcmd pid help 针对指定的进程,列出支持的所有命令
jcmd pid 具体命令 显示指定进程的指令命令的数据
jstatd:远程主机信息的收集


