weblogic如何添加GC日志及补丁
- 格式:doc
- 大小:40.00 KB
- 文档页数:3
Java –jar –d64 –Xmx4000m aaa.jar
ull GC的gc type就是global,这是stop the world的最耗费时间的回收方式,所以需要通过尽量调整参数来避免。
如果发现不是由AF引起的,而是在开头写着SYS标签,那么就要好好问问开发,有没有使用System.gc()的必要?可以的话使用-Xdisableexplicitgc来禁止(Sun等JDK下为-XX:+DisableExplicitGC)。
以上所说的都是IBM JDK下垃圾回收日志的情况。
在Sun和HP的JDK下情况相似,不过需要使用-XX:PrintHeapAtGC:参数来打印GC前后的详细堆栈信息。
另外我建议加上
-Xloggc:filename或者-Xverbosegclog:file_name(方便用工具分析)输出到特定文件,因为不知为何有时候会输出到native_stderr.log,或者在native_stdout.log中和thread dump 夹杂在一起,不方便分析。
将GC日志输出到文件:不同JDK设置的参数不同,参考JDK官方文档
SUN:-Xloggc:filename(例如:-Xloggc:/home/weblogic/bea/gc$$.vgc)
IBM:-Xverbosegc:file=filename或-Xverbosegclog:filename
HP:-Xverbosegc=filename
IBM JDK
-verbose:gc -Xverbosegclog:<path_GC_log_file_name>
例:
JAVA_OPTIONS="-Xms$3m -Xmx$3m -Xdisableexplicitgc -verbose:gc -Xverbosegclog:logs/$1.gc.log.$$"
export JAVA_OPTIONS
HP JDK
-Xverbosegc[:help]|[0|1][:file=[stdout|stderr|<filename>]] -Xloggc
Sun JDK / BEA Jrockit
-verbose:gc
sun 模板
nohup ./startWebLogic.sh -verbosegc -Xnoagent -Xloggc:./gc.log &
或者:
export USER_MEM_ARGS="-verbosegc -Xnoagent -Xloggc:./gc.log"
nohup ./startWebLogic.sh &
windows环境:D:\bea\user_projects\domains\develop_domain\bin>startManagedWebLogic.cmd MS1 htt
p://localhost:7001 -verbose:gc -Xloggc:d:\gc.log
HP JDK
-verbosegc -Xverbosegc:file=gclog/AdminServer.gc.log
-XX:-PrintGC
默认不启用
开启GC日志打印。
打印格式例如:
[Full GC 131115K->7482K(1015808K), 0.1633180 secs]
该选项可通过com.sun.management.HotSpotDiagnosticMXBean API 和Jconsole 动态启用。
详见/developer/technicalArticles/J2SE/monitoring/#Heap_Dump
-XX:-PrintGCDetails
1.4.0引入,默认不启用
打印GC回收的细节。
打印格式例如:
[Full GC (System) [Tenured: 0K->2394K(466048K), 0.0624140 secs] 30822K->2394K(518464K), [Perm : 10443K->10443K(16384K)], 0.0625410 secs] [Times: user=0.05 sys=0.01, real=0.06 secs] 该选项可通过com.sun.management.HotSpotDiagnosticMXBean API 和Jconsole 动态启用。
详见/developer/technicalArticles/J2SE/monitoring/#Heap_Dump
-XX:-PrintGCTimeStamps
默认不启用
打印GC停顿耗时。
打印格式例如:
2.744: [Full GC (System) 2.744: [Tenured: 0K->2441K(466048K), 0.0598400 secs] 31754K->2441K(518464K), [Perm : 10717K->10717K(16384K)], 0.0599570 secs] [Times: user=0.06 sys=0.00, real=0.06 secs]
在AIX机器上该选项为-verbose:gc -Xverbosegclog:gc.log 可在setDomainEnv里指定"-Xms1024 -Xmx1536 -verbose:gc -Xverbosegclog:gc_$$.log"
根据目前的情况,建议"-Xms1024 -Xmx1536 -verbose:gc -Xverbosegclog:gc_$$.log"(如果操作系统内存允许的话) 先这样设2个简单的参数,在内存溢出这个问题解决了在加上gc策略、新生代与老生代的比例、kCluster和pCluster的参数,其他根据需要再慢慢添加。
你得回忆下这个WebLogic Server是怎么安装上去的,就知道是不是WebLogic Server自带的JDK了,不过这个也不重要。
[quote]JVMDUMP010I Snap dump written to /home/weblogic/bea103/user_projects/domains/alone_domain/Snap.20100424.110622.417982. 0001.trc
JVMDUMP032I JVM requested Heap dump using '/home/weblogic/bea103/user_projects/domains/alone_domain/heapdump.20100424.110622.4 17982.0002.phd' in response to an event[/quote]
J9VM的这个版本内存溢出时自动(不用加参数)生成一个phd格式的heapdump文件,你的没有么?
heapdump文件有点大,急的话到本论坛的群里问问吧。
现在在外地出差,晚上的车回去。
这两天没时间了。
将heapdump文件拷出来,下载一个IBM的JVM内存溢出分析工具看着帮助先慢慢分析着。
[url]/tech/heapanalyzer/download[/url]
[b]打补丁方法:[/b]
CR开头的都可以这样
1.在Weblogic10/common/bin/commEnv.sh脚本中,找到WEBLOGIC_CLASSPATH一行2.在WEBLOGIC_CLASSPATH变量的[b][color=#ff0000]最前面[/color][/b]添加补丁jar包。
Eg: WEBLOGIC_CLASSPATH=/路径/CR370915_1030GA.jar:$ 。
你刚开始说打上那个补丁了,是否是加在setDomainEnv.sh中了?
CLASSPATH="/<Path to patch>/CR370915.jar:${PRE_CLASSPATH}${CLASSPATHSEP}${WEBLOGIC_CLASSPATH}${CLASSPATH SEP}${POST_CLASSPATH}${CLASSPATHSEP}${WLP_POST_CLASSPATH}"
其实这样也可以,只是只对这个域生效,其他的域就无效了。
所以给WebLogic Server打补丁还是要修改最后被调用的那个公共的脚本(commEnv.sh ),有余力的话,仔细看看WebLogic Server的启动流程(主要是脚本调用)。
你把启动时,启动脚本输出的内容贴出来,让大家帮你检查下你打成功没有。
find / -name commEnv.sh
如果你是理解Class Loader工作原理的话,为什么要加在CLASSPATH的最前面你可能就明白了,暂时能使补丁打上就行
WEBLOGIC_CLASSPATH="${PATCH_CLASSPATH}${CLASSPATHSEP}${JAVA_HOME}/lib/tools.jar${CLASSPATHSEP}${WL_HOME}/server/lib/ weblogic_sp.jar${CLASSPATHSEP}${WL_HOME}/server/lib/weblogic.jar${CLASSPATHSEP}${WL_HOME}/server/lib/webservices.jar"
修改为:
WEBLOGIC_CLASSPATH=/home/weblogic/wlspk/8173442_92mp3.jar:"${PATCH_CLASSPATH}${CLASSPATHSEP}${JAVA_HOME}/lib/tools.ja r${CLASSPATHSEP}${WL_HOME}/server/lib/weblogic_sp.jar${CLASSPATHSEP}${WL_HOME}/server/lib/weblogic.jar${CLASSPATHSEP}${W L_HOME}/server/lib/webservices.jar"
IBM Thread and Monitor Dump Analyzer for Java
[url]/tech/jca[/url]
IBM Pattern Modeling and Analysis Tool for Java Garbage Collector
[url]/tech/gcdiag[/url]。