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

试着采取下列WebLogic配置方法,或许能使你的系统达到最佳状态:

一 修正运行行列步队线程数的值。
在WebLogic 中行列步队元素的线程数即是同时占用运行行列步队的运用程序的数目。
当任务加入一个WebLogic 实例,它就被放到实行行列步队中,然后分配给任务一个线程来运行。
线程花费资源,因此要小心处理这个属性——增加不须要的值,会降落性能。

weblogic预编译jsp优化WebLogic 办事器机能参数 Docker

二,如果可能,利用自带的性能包(NativeIOEnabled=true)。

三,利用特定的运用程序实行行列步队。

四,利用JDBC连接池时,修正下列属性:

n 驱动名称:利用小的驱动或者jDriver。

n 初始容量:设为与最大容量相同的值。

n 最大容量:其值至少应与线程数相同。

五,把连接池的大小设为与实行行列步队的线程数相同。

六,设置缓冲。

七,为Servlet和JSP利用多个实行行列步队。

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

优化WebLogic

提要:

n 为WebLogic启动设置Java参数。

n 设置与性能有关的配置参数。

n 调度开拓与产品模式默认值。

n 利用WebLogic“自有的IO”性能包。

n 优化默认实行行列步队线程。

n 优化连接缓存。

n 如何提高JDBC连接池的性能。

n 设置Java编译器。

n 利用WebLogic集群提高性能。

n 监视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堆的大小。

n 设JAVA_HOME的值为JDK所在的位置,如:

set JAVA_HOME=C:\bea\jdk141_03

n 为得到高性能的吞吐量,把Java堆的最小值与最大值设为相等。
如:

\"大众%JAVA_HOME%\bin\java\"大众 -hotspot -Xms512m -Xmx512m -classpath %CLASSPATH% -

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

在一个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, 重启做事器。

五、优化默认实行行列步队线程

默认情形下,一个新的WebLogic实例配置了一个开拓模式实行行列步队,weblogic.kernel.default,它包含15个线程。
其余,WebLogic供应了2个预配置行列步队:

n weblogic.admin.HTTP——只在管理做事器上才有,这个行列步队供与管理掌握台的通信用,你不能再配置它。

n weblogic.admin.RMI——管理做事器和被管理做事器上都有这个行列步队,它是供管理的交通之用,也不能再配置它。

如果你不配置额外的实行行列步队,并且指定运用给这些行列步队,web 运用程序和RMI工具就利用默认的行列步队weblogic.kernel.default。

把稳;如果自带的实行包没有在你的平台上利用,你可能须要调度默认的实行行列步队线程数和担当socket读的线程的百分比,去实现最佳性能。

5.1你该当变动默认的线程数吗?

增加更多的线程到默认的实行行列步队并不虞味着你能处理更多的事情。
纵然增加更多的线程,仍旧被处理器的能力限定。
由于线程花费内存,以是增加线程数属性的值不必要的降落了性能。
一个高的实行线程数导致更多的内存被占用并且增加了高下文转换程序,它也会降落性能。

线程数属性的值与运用程序处理的事情的类型关系密切。
例如,如果你的客户运用程序比较小,通过远程调用处理的事情较多,这样,客户端会花费更多的韶光连接,因此,与能完成大量客户端任务的客户运用程序比较,会须要更多的线程数。

如果你的事情不须要利用超过15个线程(开拓模式默认)或者25个线程(产品模式默认),就不要改变这个属性的值。
常日,如果你的运用程序访问数据库花很永劫光才返回结果,与访问数据库很短韶光就返回的运用程序比较,你会须要更多的实行线程。
从后者来看,用少点的线程数可能提高性能。

5.2须要修正默认线程数的环境

