一、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 [ "${WLS_REDIRECT_LOG}" = "" ] ; then
echo "Starting WLS with line:"
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}"
${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 "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}"
${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} >"${WLS_REDIRECT_LOG}" 2>&1
该参数控制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时选择运行模式,也可以手工调整这个参数
|
IterativeDevFlag
|
false
|
是否自动编译
|
DebugFalg
|
false
|
是否启用调试器
|
TestConsoleFlag
|
False
|
支持JMS测试工具
|
LogErrorsToConsoleFlag
|
False
|
是否向屏幕输出error日志
|
verboseLogginFlag
|
False
|
是否输出Debug日志
|
PointbaseFlag
|
False
|
是否自动启动Pointbase
|
三、Weblogic 常用参数配置
序号
|
项目
|
内容
|
描述
|
参考值
|
附图
|
1
|
Domain>
Environment>
Cluster>
General>
|
Default Load Algorithm:
|
设置集群负载均衡策略
|
Round-robin:循环
Weight-based:权重(配置此种策略要针对没各Server配置想用的权重,见2)
Random:随机
Round-robin-affinity/
Weight-based-affinity/
Random-affinity这三个参数针对硬件做前端负载均衡设置
|
图一
|
2
|
Domain>
Environment>
Servers>
ManagedServer>
Cluster>
|
Cluster Weight:
|
设置 每个Managed Server的分发权重
|
默认100,设置占100的百分比
|
图二
|
3
|
Domain>
Environment>
Servers>
Server>
Logging>
|
Stdout Serverity Threshold:
|
记录日志的级别
|
Error
|
图三
|
|
|
Rotation Type:
Minimum File Size
|
日志滚动的类型
产生新日志文件大小
|
By Size
5000k
|
|
|
|
Limit number of retained files
Log Files To Retain:[n]
|
限制保留的日志文件数
要保留的日志文件个数
|
选择
10
|
|
4
|
Domain>
Connection Pools>
Configuration>
Connections
|
Initial Capacity:
Maximum Capacity:
|
设置初始容量
最大容量
|
建议初始容量和最大容量设置成相等值,并要考虑并发访问数据库的线程数来调整参数
|
|
5
|
Domain>
Connection Pools>
Configuration>
Connections
|
URL
|
集群数据库URL设置方法
|
例如:jdbc:oracle:thin:@
(description=
(address_list=(address=(host=scdb1_vip)
(protocol=tcp)(port=1521))
(address=(host=scdb2_vip)
(protocol=tcp)(port=1521))
(load_balance=yes)
(failover=yes))
(connect_data=(service_name=scdb)))
|
|
Weblogic.xml中的参数:
集群环境部署参数(集群单机环境都可用):
<wls:session-descriptor>
<wls:persistent-store-type>replicated_if_clustered</wls:persistent-store-type>
<wls:sharing-enabled>true</wls:sharing-enabled>
</wls:session-descriptor>
自动编译检测时间
<wls:jsp-descriptor>
<wls:page-check-seconds>60</wls:page-check-seconds>
</wls:jsp-descriptor>
<wls:container-descriptor>
<wls:servlet-reload-check-secs>60</wls:servlet-reload-check-secs>
</wls:container-descriptor>
三、集群项目部署报错及解决
集群环境项目部署,总会出现版本不一致,造成的部署失败或部署非常慢,部署报错信息:
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,如图
分享到:
相关推荐
Weblogic内存溢出优化设置,如果操作系统不支持中文,应首先使操作系统支持中文.
WebLogic常用参数配置,涉及到常用参数配置以及常见问题,附带OSB的部分配置
应用服务器Weblogic内存大小配置,调优
java.lang.OutOfMemoryError: PermGen space,OutOfMemoryError是内存溢出1、weblogic域的bin目录
Weblogic实用教程及常用技巧集锦,
WEBLOGIC应用及常用配置说明
一、Weblogic服务程序设置: 1、设置JDK内存: 2、设置线程数: 3、Weblogic数据库连接池连接数设置: 4、Weblogic的服务设置[配置\优化]:
weblogic内存占用过大调优方案简介
Weblogic8控制台各种常用配置
Weblogic实用教程及常用技巧集锦.doc
JVM内存的调优 1. Heap设定与垃圾回收Java Heap分为3个区,Young,Old和Permanent。Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象,本文不讨论该区。JVM的Heap分配...
weblogic1036+db2数据源配置
排查weblogic内存不足,此文档为本人根据日常工作总结所得
Linux 下,weblogic10.3.6版本,集群的安装配置及调试
weblogic11g多机集群配置
weblogic调优memory内存不足与内存泄漏问题
weblogic安装 集群配置 数据源配置