当前位置:文档之家› weblogic两种模式区别

weblogic两种模式区别

优化WebLogic优化WebLogic 服务器性能参数WebLogic 配置文件(config.xml)包含了大量很直观的与性能有关的参数,能通过配置环境与应用程序得到很好的优化。

基于系统的需要调整这些参数不仅能改善单个点的性能,而且能提高整个应用程序性能的可衡量性。

试着采用下列WebLogic配置方法,或许能使你的系统达到最佳状态:一修改运行队列线程数的值。

在WebLogic 中队列元素的线程数等于同时占用运行队列的应用程序的数目。

当任务加入一个WebLogic 实例,它就被放到执行队列中,然后分配给任务一个线程来运行。

线程消耗资源,因此要小心处理这个属性——增加不需要的值,会降低性能。

二,如果可能,使用自带的性能包(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_03n 为得到高性能的吞吐量,把Java 堆的最小值与最大值设为相等。

如:"%JAVA_HOME%\bin\java" -hotspot -Xms512m -Xmx512m -classpath %CLASSPATH% -二、设置与性能有关的配置参数Connection PoolCapacity四、使用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运行在最大负荷下,并且使用默认的执行队列满足所有的线程的请求。

如果你配置了额外的执行队列并指派了应用程序到具体的队列,就需要依据一个个连接池得到结果。

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 元素。

相关主题