在服务器端开启Headless模式
server
开启JVM Server模式
Xms5g Xmx5g
设置堆的初始值和最大值
Xmn3g
设置年轻代堆大小
XX:PermSize=256M XX:MaxPermSize=512M
设置永久代大小
XX:+UseConcMarkSweepGC
使用CMS垃圾收集器
XX:CMSInitiatingOccupancyFraction=65
触发CMS收集的内存阀值
XX:+UseParNewGC
设置年轻代为多线程垃圾收集器
XX:+PrintGCDetails
打印详细的GC信息
XX:+PrintHeapAtGC
进行GC的前后打印出堆的信息
XX:+PrintGCDateStamps
输出GC的时间戳
Xloggc:/bankapp/tomcat/logs/gc.log
GC日志的存放路径
XX:+HeapDumpOnOutOfMemoryError
发生OOM时产生一个heap dump
XX:HeapDumpPath=/bankapp/tomcat/logs/heapdump
Heap dump文件存放路劲
JAVA_OPTS="-Djava.awt.headless=true-server –Xms5g –Xmx5g–Xmn3g-XX:PermSize=256M-XX:MaxPermSize=512M-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=65-XX:+UseParNewGC-XX:+PrintGCDetails-XX:+PrintHeapAtGC-XX:+PrintGCTimeStamps-Xloggc:/bankapp/tomcat/logs/gc.log-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/bankapp/tomcat/logs/heapdump"
jps-lv 列出所有java进程
第一个数字为pid,后续操作都要用到
第二个为JVM参数和完整的执行类名
jstat–gcutil <pid><interval>
查看java进程的gc情况
以百分比显示每个区域的内存使用情况
参数<interval>表示没多少毫秒刷新一下
jmap–heap <pid> 查看java进程的堆信息
jmap-dump:[live,]format=b,file=<filename><pid>
生成heapdump文件
jmap-histo[:live]<pid>
打印每个class的实例数目,内存占用,类全名信息
可用于强制fullgc