为了给实行行列步队决定一个空想的线程数,当行列步队中所有运用程序都运行在最大负荷的情形下,监视行列步队的吞吐量。
增加线程数,重复负载测试,直到达到最佳的吞吐量。
(在某些情形下,增加线程数将产生足够多的高下文转换程序,使得行列步队中的吞吐量开始减少。

把稳:WebLogic管理掌握台显示的是所有做事器实行行列步队累积的吞吐量。
为了得到这个值,后面将会先容。

下表列出了在WebLogic 域中调度的线程及与CPU数量干系的环境,这些情形也假定WebLogic运行在最大负荷下,并且利用默认的实行行列步队知足所有的线程的要求。
如果你配置了额外的实行行列步队并指派了运用程序到详细的行列步队,就须要依据一个个连接池得到结果。

如果… 结果 该当:

线程数<CPU的数量 线程数太少,如果:

CPU正等着事情,但有事情被完成。

CPU利用率不能达到100%。
增加线程数。

线程数=CPU的数量 理论上空想,但是CPU仍旧低利用。
增加线程数。

线程数(适当的)>CPU的数量 实际中空想,有个适当的高下文转换程序数量和高的CPU利用率。
调度适当的线程数并且比较性能结果。

线程数(较大的)>CPU的数量 过多的高下文转换程序,能导致重大的性能降级。

当你降落线程数时,性能可以增强。
减少线程数,使它即是CPU的数量,然后仅仅增加已经得出的“堵塞”线程的数量。

例如,如果你有4个处理器,它们都同时运行,并涌现堵塞线程,于是,你想要的实行线程便是4+堵塞线程的数

5.3修正默认线程数的步骤

用管理掌握台修正默认实行行列步队线程数如下:

1. 如果管理做事器没有运行,先启动。

2. 访问管理掌握台。

3. 展开左边面板的Servers 节点,显示域做事。

4. 右击做事名称,在弹出菜单中选择View Execute Queues ,就会在右边面板显示有实行行列步队的表用来修正。

把稳:你只能修正默认的实行行列步队或者用户定义的实行行列步队。

5. 在Name列,直接点击默认实行行列步队名称,显示配置标签用来修正实行行列步队数。

6. 填下适当的线程数。

7. 点击Apply,保存刚才的修正。

8. 重启做事器,使新的实行行列步队设置生效。

5.4指派运用程序到实行行列步队

虽然可以配置默认的实行行列步队,为所有的WebLogic运用程序供应最佳的线程数,但是为关键的运用程序配置多个实行行列步队可以供应更多的管理掌握。
通过利用多实行行列步队,你可以担保运用程序有权占用固定的线程数,而不管WebLogic做事器有多大的负荷。

5.5创建实行行列步队

一个实行行列步队代表实行线程的命名集,线程指向一个或多个Servlet、JSP、EJB、RMI工具。
实行行列步队在config.xml文件中描述,作为做事器元素的一部分。
如,在config.xml文件中描述一个有4个线程的行列步队,命名为CriticalAppQueue,如下:

...

< Server

Name=\"大众examplesServer\"大众

ListenPort=\公众7001\"大众

NativeIOEnabled=\"大众true\"大众/>

< ExecuteQueue Name=\公众default\公众

ThreadCount=\"大众15\公众/>

< ExecuteQueue Name=\"大众CriticalAppQueue\公众

ThreadCount=\"大众4\公众/>

...

< /Server>

另一种创建行列步队的方法是通过管理掌握台,配置步骤如下:

1. 启动管理做事器,访问掌握台。

2. 展开左边面板中Servers节点,显示域中要配置的做事。

3. 右击你要增加行列步队的做事实例,从弹出菜单中选择View Execute Queues。

4. 在行列步队配置标签中,点击配置新实行行列步队链接。

5. 在行列步队配置标签中,变动下列属性或接管系统的默认值:

n 线程名称(Name):你可以输入线程名称,如CriticalAppQueue。

n 行列步队长度(Queue Length):常日保留默认值65536,行列步队长度表明了同时发来要求的最大数,65536个要求是个很大的数,纵然达到这个最大数,也是很少见的。

如果达到最大行列步队长度,WebLogic会自动成倍增长行列步队大小,以处理额外的事情。

把稳:超过65536个要求预示行列步队中的线程有问题,不仅仅只是行列步队本身的长度问题,实践表明在行列步队中有堵塞线程或线程数不敷的情形存在。

n 行列步队长限定百分比(Queue Length Threshold Percent):达到行列步队长度百分比(1-99)时,就构成了溢出条件的产生。
实际行列步队大小在限定的百分比之下时才被认为是正常的;在限定百分比之上就会产生溢出。
当涌现溢出,WebLogic日志就会产生一个缺点,并且按线程数增量(Threads Increase)属性的值增加线程数,以帮助减少负载量。

默认的行列步队长限定百分比为90%。
一样平常情形下,应保留90%或其旁边,以应对一些潜在的情形,使得有额外的线程可以去处理一些要求中的非常。
记住,行列步队长度限定百分比不是一定作为自动优化参数――由于正常运作情形下,这个限度从不会被触发。

n 线程数(Tread Count):指派到这个行列步队的线程数。
如果你不须要利用超过15个线程(默认),就不必变动这个属性值。

n 线程数增量(Threads Increase):是指WebLogic探测到有溢出时,增加到实行行列步队的线程数。
当你指定为0(默认),涌现溢出时,WebLogic会把运行良好状态改为“警告”,而且也不会指派额外的线程去减少负荷量。

把稳:如果WebLogic实例的线程数相应了溢出,那么这些额外的线程就会滞留在实行行列步队,直到做事看重启。
监视缺点日志,以判断溢动身生的缘故原由,以便根据须要重配置线程数,防止往后类似情形产生。
不要同时利用线程数增量和行列步队长限定百分比作为自动优化的手段。
如此做常日结果会产生比正常须要还多的线程被指派到实行行列步队,这样高下文转化程序的增多会使做事器遭受很差的性能。

n 最大线程数:是指实行行列步队中能运行的,这个值保护WebLogic为了相应频繁溢出,创建过多的线程数。
默认情形下,最大线程数为400。

n 线程优先级:线程优先级与此行列步队干系。
默认值为5。

6. 点击Create,创建行列步队。

7. 重启做事器。

5.6指派Servlet和JSP到实行行列步队

你可以把servlet或JSP分配到指定的配置实行行列步队,只需在初始参数中标识实行行列步队的名称。
初始参数涌如今Servert或JSP的支配描述文件web.xml中的init-param元素里。
为了分配一个行列步队,可以把行列步队名作为wl-dispatch-policy参数的值。
如:

<servlet>

<servlet-name>MainServlet</servlet-name>

<jsp-file>/myapplication/critical.jsp</jsp-file>

<init-param>

<param-name>wl-dispatch-policy</param-name>

<param-value>CriticalAppQueue</param-value>

</init-param>

< /servlet>

5.7指派EJB和RMI工具到实行行列步队

为了把EJB分配到指定的行列步队,可以利用weblogic-ejb-jar.xml文件中dispatch-policy元素。

然而你也可以通过利用appc编译器-dispatchPolicy选项来设置叮嘱消磨策略,BEA强烈推举利用支配描述元素。
由于用这种办法,如果EJB重编译,在支配用例期间,这个设置不会被丢失。

为了把RMI工具分配到指定的行列步队,可以利用rmic编译器的-dispatchPolicy选项,如:

java weblogic.rmic -dispatchPolicy CriticalAppQueue ...

5.8分配实行行列步队担当Socket读

为了得到更好的socket性能,BEA 推举你利用自有的socket读实行工具,它更优于纯Java实行工具。
然而,如果你一定要在主机上用纯Java 的socket读,你仍旧可以通过配置恰当的实行线程数以提高socket通信性能,为每个做事器实例和客户机器担负socket读线程的任务。

Socket读占线程池百分比(ThreadPoolPercentSocketReader)属性可以设置用来从socket读的实行线程的最大百分比。
这个属性的最优值是根据运用程序的须要指定的。
默认值是33,有效范围在1-99之间。

分配实行线程担当socket读增加了做事器处理速率和接管客户要求的能力。
有必要平衡实行线程数,使其专注于从socket读,也有必要平衡那些在做事器处理实际任务的实行线程。

5.9为做事器实例设置socket读的线程数的操作

1. 启动管理做事器,访问域掌握台。

2. 展开左边面板Servers节点,显示域做事配置。

3. 点击你要配置的做事名称。

4. 选择配置(Configuration)――>调度(Tuning)标签。

5. 在Socket Reader中编辑Java读线程的百分比。
Java socket读线程数是根据所有的实行线程数的百分比打算得到的。

6. 运用(Apply)这个调度。

5.10在客户机设置Socket读线程数

在客户机上,你可以配置运行在JVM(Java虚拟机)上的socket读线程数。
指定Socket读,须要通过用java命令行定义下列参数:

-Dweblogic.ThreadPoolSize=value

-Dweblogic.ThreadPoolPercentSocketReaders=value

5.11优化溢出情形时的实行行列步队

你可以配置WEBLOGIC监测并且随时应对潜在的溢出,不管其发生在默认的实行行列步队还是用户定义的行列步队。
一旦当前行列步队大小快达到用户定义的百分比,WebLogic认为行列步队中有一个可能的溢动身生。

当这个限度到达时,做事器改变它的良好状态为“警告”,随即分配额外的线程去处理超负荷的事情,从而还原它的大小。

为了自动监测和应对溢出,你可以配置以下项:

1. 行列步队长限定百分比,这个值是行列步队大小的百分比。

2. 当溢出发生时,增加到行列步队的线程数。
这些额外的线程以还原行列步队到正常的运行的大小。

3. 线程的最大数,在分外情形下,线程最大数用来保护做事器在相应过载情形下过度分配线程数。

5.12优化实行行列步队的监测行为

当一个线程在行列步队中变成堵塞状态时,WebLogic会自动监测到。
由于堵塞线程不能完成它当前的事情或接管新的事情,做事器每次诊断一个堵塞线程,就记入一个到日志中。
如果一个行列步队中所有的线程变成堵塞,做事器改变良好状态成“警告”或者“危急”,依赖于下列情形:

n 如果默认行列步队中所有的线程变成堵塞,做事器状态变成“危急”。
(你可以设立节点管理器(Node Manager)运用去自动关闭及重启做事器。

n 如果在weblogic.admin.HTTP, weblogic.admin.RMI或用户定义的行列步队中所有线程变成堵塞,做事器状态变成“警告”。

WebLogic诊断到一个堵塞线程,如果它是在指定的韶光内连续不断的事情(没有空闲)。
你可以调度做事器线程监测行为,它是通过改变堵塞线程被诊断前的韶光长度和做事器核查堵塞线程的频率。

把稳:只管你能改变标准WebLogic去决定一个线程是否堵塞,但,你不能改变默认行为,便是涌现堵塞时把做事器设置成“警告”或“危急”的行为。

配置WebLogic堵塞线程监测行为的步骤:

1. 启动WebLogic,访问管理掌握台。

2. 点击你想为改进堵塞线监测而修正的做事器实例的名称。

3. 选择配置(Configuration)――>调度(Tuning)标签。

4. 修正下列参数:

n 堵塞线程最大韶光(Stuck Thread Max Time):输入秒数,线程一定是不断的运行,做事器才会诊断这个线程作为堵塞。
默认情形下,WebLogic认为线程连续不断运行600秒后置为堵塞。

n 堵塞线程韶光间隔(Stuck Thread Timer Interval):输入秒数,这个韶光是WebLogic周期性的扫描线程以察觉它们是否连续不断运行了某一线程的韶光达到通过堵塞线程最大韶光属性指定的韶光长度。
默认韶光间隔为600秒。

5. 运用(Apply)设置。

6. 重启做事器。

六、优化连接缓存

Config.xml文件中的元素接管缓存数(AcceptBacklog)属性是用来设定要求WebLogic实例的连接数,在谢绝额外的要求之前,能接管设定的缓存数。
AcceptBacklog属性指定有多少TCP连接缓存在等待行列步队,这个固定的行列步队存放了TCP堆栈已经收到但运用程序还没有收到的连接要求。
默认值是50,最大值由操作系统决定。

在掌握台调度接管缓存数的步骤:

1. 启动WebLogic,访问掌握台。

2. 展开左边面板Servers节点。

3. 点击你要配置的做事器实例的名称。

4. 选择配置(Configuration)――>调度(Tuning)标签。

5. 根据须要修正默认的接管缓存数(Accept Backlog):

n 在运行期间,如果许多客户端连接得不到相应或被谢绝,并且做事器端也没有缺点,解释接管缓存的值可能太小。

n 在你访问WebLogic时,如果收到“谢绝连接(connection refused)”的提示,则该当增加接管缓存的默认值的25%。
连续增加其值的25%,直到停滞涌现这样的提示。

6. 点击运用(Apply),保存设置。

七、如何提高JDBC连接池的性能

创建一个带DBMS的JDBC连接是非常慢的。
如果运用程序须要数据库不断的连接和断开,这种创建办法会造成一个重大的性能问题。
WebLogic连接池供应了一种高效的办理方案来办理这个问题。

当启动WebLogic,就打开连接池,以便于所有客户连接。
当一个客户关闭一个连接,这个连接就返回到连接池,供其他的客户利用。
连接本身不会关闭。
如此就用极少的代价实现了连接和断开连接池。

在连接池里该当创建多少连接呢?连接池会根据配置参数中的最大数与最小数之间增加或减少连接。
最好的性能该当是连接数与当前客户会话(Session)数相同。

7.1调度JDBC连接池的初始容量

在配置连接池时, JDBCConnectionPool元素中的InitialCapacity属性能设定连接数,创建物理的数据库连接。
如果做事器不能创建这个连接数,连接池的创建就会失落败。

在开拓期间,为了使做事器启动更快,可以很方便的设置InitialCapacity属性的值小一点。
在产品系统中,就该当把InitialCapacity的值设为与MaxCapacity值相同,默认产品模式的值为25。
这样,在做事器启动时,所有的连接就会被创建。
如果你调度了MaxCapacity值后,一定要确信InitialCapacity值设置与MaxCapacity值相同。

如果InitialCapacity比MaxCapacity值少,当负荷增加时,做事器须要创建额外的数据库连接。
当做事器处于低负荷时,所有的资源该当是尽快的完成要求,而不是创建新的数据库连接。

7.2调度JDBC连接池的最大容量

JDBCConnectonPool元素中的MaxCapacity属性设置连接池包含的最大的物理数据库连接数。
不同的JDBC驱动程序和数据库做事器可能限定物理连接数。

默认的最大容量数与默认的线程数相等:开拓模式为15,产品模式为25。
不过,在产品模式下,建议连接数与当前的客户会话(Session)数相等。
在做事器端,连接池的容量与实行线程数是无关的,正在进行的用户会话比实行线程更多。

八、设置Java编译器

编译JSP Servlet的标准Java编译器是javac。
你可以把java编译器设置为si或jikes代替javac,这样能极大的提高性能。
下面谈论设置步骤及其要考虑的事变。

8.1通过掌握台改变编译器

1. 启动做事器,访问掌握台。

2. 展开左边面板Servers节点。

3. 点击要配置的做事器实例的名称。

4. 选择配置(Configuration)――>常规(General),在Java Compiler编辑框输入编译器的完备路径。
如:c:\visualcafe31\bin\sj.exe

5. 点击高等选项(Advanced Option)――>Show,显示其他的属性。

6. 用添加(Append)把完备路径通过Classpath框输入到JRE rt.jar 库。
如:BEA_HOME\jdk141_02\jre\lib\rt.jar

7. 点击运用。

8. 重启做事器。

8.2在Weblogic.xml文件中设置编译器

n 利用compileCommand参数指定Java编译器。

n 利用procompile参数配置WebLogic,在启动WebLogic时预编译JSP。

8.3编译EJB容器类

利用Weblogic.appc的功能去编译EJB2.0和1.1容器类。
如果编译Jar文件支配EJB容器,你必须利用weblogic.appc天生容器类。
默认情形下,EJB利用javac编译器。
为了得到跟好的性能,利用-compiler标志指定不同的编译器(如Symantec公司的sj)

8.4在UNIX环境下编译

在UNIX机器上编译JSP文件,如果收到下列缺点:

failed:java.io.IOException:Not enough space

试试下列一些或所有的办理方法:

n 如果你只有256MB的内存,增加更大的内存。

n 提高文件描述文件的限定,如:

set rlim_fd_max=4096

set rlim_fd_cur=1024

n 启动JVM时,用-native标志来利用自有的线程。

九、利用WebLogic集群提高性能

WebLogic集群是指一组WebLogic实例在一起供应具有防过载和自有复制的功能,以用一个域为所有客户支持可伸缩的高可用性运行。
集群对付客户是一个单一的做事器,但实际上是一组做事器来提高可靠性和可伸缩性。

9.1可伸缩性和高的可用性

可伸缩性是系统增加一个或更多部件作为系统资源的能力。
很范例的是,这些部件使并发用户得到支持,使并发事务能在特定的韶光单位能被处理。

假定运用程序设计良好,它完备可以大略的增加更多的资源来提高性能。
为了增加WebLogic处理的负荷量,只需增加一个WebLogic实例到你的集群――不需改变运用程序。
集群提高两个关键的好处:可伸缩性和可用性,这是单一做事器无法比拟的。

WebLogic集群给J2EE带来了可伸缩性和高的可用性,而且对付运用程序的开拓者是透明的。
可伸缩性扩展了中间层的能力,超过了单一的WebLogic做事器或单一的打算性能处理的。
集群成员唯一的限定是所有WebLogic必须要用IP多点传送通信。
新的WebLogic能动态的增加到集群,以增加处理能力。

WebLogic集群担保高的可用性是通过多个做事器的冗余,减少客户的要求失落败。
集群中多个做事器能供应同一做事。
如果一个做事器停滞运行,另一个能接替运行。
这种功能为客户增加了可用性。

警告:如果你要办理运用程序和环境的颈瓶问题,增加额外的做事器到集群,该当供应线性的可伸缩性。
定基准和初始配置测试运行时,在移到集议论况之前,应把运用隔离在单独的做事器上测试。

9.2在多CPU机器上运行多做事器实例,应考虑的性能问题

多处理器的机器上,必须考虑群集WebLogic实例数应与CPU的数量成比例。
由于WebLogic没有内置限定的做事器实例数位于集群里,规模大的、多处理器做事器,如Sun公司的Sun Enterprise 10000,有着当作非常大的集群或多集群主机的潜能。

在决定最佳的做事器与CPU比例前,彻底测试你的运用程序并确定如下:

n 网络哀求 如果你创造Web 运用程序是紧张受网络I/O限定,在增加CPU数前,考虑测试网络的吞吐量。
如果实际是网络I/O限定,安装一个更快的网络接口卡(NIC)可以供应性能,而不是增加额外的CPU,由于在等着读socket时,更多的CPU会处于闲置。

n 磁盘I/O哀求 如果你创造Web运用程序紧张受磁盘I/O限定。
在配置额外的CPU前,就该当考虑增加磁盘转速或单个磁盘。

总之,在配置额外的CPU前,必须确定Web运用程序是受CUP限定,而不是受网络或磁盘I/O限定。

对付受CPU限定的运用,最初在每个CPU上对一个WebLogic实例进行性能测试。
如果CPU利用率是同等的或者靠近100%,然后增加CPU比重(例如,为一个WebLogic实例配置两个CUP),记住在产品模式下,该当有一些空闲的CPU周期存在去实行管理任务。

虽然Web运用程序的处理需求变革多端,但BEA公司创造WebLogic实例与CPU最空想的比例是1:2。

十、监视WebLogic域

监视WebLogic域的康健状况和性能的工具是管理掌握台。
通过掌握台,你可以不雅观察到WebLogic资源的状态和统计信息,如做事器,HTTP,JTA 子系统,JNDI,安全,CORBA连接池,EJB,JDBC以及JMS。

举个例子,在Server――>Monitoring――>Performance为当前做事器实例供应了与等待和运行状态的要求有关的性能参考。
它包括下列信息:

n 行列步队中空闲线程数。

n 行列步队中等待韶光最长的要求。

n 吞吐量,根据已经处理的要求数来衡量的。

n 行列步队长度,根据行列步队中等待要求数来衡量的。

n JVM堆还有的内存量。