您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档。 信息
本文档介绍如何在 Apigee Edge 的消息处理器上启用 垃圾回收器 (G1GC)。
Apigee Edge 的消息处理器在 Java 虚拟机 (JVM) 上运行,并使用默认垃圾回收器 - 串行或并行,具体取决于硬件和操作系统配置。在某些情况下,根据您的需求,您可能需要更改在消息处理器上使用的垃圾回收器类型。
G1GC 是 Java HotSpot 虚拟机的低暂停、服务器式分代垃圾回收器,可提高消息处理器的整体性能。通常,该 API 专为具有中大型到大型数据集的应用而设计,在这些应用中,响应时间比总体吞吐量更重要。例如:如果堆大小较大(大于 3GB),您可以考虑使用 G1GC。
通常建议同时设置 G1GC 和另一个 JVM 参数 UseStringDeduplication
。此参数通过使重复或相同的字符串值共享相同的字符数组来优化 Java 堆内存使用情况。
准备工作
- 如果您不熟悉 Java 中的垃圾回收和不同类型的垃圾回收器,请参阅 Java 垃圾回收基础知识。
- 如果您不熟悉 G1GC,请参阅 G1 垃圾回收器使用入门。
- 如果您不熟悉如何在 Private Cloud 上配置 Edge 的属性,请参阅如何配置 Edge。
在消息处理器上启用 G1GC
本部分介绍如何在边缘消息处理器上启用 G1GC。您可以通过消息处理器组件上的属性 useG1GC
启用 G1GC。默认情况下,在消息处理器上,此属性会设置为 false
。如需配置消息处理器上的任何属性,请按照如何配置 Edge 中所述的语法使用令牌。
如需在消息处理器上启用 G1GC,请执行以下步骤:
找到 useG1GC 属性的令牌
以下步骤介绍了如何查找 useG1GC 属性的令牌:
- 使用以下命令在消息处理器源目录
/opt/apigee/edge-message-processor/source
中搜索useG1GC
属性:grep -ri "useG1GC" /opt/apigee/edge-message-processor/source
-
此命令的输出会显示消息处理器属性
useG1GC
的令牌,如下所示:/opt/apigee/edge-message-processor/source/conf/system.properties:useG1GC={T}conf_system_useG1GC{/T}
其中,
{T}{/T}
标记之间的字符串是您可以在消息处理器的.properties
文件中设置的令牌的名称。因此,属性useG1GC
的令牌如下所示:conf_system_useG1GC
在消息处理器上启用 G1GC
以下步骤介绍了如何在 Apigee 消息处理器上启用 G1GC:
-
使用编辑器打开消息处理器机器上的
/opt/apigee/customer/application/message-processor.properties
文件。如果该文件尚不存在,则创建该文件。例如:vi /opt/apigee/customer/application/message-processor.properties
-
将以下代码行添加到此文件中:
conf_system_useG1GC=true
- 保存您的更改。
-
请确保此属性文件归
apigee
用户所有。例如:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
使用以下命令重启消息处理器:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 如果您有多个消息处理器,请在所有消息处理器上重复执行这些步骤。
验证消息处理器上的 G1GC 配置
本部分介绍如何验证消息处理器上的 G1GC 配置是否已成功修改。
即使您使用令牌 conf_system_useG1GC
在消息处理器上启用 G1GC,您也需要验证实际属性 useG1GC
已使用新值设置,如下所示:
-
在
/opt/apigee/edge-message-processor/conf
目录中搜索属性useG1GC
,并检查它是否已使用新值进行设置。例如:grep -ri "useG1GC" /opt/apigee/edge-message-processor/conf
-
如果在消息处理器上成功启用了 G1GC,则上一条命令会在
system.properties
文件中显示新值。在消息处理器上启用 G1GC 后,上一个命令的示例结果如下所示:
/opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true
请注意,在示例输出中,属性
useG1GC
已使用system.properties
中的新值true
进行设置。这表示已在消息处理器上成功启用 G1GC。 -
如果您仍然看到属性
useG1GC
的旧值,请验证是否已正确按照在消息处理器上启用 G1GC 中所述的所有步骤进行操作。如果您遗漏了任何步骤,请再次正确重复所有步骤。 - 如果您仍无法启用 G1GC,请与 Apigee Edge 支持团队联系。