weblogic性能优化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
优化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参数,简单来说,通过WebLogi
c.Server域的命令行就可以完成,不过,由于这样启动的过程冗长并且易于出
错,BEA 公司推荐你把这个命令写进脚本里。为了简化这个过程,你可以修改样例脚本里的默认值,样例脚本是提供WebLogic启动服务器的。
如果你用配置向导创建你的域,WebLogic启动脚本(startWebLogic.cmd)放在domain-name目录里。默认情况下,这个目录是BEA_HOME\user_pr ojects\domain\domain-name,BEA_HOME表示安装路径,domain-nam e是在配置模板中设置的域名称。
备
不过,如果你一定要用纯Java socket读在主机上运行,你仍然可以通过配置每个服务器实例和客户机中适当的socket读的线程数量,来提高socket 通信的性能。
设置性能包的操作方法:
默认情况下,装载在config.xml中的是自有的性能包。为了验证这个设置,在配置文件中检查NativeIOEnabled属性是否设为“true”(NativeIOEnable d=true)。
你也可以通过管理控制台来验证,步骤如下:
1,启动管理服务器。
2,访问管理控制台。
3,展开左边面板的Servers 节点,显示域服务。
4,点击你要配置的服务实例。
5,选择Configuration->Tuning tab。
6,如果Enable Native IO复选框没有被选择,选中即可。
7,点击Apply。
8,重启服务器。
五、优化默认执行队列线程
默认情况下,一个新的WebLogic实例配置了一个开发模式执行队列,we blogic.kernel.default,它包含15个线程。另外,WebLogic提供了2个预配置队列:
n weblogic.admin.HTTP——只在管理服务器上才有,这个队列供与管理控制台的通信用,你不能再配置它。
n weblogic.admin.RMI——管理服务器和被管理服务器上都有这个队列,它是供管理的交通之用,也不能再配置它。
如果你不配置额外的执行队列,并且指定应用给这些队列,web 应用程序和RMI对象就使用默认的队列weblogic.kernel.default。
注意;如果自带的执行包没有在你的平台上使用,你可能需要调整默认的执行队列线程数和担任socket读的线程的百分比,去实现最佳性能。
5.1你应该更改默认的线程数吗?
增加更多的线程到默认的执行队列并不意味着你能处理更多的工作。即使增加更多的线程,仍然被处理器的能力限制。因为线程消耗内存,所以增加线程数属性的值不必要的降低了性能。一个高的执行线程数导致更多的内存被占用并且增加了上下文转换程序,它也会降低性能。
线程数属性的值与应用程序处理的工作的类型关系密切。例如,如果你的客户应用程序比较小,通过远程调用处理的工作较多,这样,客户端会花费更多的时间连接,因此,与能完成大量客户端任务的客户应用程序相比,会需要更多的线程数。
如果你的工作不需要使用超过15个线程(开发模式默认)或者25个线程(产品模式默认),就不要改变这个属性的值。通常,如果你的应用程序访问数据库花很长时间才返回
6.填下适当的线程数。
7.点击Apply,保存刚才的修改。
8.重启服务器,使新的执行队列设置生效。
5.4指派应用程序到执行队列
虽然可以配置默认的执行队列,为所有的WebLogic应用程序提供最佳的线程数,但是为关键的应用程序配置多个执行队列可以提供更多的管理控制。通过使用多执行队列,你可以保证应用程序有权占用固定的线程数,而不管Web Logic服务器有多大的负荷。
5.5创建执行队列
一个执行队列代表执行线程的命名集,线程指向一个或多个Servlet、JSP、EJB、RMI对象。执行队列在config.xml文件中描述,作为服务器元素的一部分。如,在config.xml文件中描述一个有4个线程的队列,命名为CriticalAp pQueue,如下:
...
Name="examplesServer" ListenPort="7001" NativeIOEnabled="true"/> ThreadCount="15"/> ThreadCount="4"/> ...
另一种创建队列的方法是通过管理控制台,配置步骤如下:
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)时,就构成了溢出条件的产生。实际队列大小在限制