第 14 章 JVM


14.1. 关于 JVM

14.1.1. 关于 JVM 设置

对于受管域和独立服务器实例,Java 虚拟机(JVM)设置是不同的。在受管域里,JVM 设置是在 host.xmldomain.xml 配置文件里声明的,由负责启动和停止服务器进程的域控制器组件确定。而在独立服务器实例里,服务器的启动过程可以传入命令行参数。这可以通过命令行或管理控制台的 System Properties 屏幕里进行声明。
受管域

受管域的一个重要特征是可以定义多级别的 JVM 设置。您可以在主机、服务器组、服务器实例级别配置定义 JVM 设置。您可以用更专用的子元素覆盖父配置,这允许声明专有的服务器配置而无需在组或主机级别进行排除。这也允许其他级别继承父配置,直至在运行时传入或在配置文件里声明设置。

例 14.1. 域配置文件里的 JVM 设置

下面的例子展示了 domain.xml 配置文件里的服务器组的 JVM 声明。
<server-groups>
       <server-group name="main-server-group" profile="default">
           <jvm name="default">
               <heap size="64m" max-size="512m"/>
           </jvm>
           <socket-binding-group ref="standard-sockets"/>
       </server-group>
       <server-group name="other-server-group" profile="default">
           <jvm name="default">
               <heap size="64m" max-size="512m"/>
           </jvm>
           <socket-binding-group ref="standard-sockets"/>
       </server-group>
</server-groups>

Copy to Clipboard Toggle word wrap
在这个例子里,名为 main-server-group 的组声明了大小为 64MB 的堆,其最大堆大小为 512MB。属于这个组的任何服务器都将继承这些设置。你可以为整个组、为某个主机、或者单个服务器修改这些设置。

例 14.2. 主机配置文件里的域设置

下面的例子展示了 host.xml 配置文件里的服务器组的 JVM 声明。
<servers>
       <server name="server-one" group="main-server-group" auto-start="true">
           <jvm name="default"/>
       </server>
       <server name="server-two" group="main-server-group" auto-start="true">
           <jvm name="default">
               <heap size="64m" max-size="256m"/>
           </jvm>
           <socket-binding-group ref="standard-sockets" port-offset="150"/>
       </server>
       <server name="server-three" group="other-server-group" auto-start="false">
           <socket-binding-group ref="standard-sockets" port-offset="250"/>
       </server>
</servers>

Copy to Clipboard Toggle word wrap
在这个例子里,名为 server-two 的服务器属于 main-server-group 服务器组,它继承了 default JVM 组的设置。在前面的例子里,main-server-group 的主要堆大小是 512MB。通过声明更小的最大堆尺寸为 256MB,server-two 可以覆盖 domain.xml 设置来按需要调整性能。
运行时的独立服务器设置

独立服务器实例的 JVM 设置可以在启动服务器前通过设置 JAVA_OPTS 环境变量来声明。下面是在 Linux 命令行里设置 JAVA_OPTS 环境变量的例子:

[user@host bin]$ export JAVA_OPTS="-Xmx1024M"
Copy to Clipboard Toggle word wrap
相同的设置可以用于 Microsoft Windows 环境,如:
C:\> set JAVA_OPTS="Xmx1024M"
Copy to Clipboard Toggle word wrap
或者,可以将 JVM 设置添加到 EAP_HOME/bin 目录下的 standalone.conf 文件里,它包含了传入 JVM 的选项示例。

14.1.2. 在管理控制台里显示 JVM 状态

独立服务器或受管域的 Java 虚拟机(Java Virtual Machine,JVM)状态都可以在管理控制台里显示。控制台以 MB 单位显示了堆、线程的使用情况。虽然统计数据并非实时显示的,但您可以刷新控制台来显示 JVM 资源的最新状况。
JVM 状态包含下列数值。
Expand
表 14.1. JVM 状态属性
类型 描述
Max 用于内存管理的最大内存数量(字节)。
Used 已使用的内存数量(MB)。
Committed 提交给 JVM 使用的内存数量(字节)。
Init JVM 从操作系统请求的用于内存管理的初始内存数量(字节)。

过程 14.1. 在管理控制台里显示 JVM 状态

  • 显示 JVM 状态

    您可以查看独立服务器或受管域的 JVM 状态。
    • 显示独立服务器实例的 JVM 状态

      Runtime 屏幕的 Server Status 菜单里选择 JVM Status
    • 显示受管域的 JVM 状态

      在 Runtime 屏幕的 Domain Status 菜单里选择 JVM Status。
    • 受管域可以提供服务器组里的所有服务器实例的可视性,但它只允许您在服务器菜单里一次查看一个服务器。要查看服务器组里其他服务器的状态,请点击屏幕左上角的下拉框,选择要查看的主机和服务器,然后点击 Done 加载结果。
结果

显示服务器实例的 JVM 设置的状态。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat