JVM常用参数

227 阅读2分钟
-XX:+PrintGCDetails : 打印gc详情
-XX:MetaspaceSize=2m -XX:MaxMetaspaceSize=5m -XX:+PrintGCDetails
public class CglibBeanTest {
    public static void main(String[] args) {
        for (int i = 0; i < 100000; i++) {
            MyMethodInterceptor.getProxy();
        }
    }
}
Heap
 PSYoungGen      total 185344K, used 7393K [0x000000076ab00000, 0x0000000776400000, 0x00000007c0000000)
  eden space 184832K, 4% used [0x000000076ab00000,0x000000076b2386a8,0x0000000775f80000)
  from space 512K, 0% used [0x0000000775f80000,0x0000000775f80000,0x0000000776000000)
  to   space 512K, 0% used [0x0000000776380000,0x0000000776380000,0x0000000776400000)
 ParOldGen       total 2796544K, used 764K [0x00000006c0000000, 0x000000076ab00000, 0x000000076ab00000)
  object space 2796544K, 0% used [0x00000006c0000000,0x00000006c00bf178,0x000000076ab00000)
 Metaspace       used 3906K, capacity 5016K, committed 5120K, reserved 1056768K
  class space    used 425K, capacity 456K, committed 512K, reserved 1048576K
Exception in thread "main" java.lang.ExceptionInInitializerError
	at jvm.cglibBean.MyMethodInterceptor.getProxy(MyMethodInterceptor.java:19)
	at jvm.cglibBean.CglibBeanTest.main(CglibBeanTest.java:10)
Caused by: java.lang.IllegalStateException: Unable to load cache item
	at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:79)
	at net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
	at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:119)
	at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:294)
	at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221)
	at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174)
	at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153)
	at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:73)
	... 2 more
Caused by: java.lang.OutOfMemoryError: Metaspace

设置元空间大小,报异常。

-XX:+HeapDumpOnOutOfMemoryError(将OOM时的堆信息导出到文件) 如果系统出现OOM一般情况系统有可能会down掉,但是我们排查问题时需要场景重现是比较困难的,所以当我们输出了OOM的异常时,就可以直接查看,找出导致OOM的原因

-XX:+HeapDumpPath=XXXX(导出OOM堆信息文件的路径) -Xss600k