在消息处理器中启用 G1GC

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

本文档介绍如何在 Apigee Edge 的消息处理器上启用 垃圾回收器 (G1GC)。

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

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

通常建议同时设置 G1GC 和另一个 JVM 参数 UseStringDeduplication。此参数通过使重复或相同的字符串值共享相同的字符数组来优化 Java 堆内存使用情况。

准备工作

在消息处理器上启用 G1GC

本部分介绍如何在边缘消息处理器上启用 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 支持团队联系。

下一步该做什么?

在消息处理器上启用字符串重复信息删除