使用此页面来查看和更改应用程序服务器进程的 Java 虚拟机(JVM)配置设置。
要查看此管理控制台页面,请连接到管理控制台,然后浏览至“Java 虚拟机”面板。
对于 i5/OS 和分布式平台,单击服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name。然后,在“服务器基础结构”部分中,单击 Java 和进程管理 > 进程定义 > Java 虚拟机
应用程序服务器 | 单击服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name。然后,在“服务器基础结构”部分中,单击 Java 和进程管理 > 进程定义 > 控制 > Java 虚拟机 |
Deployment Manager | 单击系统管理 > Deployment Manager。然后,在“服务器基础结构”部分中,单击 Java 和进程管理 > 进程定义 > 控制 > Java 虚拟机 |
Node Agent | 单击系统管理 > Node Agent > node_agent。然后,在“服务器基础结构”部分中,单击 Java 和进程管理 > 进程定义 > Java 虚拟机 |
应用程序服务器 | 单击服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name。然后,在“服务器基础结构”部分中,单击 Java 和进程管理 > 进程定义 > Java 虚拟机 |
Deployment Manager | 单击系统管理 > Deployment Manager。然后,在“服务器基础结构”部分中,单击 Java 和进程管理 > 进程定义 > Java 虚拟机 |
Node Agent | 系统管理 > Node Agent > node_agent。然后,在“服务器基础结构”部分中,单击 Java 和进程管理 > 进程定义 > Java 虚拟机 |
指定 Java 虚拟机代码用来查找类的标准类路径。
如果需要将一个类路径添加至此字段,那么请将每个类路径条目输入到一个单独的表行中。您不必在每个条目的末尾添加冒号或分号。
数据类型 | 字符串 |
指定 JVM 代码的引导程序类和资源。只有支持引导程序类和资源的 JVM 指令才能使用该选项。
如果需要将一个类路径添加至此字段,那么请将每个类路径条目输入到一个表行中。您不需要在每个条目的结尾处添加冒号或分号。
如果需要将多个类路径添加至此字段,那么根据 JVM 所在的操作系统不同,可以使用冒号(:)或分号(;)将这些类路径分隔开。
如果需要将多个类路径添加至此字段,那么根据节点所在的操作系统不同,可以使用冒号(:)或分号(;)将这些类路径分隔开。
指定是否对类装入使用详细调试输出。缺省情况为不启用详细类装入。
如果启用了详细类装入,那么调试输出将被发送至其中一个本机进程日志。
数据类型 | 布尔值 |
缺省值 | false |
指定是否对垃圾回收使用详细调试输出。缺省情况为不启用详细垃圾回收。
如果启用了详细垃圾回收,那么调试输出将被发送至其中一个本机进程日志。
,
数据类型 | 布尔值 |
缺省值 | false |
在启用此字段的情况下,每当垃圾回收器运行时报告会写至输出流。此报告应让您知道 Java 垃圾回收进程的运行状况。
83.29/3724.32 * 100 = 2.236 percent
如果您进行垃圾回收所花的时间超过 5%,并且频繁进行垃圾回收,那么可能需要增加 Java 堆大小。
要确定已分配的堆是否在增大,在完成每个垃圾回收周期之后就查看仍未分配的堆所占的百分比,并验证此百分比是否未继续下降。如果可用空间所占的百分比继续下降,那么说明从一次垃圾回收到下一次垃圾回收之后,堆大小在逐渐增大。这种情况表示应用程序可能存在内存泄漏。
在 z/OS 平台上,还可以发出 MVS 控制台命令 modify display, jvmheap 来显示 JVM 堆信息。另外,您可检查服务器活动和时间间隔 SMF 记录。JVM 堆大小还可用于 PMI 并可使用 Tivoli Performance viewer 来监视。
指定是否对本机方法调用使用详细调试输出。缺省情况为不启用详细 JAVA 本机接口(JNI)活动。
数据类型 | 布尔值 |
缺省值 | false |
指定 JVM 代码可使用的初始堆大小(以兆字节计)。如果此字段保留为空白,那么将使用缺省值。
对于 z/OS 来说,控制器的缺省初始堆大小为 48 MB,而服务方的缺省初始堆大小为 128 MB。这些缺省值同时适用于 31 位和 64 位配置。
对于 i5/OS 和分布式平台,缺省初始堆大小为 50 MB。
增大此设置可改进启动性能。减少了进行垃圾回收的次数,并且性能提高了 10%。
继续增大 Java 堆大小以提高吞吐量,直到此堆变得太大以致于物理内存中无法容纳它为止。如果堆大小超过了可用物理内存量,并且发生了页面调度,那么性能将显著下降。
指定 JVM 代码可使用的最大堆大小(以兆字节计)。如果此字段保留为空白,那么将使用缺省值。
对于 z/OS 来说,缺省最大堆大小为 256 MB,此缺省值同时适用于 31 位和 64 位配置。
增大最大堆大小设置可提高启动性能。当您增大最大堆大小时,减少进行垃圾回收的次数,并且性能还将提高 10%。
通常,增大此设置将提高吞吐量,直到此堆变得太大以致于物理内存中无法容纳它为止。如果堆大小超过了可用物理内存量,并且发生了页面调度,那么性能将显著下降。因此,您为此属性指定的值允许堆包含在物理内存中十分重要。
为了防止发生页面调度,为此属性指定的值应能保证每个处理器至少有 256 MB 物理内存,而每个应用程序服务器至少有 512 MB 物理内存。如果因为页面调度导致处理器占用率很低,那么在可能的情况下,请增加可用内存而非最大堆大小。增大最大堆大小可能会降低性能而不是提高性能。
对于 i5/OS,当此属性设置为 0 时,仅当达到垃圾回收器阈值时才会运行垃圾回收器。当指定的值不为 0 时,每当堆大小达到指定的最大大小时就会运行垃圾回收器。但是,与正常的垃圾回收器不同,如果达到最大大小,那么所有应用程序线程都必须等到垃圾回收进程完成之后才能继续运行。这种情况可能会导致暂停时间过长。因此,将最大堆大小用作安全防护措施,以处理堆意外增大的情况,并且确保堆不会增大到大于可用内存量。在通常情况下,决不会达到所指定的最大堆大小。
指定是否使用 HProf 概要分析程序支持。要使用另一个概要分析程序,请使用 HProf 参数设置指定定制概要分析程序设置。缺省情况为不启用 HProf 概要分析程序支持。
如果您将运行 HProf 属性设置为 true,那么必须将命令行概要分析程序参数指定为 HProf 参数属性的值。
数据类型 | 布尔值 |
缺省值 | false |
指定要传递给启动应用程序服务器进程的 JVM 代码的命令行概要分析程序参数。当 HProf 概要分析程序支持处于启用状态时,可以指定这些参数。
仅当“运行 HProf”属性设置为 true 时才需要 HProf 参数。
指定是否以调试方式运行 JVM。缺省情况是不启用调试方式支持。
如果您将调试方式属性设置为 true,那么必须将命令行调试参数指定为调试参数属性的值。
数据类型 | 布尔值 |
缺省值 | false |
指定传递到启动应用程序服务器进程的 JVM 代码的命令行调试参数。当调试方式属性设置为 true 时,就可以指定这些参数。
如果对同一个节点上的多个应用程序服务器启用调试,那么请验证为地址参数指定的值不相同。地址参数定义用于调试的端口。如果将两个都启用了调试的服务器配置为使用同一个调试端口,那么这两个服务器可能无法正常启动。例如,可能使用调试参数 address=7777(这是调试地址参数的缺省值)同时配置了这两个服务器。
如果对多个应用程序服务器启用调试,那么请验证为地址参数指定的值不相同。地址参数定义用于调试的端口。如果将两个都启用了调试的服务器配置为使用同一个调试端口,那么这两个服务器可能无法正常启动。例如,可能使用调试参数 address=7777(这是调试地址参数的缺省值)同时配置了这两个服务器。
数据类型 | 字符串 |
单元 | Java 命令行参数 |
指定要传递给用于启动应用程序服务器进程的 Java 虚拟机代码的命令行参数。
如果要启用同步服务的热重新启动同步功能,那么请指定 hotRestartSync。此功能对同步服务指示安装运行于当 Deployment Manager 不处于活动状态时未进行配置更新的环境中。因此,当 Deployment Manager 或 Node Agent 服务器重新启动时,该服务不必执行完整存储库比较。启用此功能可以提高在 Deployment Manager 或 Node Agent 重新启动之后执行第一个同步操作的效率,对于包括混合发布单元、使用多个节点以及运行多个应用程序的安装来说更是如此。
如果您希望在装入类期间不验证类,那么可指定 -Xverify:none。使用 -Xverify:none 时将禁用 Java 类验证,从而可使启动时间缩短 10% 到 15%。但是,如果指定了此参数,那么将检测不到已损坏或无效的类数据。如果装入了已损坏的类数据,那么 JVM 的行为可能会发生异常,或者 JVM 可能会失败。
如果您想禁用对类进行垃圾回收,那么请指定 -Xnoclassgc。此参数会导致重用类的情况更多,还可使性能稍微有所提高。但是,仍在使用这些类所拥有的资源,即使未调用这些类也是如此。如果想要监视垃圾回收,那么可以使用 verbose:gc 配置设置。可以使用最终获得的输出来确定回收这些资源对性能造成的影响。如果反复对同一组类进行垃圾回收,那么您可能想禁用垃圾回收。缺省情况下,已启用对类进行垃圾回收。
如果希望一次使用多个垃圾回收线程,那么请指定 -Xgcthreads。这种垃圾回收技术称为并行垃圾回收。此参数仅对于 IBM Developer Kit 是有效的。
在通用 JVM 参数字段中输入此值时,还要输入正在您的机器上运行的处理器数目。例如,如果您的机器有 3 个处理器正在运行,那么应输入 -Xgcthreads 3。在具有 n 个处理器的节点上,缺省线程数是 n。
如果您想禁用堆压缩,那么请指定 -Xnocompactgc。堆压缩是成本最高的垃圾回收操作。如果您正在使用 IBM Developer Kit,那么应避免进行堆压缩。如果您禁用堆压缩,就消除了所有相关的开销。
指定 -Xgpolicy 以设置垃圾回收策略。此参数仅对于 IBM Developer Kit 是有效的。
如果您想使用并发标记来跟踪在堆变满之前从堆栈中启动的应用程序线程,那么请将此参数设置为 optavgpause。指定了此参数之后,垃圾回收器的暂停将变得统一,并且长时间的暂停也不再明显。但是,使用此策略将使吞吐量降低,这是因为线程可能必须执行额外的操作。
如果您想优化吞吐量,并且如果长时间暂停进行垃圾回收也不会产生问题,那么请将此参数设置为 optthruput。这是一个缺省参数,建议您设置此参数。
Java Platform, Standard Edition 6(Java SE 6)有生成垃圾回收功能,这允许分隔内存池以包含具有不同时效的对象。垃圾回收周期根据时效收集与其他对象彼此独立的对象。使用其他参数,您可以单独设置内存池的大小。为了获得更高性能,对于包含具有较短生命周期的对象的池,请设置该池的大小,以使该池中的对象的保留时间不超过一个垃圾回收周期。使用 NewSize 和 MaxNewSize 参数来指定新生成池的大小。
-XX:NewSize=lower_bound -XX:MaxNewSize=upper_bound -XX:SurvivorRatio=new_ratio_size
如果您想更改最小可用堆大小所占的百分比,那么请指定 -Xminf。如果可用空间低于指定量,那么堆增长。在启用了复位的方式下,此参数指定中间件和瞬态堆的可用空间所占的最小百分比。为此参数指定的值是一个在 0 到 1 之间的浮点数。缺省值为 .3(30%)。
Java SE 6 中的 Java 热点技术使用了一种自适应 JVM,该 JVM 中包含一些能够随着时间推移而优化字节码的执行方式的算法。JVM 以两种方式运行,分别为 -server 和 -client。在大多数情况下,应该使用 -server 方式,可使运行时性能在更长时间内保持更高。
如果您使用缺省值 -client 方式,那么服务器启动时间更短,并且内存占用量更少。但是,使用这种方式时,其他方面的性能将更低。除非服务器的启动时间与性能比较起来更重要,否则就应使用 -server 方式,这种方式可提高性能。您可以监视进程大小和服务器启动时间,以检查使用 -client 和 -server 这两种方式时的性能差异。
此参数仅适用于 z/OS。指定 -Dcom.ibm.CORBA.RequestTimeout= timeout_interval 参数,以设置对从客户机发送的请求作出响应时应遵循的超时时间段。此自变量使用 -D 选项。timeout_interval 是超时时间段(以秒计)。如果网络遇到极端等待时间,指定大的值,以防止超时。如果您指定过小的值,参与工作负载管理的应用程序服务器会在接收响应前超时。
仅当应用程序遇到超时问题时才指定此参数。没有为此参数提供建议值。
此参数仅适用于 z/OS。当刷新客户机的工作负载管理状态的时间间隔太短或太长时,指定 -Dcom.ibm.websphere.wlm.unusable.interval= timeout_interval 参数以更改 com.ibm.websphere.wlm.unusable.interval 属性的值。此属性指定工作负载管理客户机运行时在将服务器标记为不可用之后,在再次尝试与该服务器联系之前所等待的时间(以秒计)。此自变量使用 -D 选项。. 缺省值为 300 秒。如果属性设置为大的值,那么一段很长的时间内服务器都标记为不可用。这防止工作负载管理刷新协议刷新客户机的工作负载管理状态,直到这段时间结束后。
此参数仅适用于 z/OS。指定 -Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl=参数,以指示一旦不再需要缓冲区,就应该释放用于各个直接字节缓冲区的存储器。此参数的唯一受支持的值为 com.ibm.ws.buffermgmt.impl.ZOSWsByteBufferPoolManagerImpl。
-Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl=com.ibm.ws.buffermgmt.impl.ZOSWsByteBufferPoolManagerImpl
在 z/OS 平台上,如果您为 TCP 通道指定 zaioFreeInitialBuffers 定制属性,以便只要不再需要将新连接上所使用的初始读取缓冲区用于连接,该通道就会释放这些缓冲区,那么还需要指定此参数。
指定 -Xshareclasses:none 参数来对进程禁用共享类选项。Java SE 6 中提供的共享类选项允许在高速缓存中共享类。通过在高速缓存中共享类,可以缩短启动时间并减少内存使用量。进程(例如应用程序服务器、Node Agent 和 Deployment Manager)可以使用共享类选项。
如果使用此选项,那么应该在进程不在使用中时清除高速缓存。要清除高速缓存,请调用 app_server_root/bin/clearClassCache.bat/sh 实用程序,或者停止该进程,然后重新启动它。
数据类型 | 字符串 |
单元 | Java 命令行参数 |
指定 JVM 代码使用的可执行 JAR 文件的完整路径名。
数据类型 | 字符串 |
单元 | 路径名 |
指定是否禁用 JVM 代码的即时(JIT)编译器选项。
如果您禁用 JIT 编译器,吞吐量会显著地减少。因此,出于性能原因,始终启用 JIT。
数据类型 | 布尔值 |
缺省值 | false(启用 JIT) |
建议 | 启用 JIT |
指定给定操作系统的 JVM 设置。
当进程启动时,该进程会将为服务器指定的 JVM 设置用作操作系统的 JVM 设置。
当进程启动时,该进程会将为节点指定的 JVM 设置用作操作系统的 JVM 设置。
指定是否对垃圾回收使用详细调试输出。缺省情况为不启用详细垃圾回收。
如果启用了详细垃圾回收,那么调试输出将被发送至其中一个本机进程日志。
,
数据类型 | 布尔值 |
缺省值 | false |
在启用此字段的情况下,每当垃圾回收器运行时报告会写至输出流。此报告应让您知道 Java 垃圾回收进程的运行状况。
83.29/3724.32 * 100 = 2.236 percent
如果您进行垃圾回收所花的时间超过 5%,并且频繁进行垃圾回收,那么可能需要增加 Java 堆大小。
要确定已分配的堆是否在增大,在完成每个垃圾回收周期之后就查看仍未分配的堆所占的百分比,并验证此百分比是否未继续下降。如果可用空间所占的百分比继续下降,那么说明从一次垃圾回收到下一次垃圾回收之后,堆大小在逐渐增大。这种情况表示应用程序可能存在内存泄漏。
在 z/OS 平台上,还可以发出 MVS 控制台命令 modify display, jvmheap 来显示 JVM 堆信息。另外,您可检查服务器活动和时间间隔 SMF 记录。JVM 堆大小还可用于 PMI 并可使用 Tivoli Performance viewer 来监视。