0 jinfo查看jvm运行参数
jps 查看java进程
jinfo -flags 6219 查看jvm运行参数
jstat -gc 6219 查看垃圾回收统计(
jstat -compiler 6219 查看编译统计)
1 查看内存使用情况
jmap -heap 6219 6219是对应jvm的进程号
2 内存使用情况dump到对应文件中(通过mat工具可以对文件进行分析)
jmap -dump:format=b,file=/tmp/dump.dat 6219
jhat -port 9999 /tmp/dump.dat(也可以用jhat命令查看)
3
jstack
的作用是将正在运行的
jvm
的线程情况进行快照,并且打印出来
jstack 6219
4 使用G1垃圾回收器 (
GC Easy
是一款在线的可视化工具)
4.1 G1垃圾回收器相关参数
-XX:+UseG1GC 使用 G1
垃圾收集器
-XX:MaxGCPauseMillis 设置期望达到的最大GC
停顿时间指标(
JVM
会尽力实现,但不保证达到),默认值是
200
毫秒。
-XX:G1HeapRegionSize=n 设置的 G1
区域的大小。值是
2
的幂,范围是
1 MB
到
32 MB 之间,默认是堆内存的1/2000
。
-XX:ParallelGCThreads=n 设置 STW
工作线程数的值。将
n
的值设置为逻辑处理器的数量。
n
的值与逻辑处理器的数量相同,最多 为 8
。
-XX:ConcGCThreads=n 设置并行标记的线程数。将 n
设置为并行垃圾回收线程数
(ParallelGCThreads)
的
1/4
左右。
-XX:InitiatingHeapOccupancyPercent=n 设置触发标记周期的 Java
堆占用率阈值。默认占用率是整个
Java
堆的
45%
。
4.2使用G1垃圾回收器
#
设置了最大停顿时间
100
毫秒,初始堆内存
128m
,最大堆内存
1024m
JAVA_OPTS
=
"-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -Xms128m -Xmx1024m -XX:+PrintGCDetails
-XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -
Xloggc:../logs/gc.log"