Weblogic内存溢出及常用参数配置
一、WebLogic内存溢出
最近访问量门户访问量突然增大,总是内存溢出,频繁宕机,调整了很多参数没起作用,偶然发现Weblogic域在不断增大,罪魁祸首竟然是Weblogic的诊断文件,也是造成Weblogic内存溢出的主要原因。当Weblogic启动时就加载了每个Server上的诊断文件,占用了大部分内存分配,用户访问量越大这个文件也随之越大,将他删除后重新启动服务,八个Server竟然也只用了6分钟,部署项目也只需7,8分钟,一直平稳运行,再无内存溢出现象。
该文件地址:
/bea/user_projects/domains/{domain_name}/servers/{Server_name}/data/store/diagnostics/*.DAT
(注:AdminServer下该诊断文件为1M左右正常)
但是该文件还会继续生成增大,我们的域中并没有配置相关启动诊断文件的设置,Bea售后也无法解释,但可以通过尝试增加启动参数(-Dcom.bea.wlw.netui.disableInstrumentation=true
)来控制该诊断文件的增长,在
/bea/user_projects/domains/{domain_name}/bin/startWebLogic.sh中: if [ \ echo \
echo \-Dcom.bea.wlw.netui.disableInstrumentation=true -Dweblogic.Name=${SERVER_NAME}
-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${PROXY_SETTINGS} ${SERVER_CLASS}\
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS}
-Dcom.bea.wlw.netui.disableInstrumentation=true -Dweblogic.Name=${SERVER_NAME}
-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${PROXY_SETTINGS} ${SERVER_CLASS} else
echo \
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS}
-Dcom.bea.wlw.netui.disableInstrumentation=true -Dweblogic.Name=${SERVER_NAME}
-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${PROXY_SETTINGS} ${SERVER_CLASS} >\该参数控制netui的诊断文件的生成。
同时,可以在
/bea/user_projects/domains/{domain_name}/bin/setDomainEnv.sh中设置GC日志的打印参数分析:
MEM_ARGS=”-Xms2048m –Xmx2048m –verbosegclog:gc.log” Export MEM_ARGS
该参数会在/bea/user_projects/domains/{domain_name}/下输出gc.lgo
二、Portal Domain 调整
Domain目录/bin/setDomainEnv中,如下参数:
标志 DOMAIN_PRODUCTION_MODE 生产模式设置 说明 true 该参数决定Domain是否在生产环境下运行,可以在创建Domain时选择运行模式,也可以手工调整这个参数 false 是否自动编译 false 是否启用调试器 False 支持JMS测试工具 False 是否向屏幕输出error日志 False 是否输出Debug日志 False 是否自动启动Pointbase IterativeDevFlag DebugFalg TestConsoleFlag LogErrorsToConsoleFlag verboseLogginFlag PointbaseFlag 三、Weblogic 常用参数配置
序项目 号 1 Domain> Environment> Cluster> 内容 描述 参考值 附图Default 设置集Load 群负载Algorithm: 均衡策略 Round-robin:循环 Weight-based:权重(配置此种策略要针对没各Server配置想用的权重,见2) Random:随机 图一General> Round-robin-affinity/ Weight-based-affinity/ Random-affinity这三个参数针对硬件做前端负载均衡设置 设置 每默认100,设置占100的百分比 个Managed Server的分发权重 2 Domain> Environment> Servers> ManagedServer> Cluster> 3 Domain> Environment> Servers> Server> Logging> Cluster Weight: 图二Stdout 记录日Serverity 志的级Threshold: 别 Error 图三Rotation Type: Minimum File Size 日志滚动的类型 By Size 5000k Limit number of retained 产生新 日志文件大小 限制保 选择 留的日志文件 files 数 4 Domain> Connection Pools> Configuration> Connections 5 Domain> Connection Pools> Configuration> Log Files To 10 Retain:[n] 要保留的日志文件个数 Initial 设置初建议初始容量和最大容量设置成相等值,并要 Capacity: 始容量 考虑并发访问数据库的线程数来调整参数 Maximum Capacity: 最大容量 URL 集群数例如:jdbc:oracle:thin:@ 据库(description= URL设置方法 (address_list=(address=(host=scdb1_vip) (protocol=tcp)(port=1521)) Connections (address=(host=scdb2_vip) (protocol=tcp)(port=1521)) (load_balance=yes) (failover=yes)) (connect_data=(service_name=scdb))) Weblogic.xml中的参数:
集群环境部署参数(集群单机环境都可用):
自动编译检测时间
三、集群项目部署报错及解决
集群环境项目部署,总会出现版本不一致,造成的部署失败或部署非常慢,部署报错信息: Failure occured in the execution of deployment request with ID '116857440499' for task '2'.
Error is: 'weblogic.management.DeploymentException: J2EE:160149Error while processing library references.
Unresolved application library references, defined in weblogic-application.xml: Extension-Name: beehive-controls-1.0, Specification-Version: 1, Implementation-Version: 1.0, exact-match: false,
Extension-Name: weblogic-controls-1.0, Specification-Version: 1, Implementation-Version: 1.0, exact-match: false,
Extension-Name: wls-commonslogging-bridge, Specification-Version: 1, Implementation-Version: 1.0, exact-match: false.'
weblogic.management.DeploymentException: J2EE:160149Error while processing library references.
Unresolved application library references, defined in weblogic-application.xml: Extension-Name: beehive-controls-1.0, Specification-Version: 1, Implementation-Version: 1.0, exact-match: false,
Extension-Name: weblogic-controls-1.0, Specification-Version: 1, Implementation-Version: 1.0, exact-match: false,
Extension-Name: wls-commonslogging-bridge, Specification-Version: 1, Implementation-Version: 1.0, exact-match: false.
...... 解决办法:
将weblogic上所有的类库不仅发不到Cluster中还要同时发布到AdminServer上,改变所有类库的Target,如图