`

WebLogic Server 性能及调整

阅读更多

WebLogic Server 性能及调整 在此处开始内容

Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 WebLogic Server 和应用程序的性能。

下列部分讨论的是 WebLogic Server 的 JVM 调整选项:

 


 

JVM 调整注意事项

表 5-1 列出了针对 WebLogic Server 的 JVM 调整的一般注意事项:

表 5-1 JVM 调整一般注意事项 
Supported Configurations pages 会经常更新,其中包含有关各种平台的认证信息。

 

 


 

哪种 JVM 适合您的系统?

虽然本部分着重介绍 Sun Microsystems 用于 Windows、UNIX 和 Linux 平台的 J2SE 5.0 JVM,但请注意 BEA JRockit JVM 是明确为服务器端应用程序开发的,并针对 Intel 体系结构进行了优化,可以确保 Java 应用程序的可靠性、可伸缩性、可管理性和灵活性。有关在 Windows 和 Linux 平台上使用 JRockit 的优势的详细信息,请参阅 Introduction to JRockit JDK

有关 JVM 的常规详细信息,请参阅 JVM 规范简介。有关 JVM 调整相关内容的链接,请参阅相关内容:性能工具和信息

更换到另一个 JVM

创建域时,如果选择自定义配置,则配置向导会显示 WebLogic Server 安装的 JDK 列表。在此列表中,您可以选择希望运行域的 JVM,然后 Configuration Wizard 将根据您的选择配置 BEA 启动脚本。如果在创建域之后,想要使用另一 JVM,请参阅更改运行服务器的 JVM

 


 

垃圾收集

垃圾收集是 VM 释放 Java 堆中未使用的 Java 对象的过程。下列部分提供有关调整 VM 垃圾收集的信息:

VM 堆大小和垃圾收集

Java 程序对象存储在 Java 堆中。Java 堆是包括活动对象、无效对象及可用内存的仓库。如果某对象不再能够在运行的程序中通过任何指针进行访问,则会将该对象视为“垃圾”,可以进行收集。将进行垃圾收集所耗费的时间调整为执行时间的 5% 以下,这是一种最佳实践。

JVM 堆大小决定 VM 收集垃圾的频率及所耗费的时间。可以接受的垃圾收集速率因应用程序而异,并且应在分析垃圾收集的实际时间和频率后进行调整。如果将堆大小设置得很大,则执行完全垃圾收集的速度将会较慢,但收集频率会较低。如果根据内存需求设置堆大小,则完全垃圾收集的速度会较快,但收集频率会较高。

调整堆大小的目的是将 JVM 进行垃圾收集所耗费的时间缩到最短,同时将 WebLogic Server 在某给定时间内可以处理的客户端数增至最大。要确保在基准测试期间得到最佳性能,可将堆大小值设置得很大,以确保不会在整个基准测试过程中进行垃圾收集。

如果堆空间不足,则可能会出现以下 Java 错误:

java.lang.OutOfMemoryError <>
java.lang.OutOfMemoryError <>
Exception in thread "main"

要修改堆空间值,请参阅指定堆大小值

要配置 WebLogic Server 以便在堆空间用尽时自动进行检测,以及处理服务器中内存不足的情况,请参阅自动对内存不足情况进行日志记录指定堆大小值

选择垃圾收集方案

可从若干垃圾收集方案中进行选择,以管理系统内存,所选择的方案取决于所使用的 JVM。例如,某些垃圾收集方案更适用于给定类型的应用程序。了解应用程序的工作负荷以及 JVM 所用的各种垃圾收集算法之后,就可以优化垃圾收集的配置。

请参阅下列链接,以查看 JVM 垃圾收集选项的深入讨论:

使用详细垃圾收集确定堆大小

通过详细垃圾收集选项 (verbosegc),能够精确测量向垃圾收集投入了多少时间和资源。要确定最有效的堆大小,请启用详细垃圾收集,然后将其输出重定向到日志文件,以便进行诊断。

此过程的大致步骤如下:

  1. 在运行应用程序时监视 WebLogic Server 在最大负载下的性能。
  2. -verbosegc 选项对 JVM 启用详细垃圾收集输出,然后将标准错误和标准输出都重定向到日志文件。

    这会将线程转储信息存储到相应的 WebLogic Server 信息性消息和错误消息上下文中,从而提供更有用的日志以便进行诊断。

    例如,在 Windows 和 Solaris 中,输入下列代码:

    % java -ms32m -mx200m -verbosegc -classpath $CLASSPATH
    -Dweblogic.Name=%SERVER_NAME% -Dbea.home="C:\bea"
    -Dweblogic.management.username=%WLS_USER%
    -Dweblogic.management.password=%WLS_PW%
    -Dweblogic.management.server=%ADMIN_URL%
    -Dweblogic.ProductionModeEnabled=%STARTMODE%
    -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server
    >> logfile.txt 2>&1

    其中的 logfile.txt 2>&1 命令可将标准错误和标准输出都重定向到日志文件。

    在 HPUX 中,可使用以下选项将 stderr stdout 重定向到单个文件:

    -Xverbosegc:file=/tmp/gc$$.out

    其中 $$ 可以映射到 Java 进程的进程 ID (PID)。因为输出中包括运行垃圾收集时的时间戳,所以可推断出进行垃圾收集的频率。

  3. 分析下列数据点:
  4. 检查新一代堆大小 (Sun) 或 Nursery 大小 (BEA Jrockit)。

注意: JVM 供应商可能会提供用于打印详尽的垃圾收集报告的其他选项。例如,可在关闭程序时使用 BEA JRockit JVM -Xgcreport 选项打印详尽的垃圾收集报告,请参阅。

指定堆大小值

可供 JVM 使用的 Java 堆大小对系统性能具有较大影响。本部分介绍用于定义堆大小值的命令行选项。每当启动 WebLogic Server 实例时,均需指定 Java 堆大小值。在 java 命令行中,或通过修改随 WebLogic 分发提供的示例启动脚本(用于启动 WebLogic Server)中的默认值,均可执行上述操作。

堆大小调整提示

以下部分提供了调整 VM 堆大小的一般准则:

BEA JRockit JVM 堆大小选项

虽然 BEA JRockit 可以自动进行试探性堆大小调整,但这并不是所有应用程序的最佳选择。大多数情况下,最佳性能是通过调整每种应用程序的 VM 实现的,方法是调整表 5-2 中所示的堆大小选项。

表 5-2 BEA JRockit JVM 堆大小选项
 

 

例如,从 java 命令行启动 WebLogic Server 实例时,可使用以下命令指定 BEA JRockit VM 堆大小值:

$ java -Xns10m -Xms512m -Xmx512m

这些值的默认大小的度量单位是字节。该值后附加字母“k”或“K”表示 KB;附加“m”或“M”表示 MB;附加“g”或“G”表示 GB。上例将 10 MB 内存分配给 Nursery 堆大小,将 512 MB 内存分配给运行在 JVM 中的 WebLogic Server 实例的最小和最大堆大小。

有关针对 WebLogic 的 JRockit JVM 设置适当的堆大小的详细信息,请参阅 Tuning the JRockit JVM

其他 BEA JRockit VM 选项

BEA 提供可以提高 BEA JRockit VM 性能的其他命令行选项。有关详细信息,请参阅

Java HotSpot VM 堆大小选项

通过分别调整每个应用程序,可以实现最佳性能。但是,在启动 WebLogic Server 时配置表 5-3 中列出的 Java HotSpot VM 堆大小选项,可以提高大多数应用程序的性能。

这些选项因体系结构和操作系统而异。有关平台特定的 JVM 调整选项,请参阅供应商提供的文档。

表 5-3 Java 堆大小选项 

 

例如,从 java 命令行启动 WebLogic Server 实例时,可使用以下命令指定 HotSpot VM 堆大小值:

$ java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -Xms512m -Xmx512m

这些值的默认大小的度量单位是字节。该值后附加字母“k”或“K”表示 KB;附加“m”或“M”表示 MB;附加“g”或“G”表示 GB。上例将 128 MB 内存分配给新一代堆大小和最大新一代堆大小,将 512 MB 内存分配给运行在 JVM 中的 WebLogic Server 实例的最小和最大堆大小。

其他 Java HotSpot VM 选项

Sun 提供了可以提高 VM 性能的其他标准和非标准命令行选项。使用这些选项的方式取决于应用程序的编码方式。

对客户端和服务器 JVM 进行测试,以确定更适用于特定应用程序的选项。Sun Microsystems 的 Java HotSpot VM Options 文档提供有关可以影响 Java HotSpot 虚拟机性能特征的命令行选项和环境变量的信息。

有关 HotSpot VM 选项的其他示例,请参阅:

Sun Microsystems 的 Java Virtual Machine 文档详细论述了 J2SE 5.0 Java 虚拟机的客户端和服务器实现。

自动对内存不足情况进行日志记录

通过 WebLogic Server 能够自动记录由服务器检测到的内存不足情况。WebLogic Server 通过在某段时间间隔内对可用内存进行一定次数的采样,来检测内存不足。在每个时间间隔结束时,服务器都会记录平均可用内存,并将其与下一时间间隔中获得的平均可用内存相比较。如果在每个采样时间间隔过后,平均值的下降幅度都达到了用户配置的内存量,则服务器会在日志文件中记录内存不足的警告消息,并将服务器的运行状态设置为“警告”。请参阅“管理控制台联机帮助”中的 记录内存不足情况

手工请求垃圾收集

您可能会发现有必要从管理控制台中手工请求完全垃圾收集。执行此操作时请记住,垃圾收集的开销很大,因为 JVM 常常检查堆中的所有活动对象。请参阅“管理控制台联机帮助”中的手工请求垃圾收集

请求线程堆栈

您可能会发现有必要在调整应用程序时显示线程堆栈。请参阅“管理控制台联机帮助”中的显示线程堆栈

 


 

IA32 平台启用旋转功能

如果在多处理器系统中运行的是锁定争用激烈的大负载应用程序,则可尝试通过使用旋转功能提升性能。通过此选项能够在进入休眠状态前对锁进行短时旋转。

Sun JDK

Sun 已针对 Windows IA32 平台,对 JDK 5.0 中的默认锁旋转行为进行了更改。对于 JDK 5.0 版,默认情况下锁旋转处于禁用状态。对于此版本,BEA 已明确地在用于启动 WebLogic Server 的环境脚本中启用了旋转功能。要启用旋转功能,请使用以下 VM 选项:

   -XX:+UseSpinning

BEA JRockit

BEA JRockit VM 可以自动针对各种锁调整旋转功能,从而无须设置此参数。

注意: 在 BEA JRockit 8.1 SDK 版中,旋转功能是通过设置 -XXenablefatspin 选项进行调整的。

评论

相关推荐

    WebLogic_Server性能调优

    WebLogic_Server性能调优,对于weblogic server进行调优的一些介绍ppt格式

    Weblogic性能优化2

    对WeblogicServer进行性能优化调整的配置

    BEA WebLogic Server管理指南

    从安装与工作负载管理到部署J2EE服务与集成应用程序,涉及了运行和维护WebLogic Server的专业知识,包括许多工作的详细步骤,如管理控制台、性能调整与查错等。 内容简介 全面的BEA WebLogic Server资源 本书由BEA...

    WebLogic_精简培训内容.ppt

    WebLogic Server 安装规划、配置,相应操作参数调整,server参数调整 WebLogic Server Domain的创建与配置 Weblogic Console的使用(通过Console进行管理) Weblogic Server的log文件管理(通过Log分析server运行...

    weblogic优化

    WebLogic Server Performance and Tuning WebLogic Server性能调整

    WebLogicServer性能调优

    虽然成为象WebLogicServer这样广泛使用的产品需要具备很多特性,但性能绝对是必不可少的。 良好的编程习惯在帮助应用运行方面起了很大的作用,但是仅有它们还是不够的。应用服务器必须能够在多种硬件和操作系统之间...

    webLogic服务器性能优化文档

    该文档集中体现了对WebLogic Server 的"运行模式"、"JVM参数设置"、"线程数设置"、"JDBC连接池的性能调整"以及"使用weblogic“自有的IO”性能包"这些方面的设置讲解。 该文档对在web应用发布,提升其性能方面有一定...

    weblogic cluster调优过程

    Weblogic Server调优的主要内容 1、为WebLogic 启动设置Java 参数。 2、设置与性能有关的配置参数。 3、调整开发与生产模式默认值。 4、使用WebLogic“自有的IO”性能包。 5、优化默认执行队列线程。 6、优化连接...

    weblogic平台J2EE调优策略

    2.2 Server调优 2.2.1 尽量使用本地I/O库 2.2.2 调整默认执行线程数 2.2.3 调整连接参数 2.2.4 创建新的执行队列 2.3 JDBC调优 2.3.1 调整连接池配置 2.4 WEB调优 2.4.1 调整WEB应用描述符 2.5 JMS调优 2.6 EJB调优 ...

    aix oracle

    在Windows、Linux和AIX上成功安装和配置WebLogic Application Server 在一个或多个服务器与群集上部署和配置应用程序 管理JMX对象,如MBean与MBeanServer 理解J2EE服务,包括EFB、JNDI、JDBC、JMS等 使用管理控制台...

    Loadrunner报错日志

    例如:在许多客户端weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是weblogic中的server元素的acceptbacklog属性值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25%。...

    resin-jvm 调优

    JRockit还提供了更细致的功能用以观察JVM的运行状态,主要是独立的GUI控制台(只能适用于使用Jrockit才能使用jrockit81sp1_141_03自带的console监控一些cpu及memory参数)或者WebLogic Server控制台。 Bea JRockit ...

    unix大全(涵盖了UNIX学习的方方面面)

    整理了包含了unix内核 unix管理 unix调优81文档 ...77.aris 性能与调整 78.aris 实现安装包的反安装 79.aris 提高文件系统的使用效率 80.aris 使用不同规格的硬盘用Disksuite做镜像 81.x 硬盘分区简介

    超级有影响力霸气的Java面试题大全文档

    从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。 12、...

    java 面试题 总结

    从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。 9、...

    天路商务星CRM

    JBOSS,WEBLOGIC,EA SERVER,WEBSPHERE 4. 多种数据库可供选择 ORACLE,SYBASE,MS SQL SERVER,MY SQL,DB2 5. 快速二次开发,系统结构优化 采用先进技术开发框架,能够迅速搭建新的功能模块,优化业务流程。 6. B/S...

    java面试题

    76.4. 在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 86 76.5. 在weblogic中发布ejb需涉及到哪些配置文件 87 76.6. 如何在weblogic中...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

Global site tag (gtag.js) - Google Analytics