常用JVM参数配置

跟踪参数,可以用一下两种方式:

-verbose:gc

-xx:PrintGC

-xx:PrintGCDetails

-xloggc:log/gc.log 将gc的日志打印在当前目录的log/gc.log文件下。

-xx:+PrintHeapAtGC 每次gc后都打印堆信息。

-xx:+TraceClassLoading 监控类的加载

-xx:+PrintClassHistogram 按下Ctrl+Break,打印系统中所有的类的使用情况,内存的使用空间,类实例的数量。

-Xmx -Xms   指定最大堆和最小堆 -Xmx20m -Xms5m 最大20m,启动后至少占5m,但5m里不一定存储了5m的数据,可能有空余空间。

-Xmn新生代内存大小绝对值

-XX:NewRatio 新生带和老年代的比值。4表示新生代和老年代=1:4,即年轻代占堆的1/5

-XX:SurvivorRatio设置两个Survivor区和eden的比

-8表示两个Survivor:eden=2:8,即一个Survivor占年轻代的1/10

新生代
     经常被分为 Eden 和 Survivor
老年代
永久代

-XX:+HeapDumpOnOutOfMemoryError 当出现内存溢出是导出堆文件

-XX:+HeapDumpPath 导出OOM的路径

-XX:OnOutOfMemoryError在内存溢出的时候执行一个脚本-XX:OnOutOfMemoryError=d:/a.bat ,可以做邮件发送,报警,重启程序等动作。

官方推荐新生代占堆的3/8,幸存代占新生代的1/10

-XX:PermSize  设置永久区的初始空间

-XX:MaxPermSize  设置永久区的最大空间  永久代存储类

-Xss表示每个线程的栈的大小,要想线程多次参数设置不能大,越大代表每个线程的栈越大,方法调用的深度也更深。

猜你喜欢

转载自peng4602.iteye.com/blog/2366772
今日推荐