目录
2.1、jmap -heap (pid)18096? ? 监控的jvm的?
2.2、堆内存查看,linux系统:java -XX:+PrintFlagsFinal -version | grep HeapSize
?2.3、堆内存查看,windows系统:java -XX:+PrintFlagsFinal -version | findstr HeapSize
3.1、dump可以是内存溢出时让其自动生成,或者手工直接导出
参考地址:JVM参数设置_徒步凉城-Jasper的博客-CSDN博客_jvm 参数
jvm 堆内存 栈内存 大小设置 查看堆大小_alinshen的博客-CSDN博客_jvm 查看栈大小
通过jps查看java进程
1、开启垃圾回收日志
启动java应用时,可以加以下参数来开启jvm垃圾回收日志。
-XX:+PrintGC:打印最基本的回收信息
-XX:+PrintGCDetails:可以打印详细GC信息至控制台
-XX:+PrintGCDateStamps 可以记录GC发生的详细时间
2、jvm命令
2.1、jmap -heap (pid)18096 监控的jvm的
2.2、堆内存查看,linux系统:java -XX:+PrintFlagsFinal -version | grep HeapSize
2.3、堆内存查看,windows系统:java -XX:+PrintFlagsFinal -version | findstr HeapSize
2.4、查看某进程的JVM情况
jstat -gc 51972(PID) 5000(每隔n毫秒打印一次)
其中51972是进程号,5000为刷新时间。
对应数据项的含义:
- S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
- S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
- S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
- S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
- EC:年轻代中Eden(伊甸园)的容量 (字节)
- EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
- OC:Old代的容量 (字节)
- OU:Old代目前已使用空间 (字节)
- YGC:从应用程序启动到采样时年轻代中gc次数
- YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
- FGC:从应用程序启动到采样时old代(全gc)gc次数
- FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
- GCT:从应用程序启动到采样时gc用的总时间(s)
2.5、jvm 垃圾收集器查看命令
java -XX:+PrintCommandLineFlags -version
2.6、jps -v :显示运行项目jvm的参数信息
列出当前机器上正在运行的虚拟机进程
-p :仅仅显示VM 标示,不显示jar,class, main参数等信息.
-m:输出主函数传入的参数. 下的hello 就是在执行程序时从命令行输入的参数
-l: 输出应用程序主类完整package名称或jar完整名称.
-v: 列出jvm参数, -Xms20m -Xmx50m是启动程序指定的jvm参数
2.7、查看默认使用的垃圾回收器
java -XX:+PrintCommandLineFlags -version
windows: java -XX:+PrintFlagsFinal -version |FINDSTR /i “:”
Linux: java -XX:+PrintFlagsFinal -version | grep :
2.8、jstat
参考:jstat命令查看jvm的GC情况 (以Linux为例)_ITPUB博客
是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。
假设需要每250毫秒查询一次进程2764垃圾收集状况,一共查询20次,那命令应当是:
jstat-gc 2764 250 20
常用参数:
-class (类加载器)
-compiler (JIT)
-gc (GC堆状态)
-gccapacity (各区大小)
- S0C:第一个幸存区的大小
- S1C:第二个幸存区的大小
- S0U:第一个幸存区的使用大小
- S1U:第二个幸存区的使用大小
- EC:伊甸园区的大小
- EU:伊甸园区的使用大小
- OC:老年代大小
- OU:老年代使用大小
- MC:方法区大小
- MU:方法区使用大小
- CCSC:压缩类空间大小
- CCSU:压缩类空间使用大小
- YGC:年轻代垃圾回收次数
- YGCT:年轻代垃圾回收消耗时间
- FGC:老年代垃圾回收次数
- FGCT:老年代垃圾回收消耗时间
- GCT:垃圾回收消耗总时间
-gccause (最近一次GC统计和原因)
-gcnew (新区统计)
-gcnewcapacity (新区大小)
-gcold (老区统计)
-gcoldcapacity (老区大小)
-gcpermcapacity (永久区大小)
-gcutil (GC统计汇总)
-printcompilation (HotSpot编译统计)
3、jvm堆内存溢出时,生成堆内存日志
3.1、dump可以是内存溢出时让其自动生成,或者手工直接导出
配置jvm参数:-XX:+HeapDumpOnOutOfMemoryError - XX:HeapDumpPath=/home/biapp/m.hprof
手工直接导,PID为进程号
jmap -dump:live,format=b,file=d:aapp.hprof PID
3.2、开启内存溢出
XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/biapp/m.hprof