首先在weblogic的自己创建的域下的bin目录下,找到setDomainEnv.cmd,linux下为setDomainEnv.sh,找到set JAVA_OPTIONS=%JAVA_OPTIONS% 后面加上
相关参数信息 -verbose:gc -Xloggc:log\gc.log -XX:+PrintGC。显示参数如下:
PrintGC 在日志中记录GC事件的信息 PrintGCDetails 在日志中记录详细的GC信息 PrintGCTimeStamps 记录GC日志的时间。
当启动weblogic服务后会在当前域的log文件夹生成gc.log,如下:
1.415: [GC 69912K->7994K(253440K), 0.0266991 secs]
2.592: [GC 77946K->12486K(253440K), 0.0375831 secs]
4.132: [GC 82438K->16317K(253440K), 0.0358635 secs]
5.091: [Full GC 70684K->20624K(253440K), 0.1649485 secs]
5.849: [Full GC 58629K->22074K(253504K), 0.1651764 secs]
6.700: [Full GC 57972K->23796K(253504K), 0.1784789 secs]
7.587: [Full GC 62958K->25951K(253504K), 0.2337012 secs]
8.232: [Full GC 65626K->28596K(253504K), 0.2059665 secs]
8.777: [Full GC 50087K->30676K(253504K), 0.2117985 secs]
另外,Java自带的jvisualvm可以监控内存信息。在安装的jdk的bin目录下双击jvisualvm.exe可以打开程序,如下
本地可以看到当前应用程序的信息,可以在工具中加visual gc插件,可以看到当前的gc参数
概述中也可以看到jvm的参数信息,GC的优化主要是将转移到老年代的对象数量降低到最小, 减少full GC的执行时间。所以需要对gc参数进行调整。
jvm主要的参数设置有:
-Xmx<size> 设置jvm最大堆内存的大小
-Xss<size> 设置Java线程堆内存的大小
-Xms<size> 设置jvm初始化堆内存的大小
-Xmn<size> 设置年轻代大小
等等一些参数的设置来达到所需的目的,最大化提升性能。