jstat命令
命令说明
jstat命令查看内存各部分的使用量以及加载类的数量
命令形式
jstat <-option> [-t] [-h<lines>] <pid> [<interval>][count]
jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]
参数说明
-class:运行jvm类加载情况,加载类数量、加载类大小、未加载类数量、未加载类大小、用时
-compiler:运行jvm类编译情况,编译类数量、编译失败类数量、不可用数量、用时、失败类型、失败的方法
-gc:运行jvm内存使用情况, 初生代、幸存代、老年代、方法区、压缩类空间的大小及使用情况,垃圾回收(YGC,FGC)的次数及消耗时间情况
-gccapacity:运行jvm内存配置情况,
-gccause (-gcutil+最后一次gc发生的原因,及现在发生的gc)
-gcmetacapacity(元数据内存配置)
-gcnew(新生代gc统计信息)
-gcnewcapacity(新生代内存分配信息)
-gcold(老年代gc统计信息)
-gcoldcapacity(老年代内存分配信息)
-gcutil(内存回收统计信息)
-printcompilation(jvm编译方法统计)
注:打印gc发生时的一些日志信息,可以在启动项目的时候加入一些参数
-XX:+PrintGC 输出GC的简要信息
-XX:+PrintGCDetails GC的详细信息
-XX:+PrintGCTimeStamps GC的时间信息
-XX:+PrintGCApplicationStoppedTime GC造成的应用暂停的时间
jvm内存配置相关参数说明
-Xms2g:JVM启动初始化堆大小为2g,Xms的默认是物理内存的1/64但小于1G。
-Xmx2g:JVM最大的堆大小为2g,Xmx默认是物理内存的1/4但小于1G;将-Xms和-Xmx的值配置为一样,可以避免每次垃圾回收完成后对JVM堆大小进行重新的调整。
-Xmn512M:堆中的新生代大小为512M
-Xss128K:每个线程的堆栈大小为128K
-XX:PermSize=128M:JVM持久代的初始化大小为128M
-XX:MaxPermSize=128M:JVM持久代的最大大小为128M
-XX:NewRatio=4:JVM堆的新生代和老年代的