java jdk命令,我们最熟悉的就是java、javac,其实还有很多牛逼的命令在调优JVM中使用,见下图:
接下来,说说几个牛逼的命令
jps命令
用来输出JVM中运行的进程状态信息
命令行参数选项:
-q 不输出类名、Jar名和传入main方法的参数
-m 输出传入main方法的参数
-l 输出main类或Jar的全限名
-v 输出传入JVM的参数
最常用 jps -l
jstat命令
显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据
类装载 jstat -class 1094
扫描二维码关注公众号,回复:
12655687 查看本文章

Loaded:加载class的数量
Bytes:所占用空间大小
Unloaded:未加载数量
Bytes:未加载占用空间
Time:时间
垃圾回收统计 jstat -gc pid
S0C : survivor0区的总容量
S1C : survivor1区的总容量
S0U : survivor0区已使用的容量
S1C : survivor1区已使用的容量
EC : Eden区的总容量
EU : Eden区已使用的容量
OC : Old区的总容量
OU : Old区已使用的容量
MC :方法去大小
MU :方法去已使用大小
YGC : 新生代垃圾回收次数
YGCT : 新生代垃圾回收时间
FGC : 老年代垃圾回收次数
FGCT : 老年代垃圾回收时间
GCT : 垃圾回收总消耗时间
jstat -gcutil pid 已使用空间占总空间的百分比
jstat -gccapacity pid Java堆各区域使用到的最大、最小空间
jmap命令
查看内存使用情况,使用参数:
dump : 生成堆转储快照
finalizerinfo : 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象
heap : 显示Java堆详细信息
histo : 显示堆中对象的统计信息
permstat : to print permanent generation statistics
F : 当-dump没有响应时,强制生成dump快照
用jmap把进程内存使用情况dump到文件中,再用jhat分析查看
jmap -dump:format=b,file=/tmp/dump.dat pid 生成dump.dat文件
jmap -dump:format=b,file=/tmp/dump.dat pid
./jhat -port 9999 /tmp/dump.dat
然后浏览器访问 ip:9999,查看dump