下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 WebLogic Server 性能及调整-调整 Java 虚拟机

WebLogic Server 性能及调整-调整 Java 虚拟机.doc

WebLogic Server 性能及调整-调整 Java 虚…

詠恆啲诺琂_
2018-04-30 0人阅读 举报 0 0 暂无简介

简介:本文档为《WebLogic Server 性能及调整-调整 Java 虚拟机doc》,可适用于IT/计算机领域

WebLogicServer性能及调整调整Java虚拟机WebLogicServer性能及调整调整Java虚拟机Java虚拟机(Javavirtualmachine简称JVM)是一种虚拟“执行引擎”实例可在微处理器上执行Java类文件中的字节码。调整JVM的方式会影响WeblogicServer和应用程序的性能。envelope下列部分讨论的是WebLogicServer的JVM调整选项:,JVM调整注意事项,哪种JVM适合您的系统,,垃圾收集,对IA平台启用旋转功能JVM调整注意事项表列出了针对WebLogicServer的JVM调整的一般注意事项:表JVM调整一般注意事项调整信息引用因素仅可使用生产JVM(在该JVM上WebLogicServer已通过认证)。此版本的WebLogicServer仅支持兼容JSE的JVM。JVM供应商和版本SupportedConfigurations页会经常更新其中包含有关各种平台的认证信息。调整堆大小和垃圾收有关WebLogicServer堆大小调整的详细信息请参阅垃圾收集。集选择GC(垃圾收集)许多GC方案均可用于管理系统内存可用哪种方案取决于您的应用程方案序如选择垃圾收集方案中所述。混合客户端服务器WebLogicServer支持使用不同JVM版本进行客户端和服务器部署。请参阅支持页获取混合客户端服务器JVM。JVM选择何种Solaris线程模型将对Solaris平台上的JVM性能产生巨大影响。可从多个线程模型以及所选模型内的各种同步方法中进行选择但UNIX线程模型不同JVM的情况也有所不同。请参阅SunMicrosystems网站上的PerformanceDocumentationFortheJavaHotspotVirtualMachine:Threading。哪种JVM适合您的系统,虽然本部分着重介绍SunMicrosystems用于Windows、UNIX和Linux平台的JSEJVM但请注意BEAJRockitJVM是明确为服务器端应用程序开发的并针对Intel体系结构进行了优化可以确保Java应用程序的可靠性、可伸缩性、可管理性和灵活性。有关在Windows和Linux平台上使用JRockit的优势的详细信息请参阅IntroductiontoJRockitJDK。有关JVM的常规详细信息请参阅JVM规范简介。有关JVM调整相关内容的链接请参阅相关内容:性能工具和信息更换到另一个JVM创建域时如果选择自定义配置则配置向导会显示WebLogicServer安装的JDK列表。在此列表中您可以选择希望运行域的JVM然后ConfigurationWizard将根据您的选择配置BEA启动脚本。如果在创建域之后想要使用另一JVM请参阅更改运行服务器的JVM。垃圾收集垃圾收集是VM释放Java堆中未使用的Java对象的过程。下列部分提供有关调整VM垃圾收集的信息:,VM堆大小和垃圾收集,选择垃圾收集方案,使用详细垃圾收集确定堆大小,指定堆大小值,自动对内存不足情况进行日志记录,手工请求垃圾收集,请求线程堆栈VM堆大小和垃圾收集Java程序对象存储在Java堆中。Java堆是包括活动对象、无效对象及可用内存的仓库。如果某对象不再能够在运行的程序中通过任何指针进行访问则会将该对象视为“垃圾”可以进行收集。将进行垃圾收集所耗费的时间调整为执行时间的以下这是一种最佳实践。JVM堆大小决定VM收集垃圾的频率及所耗费的时间。可以接受的垃圾收集速率因应用程序而异并且应在分析垃圾收集的实际时间和频率后进行调整。如果将堆大小设置得很大则执行完全垃圾收集的速度将会较慢但收集频率会较低。如果根据内存需求设置堆大小则完全垃圾收集的速度会较快但收集频率会较高。调整堆大小的目的是将JVM进行垃圾收集所耗费的时间缩到最短同时将WebLogicServer在某给定时间内可以处理的客户端数增至最大。要确保在基准测试期间得到最佳性能可将堆大小值设置得很大以确保不会在整个基准测试过程中进行垃圾收集。如果堆空间不足则可能会出现以下Java错误:javalangOutOfMemoryError<<nostacktraceavailable>>javalangOutOfMemoryError<<nostacktraceavailable>>Exceptioninthread"main"要修改堆空间值请参阅指定堆大小值。要配置WebLogicServer以便在堆空间用尽时自动进行检测以及处理服务器中内存不足的情况请参阅自动对内存不足情况进行日志记录和指定堆大小值。选择垃圾收集方案可从若干垃圾收集方案中进行选择以管理系统内存所选择的方案取决于所使用的JVM。例如某些垃圾收集方案更适用于给定类型的应用程序。了解应用程序的工作负荷以及JVM所用的各种垃圾收集算法之后就可以优化垃圾收集的配置。请参阅下列链接以查看JVM垃圾收集选项的深入讨论:,有关Sun的HotSpotVM可用的垃圾收集方案的概述请参阅TuningGarbageCollectionwiththeJavaVirtualMachine。,有关可用收集方案的详尽说明请参阅ImprovingJavaApplicationPerformanceandScalabilitybyReducingGarbageCollectionTimesandSizingMemoryUsingJDK。,有关BEAJRockitJDK可用的垃圾收集方案的讨论请参阅。,对于从HP视角来看有关垃圾收集的某些观点请参阅。使用详细垃圾收集确定堆大小通过详细垃圾收集选项(verbosegc)能够精确测量向垃圾收集投入了多少时间和资源。要确定最有效的堆大小请启用详细垃圾收集然后将其输出重定向到日志文件以便进行诊断。此过程的大致步骤如下:,在运行应用程序时监视WebLogicServer在最大负载下的性能。,用verbosegc选项对JVM启用详细垃圾收集输出然后将标准错误和标准输出都重定向到日志文件。这会将线程转储信息存储到相应的WebLogicServer信息性消息和错误消息上下文中从而提供更有用的日志以便进行诊断。例如在Windows和Solaris中输入下列代码:javamsmmxmverbosegcclasspath$CLASSPATHDweblogicName=SERVERNAMEDbeahome="C:bea"Dweblogicmanagementusername=WLSUSERDweblogicmanagementpassword=WLSPWDweblogicmanagementserver=ADMINURLDweblogicProductionModeEnabled=STARTMODEDjavasecuritypolicy="WLHOMEserverlibweblogicpolicy"weblogicServer>>logfiletxt>其中的logfiletxt>命令可将标准错误和标准输出都重定向到日志文件。在HPUX中可使用以下选项将stderrstdout重定向到单个文件:Xverbosegc:file=tmpgc$$out其中$$可以映射到Java进程的进程ID(PID)。因为输出中包括运行垃圾收集时的时间戳所以可推断出进行垃圾收集的频率。,分析下列数据点:,多长时间进行一次垃圾收集,在weblogiclog文件中比较垃圾收集的时间戳。,进行垃圾收集花费了多长时间,完全垃圾收集耗时不应超过到秒。,平均内存占用量为多少,换句话说每当完全垃圾收集执行完毕后堆占用多少内存,如果堆始终占用则可以将堆大小设置得更小些。,检查新一代堆大小(Sun)或温床大小(BEAJrockit)。,对于BEAJrockit:请参阅BEAJRockitJVM堆大小选项。,对于Sun:请参阅JavaHotSpotVM堆大小选项。,确保堆大小不超过系统中可用RAM的大小。在不会导致系统向磁盘“交换”页面的前提下使用尽可能大的堆大小。系统中可用RAM的大小取决于硬件配置以及在计算机中运行进程所需的内存量。确定系统中的可用RAM量时可求助于系统管理员。,如果发现系统收集垃圾所耗费的时间太长(分配的虚拟内存已超过RAM的处理能力)请减小堆大小。通常应将可用RAM(未被操作系统或其他进程占用)的用于JVM。,如果发现还有大量的可用RAM则在计算机中运行更多WebLogicServer实例。记住调整堆大小的目的是将JVM进行垃圾收集所耗费的时间缩到最短同时将WebLogicServer在某给定时间内可以处理的客户端数增至最大。注JVM供应商可能会提供用于打印详尽的垃圾收集报告的其他选项。例如可在关闭程意序时使用BEAJRockitJVMXgcreport选项打印详尽的垃圾收集报告请参阅“。:指定堆大小值可供JVM使用的Java堆大小对系统性能具有较大影响。本部分介绍用于定义堆大小值的命令行选项。每当启动WebLogicServer实例时均需指定Java堆大小值。在java命令行中或通过修改随WebLogic分发提供的示例启动脚本(用于启动WebLogicServer)中的默认值均可执行上述操作。,堆大小调整提示,BEAJRockitJVM堆大小选项,JavaHotSpotVM堆大小选项堆大小调整提示以下部分提供了调整VM堆大小的一般准则:,堆大小应设置为一个适当的值从而使VM使用的最大内存量不超过可用物理RAM量。如果超过该值则OS会开始分页性能也会显著降低。VM使用的内存始终多于堆大小。除了堆大小设置还要分配内部VM功能、VM之外的本地库和永久代内存(仅适用于SunVM:存储类和方法所需的内存)所需的内存。,使用分代式垃圾收集方案时温床大小不应超过Java堆总大小的一半。通常情况下堆大小的到就已足够。,在生产环境中将最小堆大小和最大堆大小设置为同一值可以避免浪费用于时常调整堆大小所需的VM资源。这也适用于新一代堆大小(Sun)或温床大小(BEAJrockit)。BEAJRockitJVM堆大小选项虽然BEAJRockit可以自动进行试探性堆大小调整但这并不是所有应用程序的最佳选择。大多数情况下最佳性能是通过调整每种应用程序的VM实现的方法是调整表中所示的堆大小选项。表BEAJRockit选项注释JVM堆大小选项任务最好尝试将温床设置得尽可能大同时还要使垃圾收集暂停时间缩短至可以接受的程度。应用程序创Xns设置温床建大量临时对象时这尤其重要。温床的最大大小不能超过最大堆大小的。BEA建议将最小堆大小(Xms)与最大堆大小Xms设置最小堆大小(Xmx)设置为相同的值以便将垃圾收集的消耗降至最低。如果与活动数据量相比最大堆大小值设置得较低Xmx设置最大堆大小则会因强制进行频繁垃圾收集而降低性能。Xgc:设置垃圾收集parallelXXaggres这样瓶颈检测器会在开始时以较高的频率运行尽早在运行Java应用程sive:memo然后逐渐降低频率。此选项还可以指示BEA序时执行自适应优化。ryJRockit主动使用可用内存。例如从java命令行启动WebLogicServer实例时可使用以下命令指定BEAJRockitVM堆大小值:$javaXnsmXmsmXmxm这些值的默认大小的度量单位是字节。该值后附加字母“k”或“K”表示KB附加“m”或“M”表示MB附加“g”或“G”表示GB。上例将MB内存分配给温床堆大小将MB内存分配给运行在JVM中的WebLogicServer实例的最小和最大堆大小。有关针对WebLogic的JRockitJVM设置适当的堆大小的详细信息请参阅TuningtheJRockitJVM。其他BEAJRockitVM选项BEA提供可以提高BEAJRockitVM性能的其他命令行选项。有关详细信息请参阅。JavaHotSpotVM堆大小选项通过分别调整每个应用程序可以实现最佳性能。但是在启动WebLogicServer时配置表中列出的JavaHotSpotVM堆大小选项可以提高大多数应用程序的性能。这些选项因体系结构和操作系统而异。有关平台特定的JVM调整选项请参阅供应商提供的文档。表Java堆大选项注释小选项任务将XX:NewSize的大小设置为堆大小的四分之一这是一条通用规则。如果存在大量短期对象则增大此选设置新一代项的值。XX:NewSize堆大小在增加处理器的同时一定要增加新一代堆大小。内存分配可以并行进行但垃圾收集不可并行进行。设置最大新XX:MaxNewSize设置新一代堆大小的上限。一代堆大小新一代区域分为三个子区:Eden和两个大小相等的生存空间。XX:SurvivorRati设置新堆大o小比率配置Eden生存空间大小的比率。尝试将此值设置为然后监视垃圾收集情况。将最小堆大小(Xms)与最大堆大小(Xmx)设置为设置最小堆Xms相同的值以便将垃圾收集的消耗降至最低这是一条大小通用规则。设置最大堆Xmx设置堆大小的上限。大小XX:UseISM设置大堆和请参阅XX:AggressiveH私有共享内存例如从java命令行启动WebLogicServer实例时可使用以下命令指定HotSpotVM堆大小值:$javaXX:NewSize=mXX:MaxNewSize=mXX:SurvivorRatio=XmsmXmxm这些值的默认大小的度量单位是字节。该值后附加字母“k”或“K”表示KB附加“m”或“M”表示MB附加“g”或“G”表示GB。上例将MB内存分配给新一代堆大小和最大新一代堆大小将MB内存分配给运行在JVM中的WebLogicServer实例的最小和最大堆大小。其他JavaHotSpotVM选项Sun提供了可以提高VM性能的其他标准和非标准命令行选项。使用这些选项的方式取决于应用程序的编码方式。对客户端和服务器JVM进行测试以确定更适用于特定应用程序的选项。SunMicrosystems的JavaHotSpotVMOptions文档提供有关可以影响JavaHotSpot虚拟机性能特征的命令行选项和环境变量的信息。有关HotSpotVM选项的其他示例请参阅:,StandardOptionsforWindows(Win)VMs,StandardOptionsforSolarisVMs,StandardOptionsforLinuxVMsSunMicrosystems的JavaVirtualMachine文档详细论述了JSEJava虚拟机的客户端和服务器实现。自动对内存不足情况进行日志记录通过WebLogicServer能够自动记录由服务器检测到的内存不足情况。WebLogicServer通过在某段时间间隔内对可用内存进行一定次数的采样来检测内存不足。在每个时间间隔结束时服务器都会记录平均可用内存并将其与下一时间间隔中获得的平均可用内存相比较。如果在任何取样间隔之后平均值下降了用户配置的量服务器将在日志文件中记录内存不足的警告消息并将服务器运行状况设置为“警告”。请参阅“管理控制台联机帮助”中的记录内存不足情况。手工请求垃圾收集您可能会发现有必要从管理控制台中手工请求完全垃圾收集。执行此操作时请记住垃圾收集的开销很大因为JVM常常检查堆中的所有活动对象。请参阅“管理控制台联机帮助”中的手工请求垃圾收集。请求线程堆栈您可能会发现有必要在调整应用程序时显示线程堆栈。请参阅“管理控制台联机帮助”中的显示线程堆栈。对IA平台启用旋转功能如果在多处理器系统中运行的是锁定争用激烈的大负载应用程序则可尝试通过使用旋转功能提升性能。通过此选项能够在进入休眠状态前对锁进行短时旋转。SunJDKSun已针对WindowsIA平台对JDK中的默认锁旋转行为进行了更改。对于JDK版默认情况下锁旋转处于禁用状态。对于此版本BEA已明确地在用于启动WebLogicServer的环境脚本中启用了旋转功能。要启用旋转功能请使用以下VM选项:XX:UseSpinningBEAJRockitBEAJRockitVM可以自动针对各种锁调整旋转功能从而无须设置此参数。注在BEAJRockitSDK版中旋转功能是通过设置XXenablefatspin选项进意行调整的。:

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/12

WebLogic Server 性能及调整-调整 Java 虚拟机

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利