我遇到了 GC 花费大量时间但不确定可能是什么原因的情况。这是jstat -gc
命令的输出
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
77440.0 73088.0 22896.4 0.0 1946624.0 222690.4 4194304.0 3638965.1 262144.0 216641.1 1093 11258.452 3 10031.493 21289.944
Full GC 运行了 3 次,完成时间为 100031 秒,即平均 55 分钟,YGC 平均需要 15 秒。
这是应用服务器的启动脚本:
-Xms6144m -Xmx6144m -XX:MaxPermSize=256m -Djava.security.policy=/bea/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -da -Dplatform.home=/bea/wlserver_10.3 -Dwls.home=/bea/wlserver_10.3/server -Dweblogic.home=/bea/wlserver_10.3/server -Dweblogic.management.discover=true -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole=false -Dweblogic.ext.dirs=/bea/patch_wls1036/profiles/default/sysext_manifest_classpath -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Duser.timezone=GMT -Dfile.encoding=UTF-8 -Duser.language=en -Duser.country=US -Dweblogic.wsee.wstx.wsat.deployed=false -XX:+DisableExplicitGC
Operating system is Sun OS 5.1
Java version 1.6.0_41
GC算法默认,即Young Gen设置为PS Scavenge,Old GC设置为PS MarkSweep
这么高的数字可能是什么原因,请告诉我。