在消息处理器中启用 G1GC

您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
info

本文档介绍了如何在 Apigee Edge 的消息处理器上启用 Garbage First Garbage Collector (G1GC)。

Apigee Edge 的消息处理器在 Java 虚拟机 (JVM) 上运行,并使用默认的垃圾 回收器(串行或并行,具体取决于硬件和操作系统配置)。 在某些情况下,根据您的需求,您可能需要更改消息处理器上使用的垃圾回收器 类型。

G1GC 是 Java HotSpot VM 的低暂停服务器风格的分代垃圾回收器,它提高了消息处理器的整体性能。它通常专为 具有中型到大型数据集的应用而设计,在这些应用中,响应时间比整体吞吐量更重要 。例如:如果堆大小较大 (大于 3GB),您可以考虑使用 G1GC。

通常建议将另一个 JVM 参数 UseStringDeduplication 与 G1GC 一起设置。此参数通过使重复或相同的 String 值共享同一字符数组来优化 Java 堆内存用量。

准备工作

在消息处理器上启用 G1GC

本部分介绍了如何在 Edge 消息处理器上启用 G1GC。可以通过消息处理器组件上的 useG1GC 属性启用 G1GC 。默认情况下,此 属性在消息处理器上设置为 false。如需在消息处理器上配置任何属性,请按照如何配置 Edge中所述的语法使用令牌。

如需在消息处理器上启用 G1GC,请执行以下步骤:

  1. 找到 useG1GC 属性的令牌
  2. 在消息处理器上启用 G1GC

找到 useG1GC 属性的令牌

以下步骤介绍了如何找到 useG1GC 属性的令牌:

  1. 使用以下命令在消息处理器源目录 /opt/apigee/edge-message-processor/source 中搜索 useG1GC 属性:
    grep -ri "useG1GC" /opt/apigee/edge-message-processor/source
  2. 此命令的输出显示了消息处理器的属性 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:

  1. 在编辑器中打开消息处理器机器上的 /opt/apigee/customer/application/message-processor.properties 文件 。如果该文件尚不存在,请 创建该文件。例如:
    vi /opt/apigee/customer/application/message-processor.properties
  2. 将以下行添加到此文件:
    conf_system_useG1GC=true
  3. 保存所做的更改。
  4. 确保此属性文件归 apigee 用户所有。例如:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. 使用以下命令重启消息处理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. 如果您有多个消息处理器,请在所有消息处理器上重复这些步骤。

验证消息处理器上的 G1GC 配置

本部分介绍了如何验证消息处理器上的 G1GC 配置是否已成功修改。

即使您使用令牌 conf_system_useG1GC 在消息处理器上启用 G1GC,您也需要验证实际属性 useG1GC 是否已设置为新值,如下所示:

  1. /opt/apigee/edge-message-processor/conf 目录中搜索属性 useG1GC,并检查它是否已设置为新值。例如:
    grep -ri "useG1GC" /opt/apigee/edge-message-processor/conf
  2. 如果 G1GC 在消息处理器上成功启用,则之前的命令会 在 system.properties 文件中显示新值。

    在消息处理器上启用 G1GC 后,之前命令的示例结果如下所示:

    /opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true

    在示例输出中,请注意,属性 useG1GC 已在 system.properties 中设置为新值 true。这表示 G1GC 已在消息处理器上成功启用。

  3. 如果您仍然看到属性 useG1GC 的旧值,请验证您是否已正确按照在消息处理器上启用 G1GC 中列出的所有步骤操作。如果您遗漏了任何步骤,请再次正确重复所有步骤。
  4. 如果您仍然无法启用 G1GC,请与 Apigee Edge 支持团队联系。

后续步骤

在消息处理器上启用字符串重复数据删除功能