`
zhouxing
  • 浏览: 206591 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
优化 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_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的数量
过多的上下文转换程序,能导致重大的性能降级。
margin-top: 6pt; text-indent: 24pt; line-height: 13.5pt;
分享到:
评论

相关推荐

    优化 WebLogic 服务器性能参数

    ### 优化 WebLogic 服务器性能参数 #### 一、引言 在当今的企业级应用环境中,WebLogic 作为一款强大的应用服务器,在众多大型项目中扮演着至关重要的角色。随着业务需求的增长和技术的发展,如何有效提升 WebLogic...

    weblogic优化指南.docx

    WebLogic 优化指南 WebLogic 优化是一种复杂的技术,涉及到多个方面,包括 JVM 参数调整、堆大小设置、GC 优化、堆栈内存优化、配置文件优化等。本文将详细介绍这些方面的优化方法,帮助读者更好地理解和优化 ...

    weblogic10.3性能优化参数配置

    Weblogic 10.3 性能优化参数配置 Weblogic 服务器是 Oracle 公司推出的一个基于 Java 的中间件服务器,广泛应用于企业级应用系统中。为了确保 Weblogic 服务器的高性能和稳定运行,需要对其进行合理的配置和优化。...

    weblogic自学全套教程

    此外,了解如何优化WebLogic的内存设置、线程池配置以及资源调度策略也是提升系统性能的关键。 七、WebLogic10详解 WebLogic 10版本引入了许多新特性,例如增强的安全性、支持Java EE 5、改进的性能等。理解这些...

    weblogic监控

    监控和优化WebLogic服务的目标是确保系统的稳定性和高效性,避免由于资源不足或配置不当导致的性能问题。监控内存使用、线程活动和队列长度等关键指标可以帮助我们提前发现并解决问题,而性能优化则需要根据实际负载...

    weblogic 学习资料大全

    优化WebLogic的性能对于确保服务的高效运行至关重要。这可能包括调整内存设置、JVM参数、线程池大小、数据库连接池配置等。 七、WebLogic监控与诊断 通过JMX(Java Management Extensions)和WLST(WebLogic ...

    BEA WebLogic Server8.1大全 源码

     使用JUnit、JProbe和JMeter测试、调试和优化WebLogic应用程序。  利用XML.Web服务,jCOM、JCo、CORBA和Tuxedo应用程序.将WebLogic集成到企业系统中。  管理WebLogic应用程序和使用群集服务。  使用WebLogic ...

    WebLogic 配置文件

    总之,理解并优化WebLogic的配置文件对于提升服务器性能至关重要。正确配置这些参数不仅可以提升单点性能,还能使整个应用程序的性能变得可度量和可控。通过不断调整和测试,可以找到最适合你的系统的配置方案。

    weblogic 11g安装优化流程手册

    在安装和优化 WebLogic 11g 时,需遵循一定的流程,确保其高效稳定运行。 **1. 安装包准备** WebLogic Server 11g 的安装涉及两个主要的安装包: - `wls1035_generic.jar`:这是 WebLogic Server 10.3.5 的主安装包...

    weblogic优化指南大全

    ### WebLogic优化指南详解 #### 一、Java参数设置与WebLogic启动优化 在WebLogic服务器的优化过程中,合理设置Java虚拟机(JVM)参数至关重要。JVM的垃圾收集(GC)机制对WebLogic服务器的性能有着直接的影响。垃圾...

    Weblogic性能调优

    3. **Java编程语言**:掌握Java编程语言是进行WebLogic Server性能调优的基础之一,因为WebLogic Server主要基于Java技术栈构建,了解Java虚拟机(JVM)的工作原理对于优化WebLogic Server至关重要。 4. **XML技术**...

    weblogic10 实验手册

    - **性能调优**:了解如何监控和优化WebLogic Server的性能,确保应用在高负载下稳定运行。 - **安全配置**:深入研究WebLogic Server的安全特性,包括身份验证、授权和加密机制,以保护应用程序免受攻击。 - **故障...

    WebLogic Tuning on HP UXIX

    - **OS内核参数调优**:针对通用目的,需要调整操作系统内核参数,如内存管理、调度策略、文件系统缓存等,以优化WebLogic Server的运行环境。例如,增加最大文件描述符数量(ulimit)以支持更多的并发连接,调整...

    Weblogic性能调优.ppt

    - **操作系统**:针对不同的操作系统,如HP-UX,需要调整参数以优化WebLogic Server运行。例如,增加最大线程数、文件描述符数量,调整TCP参数等。此外,交换区的大小也很关键,通常应设定为内存的两倍或与内存大小...

    weblogic部署图解.rar

    9. **故障排查和优化**:学习如何诊断和解决部署过程中可能遇到的问题,以及如何优化WebLogic Server的性能。 通过这份详细的部署图解,用户不仅可以了解WebLogic Server的部署流程,还能掌握各种配置和管理技巧,...

    weblogic原厂培训教材实验 pdf

    WebLogic Server提供了一系列工具和设置来优化应用程序的性能,例如线程池配置、内存分配、JVM参数调整等。实验可能引导学习者如何通过监控工具观察服务器性能,以及如何根据实际情况进行调优。 四、WebLogic安全...

    Oracle WebLogic Server

    Oracle WebLogic Server培训旨在帮助学员掌握其基本操作、高级特性、故障排查和性能优化技巧。通过学习,开发者和管理员能更好地理解和使用这款强大的应用服务器,提升工作效率,保障企业的IT基础设施稳定运行。 ...

    BEA dev2dev WebLogic管理精华

    #### 二、应用管理:优化WebLogic应用部署与配置 ##### 2.1 JNDI中加与不加`java:comp/env/`前缀的区别 在Java Naming and Directory Interface (JNDI)中,`java:comp/env/`前缀用于标识应用级别的命名空间。当不...

Global site tag (gtag.js) - Google Analytics