1:jvm的参数
三种参数类型:
标准参数: 固定参数
-help
-version
-X参数:非标准参数
-Xint 会强制JVM执行所有字节码,会降低运行速度,解释模式
-Xcomp JVM在第一次使用会把所有的字节码编译为本地代码,从而带来最大程度的优化,(编译模式)
-Xmixed:上面两者的结合,也是JVM默认的模型
-XX参数(使用最高)
格式:-XX:[±] +代表禁用,
如:-XX:+DisableExplicitGC 表示禁用GC
-XX:newSize (年轻代)
-XX:+UserSerialGC
-Xms与-Xmx分别是设置jvm的堆内存初始大小和最大内存
-Xmx2048M:等价于-XX:MaxHeapSize ,最大堆内存为2G
-Xms512M:等价于-XX:InitialHeapSize,初始化堆内存大小为512M
JVM常用命令:
jStat查看堆内存使用的情况
jstat -class pid 查看class的加载情况
jstat -gc pid 查看GC使用情况,S1,S0,ELDEN年轻代区,OLD老年代
Jmap查看GC详情: (还可以用MAT工具分析)
Jmap -heap pid
将内存使用情况dump到文件
jmap -dump:format=b,file=/tmp.dat(fileName) pid
利用jhat解析上面的二进制文件 : -jhat -port 8888 /tmp.dat
Jstack排查线程死锁问题(将当前服务的线程情况打印到1.txt文件中)
jstack pid >> 1.txt