Weblogic内存溢出及常用参数配置

   

http://www.360doc.com/content/14/0306/14/16134804_358216319.shtml


一、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中的参数:

集群环境部署参数(集群单机环境都可用):

replicated_if_clustered

true

自动编译检测时间

60

60

三、集群项目部署报错及解决

集群环境项目部署,总会出现版本不一致,造成的部署失败或部署非常慢,部署报错信息:

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,如图

时间: 2024-10-24 10:31:50

Weblogic内存溢出及常用参数配置的相关文章

内存溢出与jvm参数配置

第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出: 那什么样的情况就是堆栈溢出呢?当你看到下面的关键字的时候它就是堆栈溢出了: Java.lang.OutOfMemoryError: ......Javaheap space..... 也就是当你看到heap相关的时候就肯定是堆栈溢出了,此时如果代码没有问题的情况下,适当调整-Xmx和-Xms是可以避免的,不过一定是代码没有问题的前提,为什么会溢出呢,要么代码有问题,要么访问量太多并且每个访问的时间太长或者数据太多,导致数

Production环境中iptables常用参数配置

production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个命令.因为大家的服务器的防火墙都是关闭的,但是如果你的 服务器是有公网IP的话就会面临各种安全的问题呢,所以我建议大家还是开启防火墙,这个命令其实挺有意思的,就是配置起来比较繁琐,但是原理还 是很容易理解的,关于其原理百度上面一大堆,我这就不再废话啦~ 在配置之前,我们需要扫盲一下知识点: 一.ip

JVM内存模型与JVM参数配置

前言:生产服务器内存使用过高预警,为了解决预警,重启了服务器:之后做总结: 事件过程:收到报警之后,查看日志信息,判断和前段时间的业务量并没有什么大的变化:又查看了下内存的使用情况,发现在一点点的上升:后续查看启动参数时,对于启动参数的配置,有一些疑义: 因此,对JVM内存模型与JVM参数配置进行一下记录: JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 堆内存 方法区 栈内存 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为新生代和老年代,新生代中还可以

weblogic 内存溢出解决 java.lang.OutOfMemoryError: PermGen space

解决办法: 1.在idea中,运行时给weblogic server中 VM options 配置增加内存的参数:-server -XX:PermSize=1024m -XX:MaxPermSize=1024m 如下图: 2.调整PermSize 的大小为如下后,再次开启正常.这个方法一般需要重启电脑,否则会显示端口被占用. 修改DOMAIN_HOME/bin/setDomainEnv.sh 中的 MaxPermSize值为1024M (根据实际需要调整) MEM_PERM_SIZE_64BIT

JVM常用参数配置

Trace跟踪参数 -verbose:gc -XX:+printGC 打印GC的简要信息 -XX:+PrintGCDetails 打印GC详细信息 -XX:+PrintGCTimeStamps 打印CG发生的时间戳 -Xloggc:log/gc.log 指定GC log的位置,以文件输出 XX:+TraceClassLoading 监控类的加载 -XX:+PrintClassHistogram 按下Ctrl+Break后,打印类的信息 堆的分配参数 -Xmx –Xms  指定最大堆和最小堆 -X

logback 常用参数配置详解

logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的组件. <appender>有两个必要属性name和class.name指定appender名称,class指定appender的全限定名. 1.ConsoleAppender: 把日志添加到控制台,有以下子节点: <encoder>:对日志进行格式化.(具体参数稍后讲解 ) &

JVM CMS 常用参数配置(修订)

-XX:+UseConcMarkSweepGC 该标志首先是激活CMS收集器.默认HotSpot JVM使用的是并行收集器. -XX:UseParNewGC 当使用CMS收集器时,该标志激活年轻代使用多线程并行执行垃圾回收.这令人很惊讶,我们不能简单在并行收集器中重用-XX:UserParNewGC标志,因为概念上年轻代用的算法是一样的.然而,对于CMS收集器,年轻代GC算法和老年代GC算法是不同的,因此年轻代GC有两种不同的实现,并且是两个不同的标志.注意最新的JVM版本,当使用-XX:+Us

深入Nginx之《常用参数配置技巧》

常见参配置实战技巧 下面会讲解实战中应该怎么配置更为合理. 1.user 默认是nobody,如果使用nobody,Nginx在运行过程中会出现很多操作没有权限,比如写硬盘.一般都是用低于root级别的用户,比如www,并且可以在linux下设置www禁止ssh登录服务器,提高安全性: 2.worker_processes 代表Nginx worker的进程数,一般情况下建议和机器的核数相同,也可以配置 worker_processes auto ; (Nginx1.2.5版本添加的) 自动根据

hive常用参数配置设置

hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) true hive.exec.mode.local.auto.inputbytes.max 如果 hive.exec.mode.local.auto 为 true,当输入文件大小小于此阈值时可以自动在本地模式运行,默认是 128兆. 134217728L hive.exec.mode.local.auto.tasks.max 如果 hive.exec.mode.