2.WLP环境配置
HP Unix 11.31 IA64, 4CPU*2 core, 16G memory
WebLogic Portal 9.2 MP2
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0.14-_25_jul_2008_05_19)
Java HotSpot(TM) Server VM (build 1.5.0.14 jinteg:07.25.08-11:41 IA64, mixed mode)
3.WLP问题解析
3.1 问题描述
WLP配置Novell LDAP服务器为登录服务器,空闲情况下登录速度正常,但在打压力的情况下,WLP登录速度非常慢。
3.2 问题解析
经过一系列的观察,发现每个WebLogic server的servers/<server name>/data/store/diagnostic下产生大量的WLS_DIAGNOSTIC00000*.DAT文件,每个大小2G左右。
经过工程师现场发现,WebLogic Portal的HEAP内存非常高,并且无法释放下来,即使在晚上空闲事情,强制垃圾回收后,HEAP也一直保持75%-85%左右的高占用情况。
即使重启Portal之后,内存也是维持这个高位水平的。
经过工程师的现场排查,若把diagnostic目录下的DAT文件删除,Portal启动后HEAP内存恢复到一个较低的水平,大约20%左右,空闲80%以上。
3.3 分析结果
经过确认,该问题是WebLogic Server的一个已知问题,WebLogic Server会在特殊的情况下生成大量的diagnostic归档文件,并且在启动的时候会加载这些diagonstic归档文件,由于这些文件太大,导致WebLogic Server的HEAP被占用大部分。正常业务运行的时候,由于HEAP不足会导致运行速度非常慢。
3.4 解决办法
-D_Offline_FileDataArchive=true
-Dcom.bea.wlw.netui.disableInstrumentation=true
-Dweblogic.connector.ConnectionPoolProfilingEnabled=false
同时加上-Xverbosegc:file=gc$$.log -XX:+HeapDumpOnCtrlBreak两个参数来辅助检查并确定内存异常使用情况。
经过工程师的实际生产环节验证之后,这个问题得到解决,并且diagonstic的数据文件不再增长。