weblogic服务器优化配置详解 联系客服

发布时间 : 星期四 文章weblogic服务器优化配置详解更新完毕开始阅读

第一章概要

WebLogic 配置文件(config.xml)包含了大量很直观的与性能有关的参数,能通过配置环境与应用程序得到很好的优化。基于系统的需要调整这些参数不仅能改善单个点的性能,而且能提高整个应用程序性能的可衡量性。

试着采用下列WebLogic配置方法,或许能使你的系统达到最佳状态: 一修改运行队列线程数的值。在WebLogic 中队列元素的线程数等于同时占用运行队列的应用程序的数目。当任务加入一个WebLogic 实例,它就被放到执行队列中,然后分配给任务一个线程来运行。线程消耗资源,因此要小心处理这个属性——增加不需要的值,会降低性能。

二,如果可能,使用自带的性能包(NativeIOEnabled=true)。 三,使用特定的应用程序执行队列。

四,使用JDBC连接池时,修改下列属性: 驱动名称:使用小的驱动或者jDriver。 初始容量:设为与最大容量相同的值。 最大容量:其值至少应与线程数相同。

五,把连接池的大小设为与执行队列的线程数相同。 六,设置缓冲。

七,为Servlet和JSP使用多个执行队列。

八,改变JSP默认的Java编译器,javac 比jikes或sj要慢。

第二章优化WebLogic

提要:

为WebLogic启动设置Java参数。 设置与性能有关的配置参数。 调整开发与产品模式默认值。

使用WebLogic“自有的IO”性能包。 优化默认执行队列线程。 优化连接缓存。

如何提高JDBC连接池的性能。 设置Java编译器。

使用WebLogic集群提高性能。 监视WebLogic域。

一、为WebLogic启动设置Java参数

只要启动WebLogic,就必须指定Java参数,简单来说,通过WebLogic.Server域的命令行就可以完成,不过,由于这样启动的过程冗长并且易于出错,BEA 公

司推荐你把这个命令写进脚本里。为了简化这个过程,你可以修改样例脚本里的默认值,样例脚本是提供WebLogic启动服务器的。

如果你用配置向导创建你的域,WebLogic启动脚本(startWebLogic.cmd)放在domain-name目录里。默认情况下,这个目录是

BEA_HOME\%user_projects\\domain\\domain-name,BEA_HOME表示安装路径,domain-name是在配置模板中设置的域名称。

你需要在这个脚本中修改一些默认的Java参数值,使之适合你的应用环境和程序。在这个文件中主要的性能参数是JAVA_HOME和Java堆的大小。

设JAVA_HOME的值为JDK所在的位置,如: set JAVA_HOME=/usr/local/jdk1_06_30

为得到高性能的吞吐量,把Java堆的最小值与最大值设为相等。 一个详细的实例: MEM_ARGS=”-server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -XX:GCTimeRatio=19 -Xnoclassgc -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:log/gc.log” 经验之谈是多看看gc日志堆栈的变化,有问题用jstack,jmap等工具查看哪些地方出了问题,这样可以更快的作出优化。

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

在一个WebLogic域中,配置文件(config.xml)位于与管理服务器通信的机器里,提供WebLogic MBean的长期存储。管理服务器作为连接的中心点,为服务实例与系统管理工具提供服务。域也可以包括其他的WebLogic实例,称之为从服务,主要为应用程序提供服务。

当启动管理服务器是,首先读域配置文件,然后跳过建立在配置文件中管理MBean 默认的属性值,每一次用系统管理工具(不管是命令行界面还是管理控制台)改变一个属性值,它都会被存到相应的管理MBean,并且写进配置文件。

下表列出了config.xml文件中影响服务器性能的参数。 元素属性控制台标签备注

Server NativeIOEnabled Native IO Enabled ExecuteQueue ThreadCount Thread Count ExecuteQueue QueueLength QueueLengthThresholdPercent ThreadsIncrease ThreadsMaximum

