`

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

阅读更多

一、WebLogic内存溢出

最近访问量门户访问量突然增大,总是内存溢出,频繁宕机,调整了很多参数没起作用,偶然发现Weblogic域在不断增大,罪魁祸首竟然是Weblogic的诊断文件,也是造成Weblogic内存溢出的主要原因。当Weblogic启动时就加载了每个Server上的诊断文件,占用了大部分内存分配,用户访问量越大这个文件也随之越大,将他删除后重新启动服务,八个Server竟然也只用了6分钟,部署项目也只需78分钟,一直平稳运行,再无内存溢出现象。

该文件地址:/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,如图

分享到:
评论

相关推荐

    eclipse内存溢出处理

    本文将深入解析Eclipse内存溢出的原因、表现形式以及如何通过调整JVM参数来有效解决此问题。 ### 一、内存溢出的基本概念 内存溢出是指程序运行时,申请的内存超过了系统所能分配的最大内存空间,导致程序无法继续...

    常用weblogic运维手册

    通过调整JVM参数,可以有效地避免内存溢出等问题的发生,提升系统的响应速度和处理能力。 #### 三、JVM参数配置详解 在WebLogic Server中,JVM参数通常是在启动脚本中进行配置的。这些脚本文件位于`weblogic11\...

    weblogic参数.txt

    - `-XX:+HeapDumpOnOutOfMemoryError` 表示当发生内存溢出错误时自动生成Heap Dump文件。 #### 四、Windows环境下WebLogic进程信息获取 1. **命令格式**:`wmic PROCESS where (Name='java.exe') get Commandline...

    weblogic调优整理文档

    正确设定这些参数可以避免内存溢出和垃圾回收频繁导致的性能下降。 2. **JVM参数调整**:除了内存设置,JVM的其他参数也需关注,如并发线程数(-XX:ParallelGCThreads)、新生代和老年代的比例(-XX:NewRatio)、对象...

    java基础问题集合

    - **垃圾回收机制**:自动管理内存,回收不再使用的对象所占用的内存空间,避免了程序员手动管理内存可能导致的内存泄漏和内存溢出等问题。 #### JDBC调用数据库的基本步骤 1. 加载数据库驱动。 2. 建立数据库连接...

    2010Java面试精典.doc

    - **垃圾回收机制**:理解GC的工作原理,新生代、老年代、内存溢出等问题。 - **JVM内存模型**:堆内存、栈内存、方法区的结构与功能。 - **性能调优**:如何通过JVM参数进行性能调整。 4. **多线程**: - **...

    超级有影响力霸气的Java面试题大全文档

    比如说内存溢出。不可能指望程序能处理这样的情况。 exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。 19、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 ...

    java面试题

    答:运行时异常时(JVM)java虚拟机在运行过程中发生的问题,比如:内存溢出等问题。这类异常没法要求程序员去一一捕获并抛出,一般异常是Java类库或程序员自己写的代码发生的错误,这类异常可以由我们去一一捕获并...

Global site tag (gtag.js) - Google Analytics