2024年6月12日发(作者:)

优化WebLogic

一、为WebLogic启动设置Java参数

垃圾收集(GC)是指JVM释放Java堆中不再使用的对象所占用的内存的过程,而Java堆(Heap)是

指Java应用程序对象生存的空间。堆大小决定了GC的频度和时间。堆越大,GC频度低,速度慢。

堆越小,GC频度高,速度快。所以GC和堆大小是一组矛盾。为了获取理想的Heap堆大小,需要使

用-verbosegc参数(Sun jdk: -Xloggc:)以打开详细的GC输出。分析GC的频度和时间,结

合应用最大负载所需内存情况,得出堆的大小。

通常情况下,我们建议使用可用内存(除操作系统和其他应用程序占用之外的内存)70-80%,为避

免堆大小调整引起的开销,设置内存堆的最小值等于最大值即:-Xms=-Xmx。而为了防止内存溢出,

建议在生产环境堆大小至少为256M(Platform至少512M),实际环境中512M~1G左右性能最

佳,2G以上是不可取的,在调整内存时可能需要调整核心参数进程的允许最大内存数。对于sun

和hp的jvm,永久域太小(默认4M)也可能造成内存溢出,应增加参-XX:MaxPermSize=128m。建

议设置临时域-Xmn的大小为-Xmx的1/4~1/3, SurvivorRatio为8

堆栈内存优化,修改配置文件:

WL_HOME=C:beaweblogic81 "%WL_HOME%"

:bea #如果采用的上bea的JDK

# JVM Heap(堆内存)最小尺寸为96M,最大尺寸为256M

set MEM_ARGS=-Xms96m -Xmx256m

:sun #如果采用的是sun的JDK

# JVM Heap(堆内存)最小尺寸为32M,最大尺寸为200M

#公共变量对象的内存限制: PermSize:最小尺寸, MaxPermSize :最大允许分配尺寸

set MEM_ARGS=-Xms32m -Xmx200m -XX:MaxPermSize=128m

监视堆栈使用情况:

下载JRockit JDK,该JDK已经自带了JRockit Mission Control工具,目前好像还没有单

独下载JRockit Mission Control的地方,于JRockit JDK进行了绑定下载;

在C:beajrockit81sp5_142_08console目录里面运行:

C:beajrockit81sp5_142_08binjava –Xmanagement -jar

如何监控weblogic呢?

修改weblogic启动脚本,在里面加入-Xmanagement启动参数:

%JAVA_HOME%binjava

-Xmanagement

%JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%

-=%

SERVER_NAME%

-="%

WL_HOME%"

-tionModeEnabled=%PRODUCTION_MODE%

二、设置与性能有关的配置参数

在一个WebLogic域中,配置文件()位于与管理服务器通信的机器里,提供

WebLogic MBean的长期存储。管理服务器作为连接的中心点,为服务实例与系统管理工具

提供服务。域也可以包括其他的WebLogic实例,称之为从服务,主要为应用程序提供服务。

当启动管理服务器时,首先读域配置文件,然后跳过建立在配置文件中管理MBean 默认的

属性值,每一次用系统管理工具(不管是命令行界面还是管理控制台)改变一个属性值,它

都会被存到相应的管理MBean,并且写进配置文件。

1.下表列出了影响服务器性能的参数。

名称 参数 位置 作用

高速缓存

max-beans-in-cache

实体bean缓存空

间的大小,如果缓

存的空间太小,有

些bean就被滞留

在数据库中,下次

调用时就必须重

新从数据库装载

为得到高性能的

吞吐量,把Java堆

的最小值与最大

值设为相等。

"%JAVA_HOME%binjava"

-hotspot -Xms512m /

-Xmx512m

-classpath %CLASSPATH%

-

e控制台中的参数

名称 类型 位置 值

NativeIOEnable

d

SocketReaders

server

mydomain->Servers->myserver->Configu

ration->Tuning->“Enable Native IO”

server—>configuration->tuning

TRUE,表示该

Server使用本地

I/O

设置在执行线程中

专用做Socket

Readers的百分比

最大打开Socket数

堵塞线程时间,超

过这个时间没有返

回的执行线程,系

统将认为是堵塞线

如果weblogic认为

某个队列中的所有

的线程全部堵塞的

话,weblogic将会

增加执行线程的数

Maximum Open

Sockets

Stuck Thread

MaxTime