9.2. 为受管域配置 JVM 设置
在 JBoss EAP 受管域中,您可以在多个级别上定义 JVM 设置。您可以在特定主机上定义自定义 JVM 设置,然后将这些设置应用到服务器组或单个服务器实例。
默认情况下,服务器组和各个服务器将继承其父级的 JVM 设置,但您可以选择覆盖每个级别的 JVM 设置。
domain.conf
中的 JVM 设置应用到 JBoss EAP 主机控制器的 Java 进程,而不是由该主机控制器控制的独立 JBoss EAP 服务器实例。
9.2.1. 在主机控制器上定义 JVM 设置
您可以在主机控制器上定义 JVM 设置,并将这些设置应用到服务器组或个别服务器。JBoss EAP 附带 默认的
JVM 设置,但以下管理 CLI 命令演示了使用一些自定义 JVM 设置和选项创建名为 production_jvm
的新 JVM 设置:
/host=HOST_NAME/jvm=production_jvm:add( heap-size=2048m, max-heap-size=2048m, max-permgen-size=512m, stack-size=1024k, jvm-options=["-XX:-UseParallelGC"] )
您还可以通过选择 Runtime 选项卡,选择 Hosts,然后单击您要编辑的主机上的 JVM,在 JBoss EAP 管理控制台中创建和编辑 JVM。
这些设置存储在 host.xml
中的 < ;jvm
> 标签内。
9.2.2. 将 JVM 设置应用到服务器组
在创建服务器组时,您可以指定组中所有服务器将使用的 JVM 配置。以下管理 CLI 命令演示创建使用 上例 中显示的 production_jvm
JVM 设置的服务器组名称 groupA
。
/server-group=groupA:add(profile=default, socket-binding-group=standard-sockets) /server-group=groupA/jvm=production_jvm:add()
服务器组中的所有服务器都将继承 production_jvm
的 JVM 设置。
您还可以在服务器组级别上覆盖特定的 JVM 设置。例如,要设置不同的堆大小,您可以使用以下命令:
/server-group=groupA/jvm=production_jvm:write-attribute(name=heap-size,value="1024m")
应用上述命令后,服务器组 groupA
将继承 production_jvm
的 JVM 设置,但堆大小除外,其覆盖值为 1024m
。
您还可以通过选择 Runtime 选项卡,选择 Server Groups,再单击您要编辑的服务器组的 View,以编辑 JBoss EAP 管理控制台中的服务器组 JVM 设置。
服务器组的这些设置存储在 domain.xml
中。
9.2.3. 将 JVM 设置应用到单个服务器
默认情况下,单个 JBoss EAP 服务器实例将继承其所属的服务器组的 JVM 设置。但是,您可以选择使用来自主机控制器的另一个完整 JVM 设置定义覆盖继承的设置,或者选择覆盖特定的 JVM 设置。
例如,以下命令覆盖 上例中服务器组的 JVM 定义,并将 server
-one 的 JVM 设置设置为 默认的
JVM 定义:
/host=HOST_NAME/server-config=server-one/jvm=default:add()
另外,与服务器组类似,您可以在服务器级别上覆盖特定的 JVM 设置。例如,要设置不同的堆大小,您可以使用以下命令:
/host=HOST_NAME/server-config=server-one/jvm=default:write-attribute(name=heap-size,value="1024m")
您还可以通过选择 Runtime 选项卡,选择 Hosts,选择相关主机来编辑 JBoss EAP 管理控制台中的服务器 JVM 设置。然后选择相关的服务器,然后点您要编辑的服务器的 View。
单个服务器的这些设置存储在 host.xml
中。