ThreadPriority Queue Length Queue Length Threshold Percent (队列长限度百分比)

Threads Increase Threads Maximum Thread Priority

Server StuckThreadMaxTime

StuckThreadTimerInteral Stuck Thread Max Time (堵塞线程的最长时间) Stuck Thread Timer Interval (堵塞线程的时间间隔)

Server ThreadPoolPercentSocketReaders Socket Readers Server AcceptBacklog Accept Backlog (接受缓存数)

JDBCConnectionPool InitialCapacity MaxCapacity Initial Capacity Max Capacity

JDBCConnectionPool StatementCacheSize Statement Cache Size (声明高速缓冲大小)

三、调整开发模式与产品模式默认值

你可以指定域为开发环境或为产品环境。WebLogic会根据你指定的环境类型使用不同的默认值提供不同的服务。

下表列出了两种模式下的默认值 优化参数开发模式产品模式

Execute Queue: ThreadCount 15 threads 25 threads

JDBC Connection Pool: MaxCapacity 15 connections 25 connections

3.1更改运行时模式

在创建了一个域后,按下列步骤可以更改域里所有服务的的运行时模式:

1.为更改运行在一个WebLogic主机上的所有域的运行时模式,用文本编辑器打开WL_HOME\\common\\bin\\commEnv.cmd(Windows) 或者WL_HOME\\common\\bin\\commEnv.sh (UNIX),WL_HOME是安装WebLogic的路径。

为指定的域更改运行时模式,就用文本编辑器打开

domain-name\\StartWebLogic.cmd (Windows) or domain-name\\StartWebLogic.sh (UNIX),domain-name为创建的域的目录。

2.在这个脚本中,更改PRODUCTION_MODE的值,如果你要服务器运行在产品模式,指定其值为TRUE。

3.重启所有的服务器。

3.2两种模式的不同

下表列出了开发模式与产品模式几种关键项的区别: 功用名称开发模式产品模式

SSL 你可以使用WebLogic安全服务提供的验证数字证书。有这些证书,你开发的应用程序会在SSL保护的环境下运行。如果你使用验证数字证书,会收到警告信息。

部署应用程序 WEBLOGIC实例会自动部署和更新位于

domain_name/applications目录下的应用程序(domain_name为域的名称)。不能使用自动部署功能,必须使用WebLogic控制台或者WebLogiceblogic Deployer工具。

Log File Rotation 启动服务器后,服务器自动重命名本地日志文件为

server-name.log.n,为了滞留的session ,只要日志文件的达到500kb,日志文件就会滚转一次。当日志文件达到500kb,就会滚转。

Execute Queues 默认的执行线程为15。 默认的执行线程为25。

JDBC Connection Pool Capacity 默认的容量为15。默认的容量为25。

四、使用WebLogic“自有的IO”性能包

当你使用自有的性能包,测试基准就表明了主要性能的提高。性能包采用最优化的平台及多线程的Socket去提高服务器的性能。例如,本地Socket 读的多线程有自己的执行队列而不需要借用默认的执行队列线程,这样可以让默认执行线程很从容去处理应用程序。

不过,如果你一定要用纯Java socket读在主机上运行,你仍然可以通过配置每个服务器实例和客户机中适当的socket读的线程数量,来提高socket通信的性能。

设置性能包的操作方法:

默认情况下,装载在config.xml中的是自有的性能包。为了验证这个设置,在配置文件中检查NativeIOEnabled属性是否设为“true”(NativeIOEnabled=true)。

你也可以通过管理控制台来验证,步骤如下: 1、启动管理服务器。 2、访问管理控制台。

3、展开左边面板的Servers 节点,显示域服务。 4、点击你要配置的服务实例。

5、选择Configuration->Tuning tab。

6、如果 Enable Native IO复选框没有被选择,选中即可。 7、点击Apply。 8、重启服务器。