修改 Java 内存设置

Edge for Private Cloud v4.19.01

根据您的流量和处理要求,您可能需要更改运行基于 Java 的私有云组件的节点的堆内存大小或类元数据大小。

本部分介绍了默认和建议的 Java 堆内存大小,以及更改默认值的过程。最后,本部分介绍了如何使用属性文件更改其他 JVM 设置。

默认和推荐的堆内存大小

下表列出了基于 Java 的私有云组件的默认和推荐 Java 堆内存大小:

组件 属性文件名 默认
堆大小
建议的
堆大小
运行时
Cassandra 无 自动配置1 自动配置1
消息处理器 message-processor.properties 512MB 3GB - 6GB2
路由器 router.properties 512MB 512MB
Analytics
Postgres 服务器 postgres-server.properties 512MB 512MB
Qpid 服务器 qpid-server.properties 512MB 2GB - 4GB
管理
管理服务器 management-server.properties 512MB 512MB
界面 ui.properties 512MB 512MB
OpenLDAP 无 原生应用3 原生应用3
ZooKeeper zookeeper.properties 2048 MB 2048 MB
备注

1 Cassandra 在启动时会动态计算最大堆大小。目前,此值为系统总内存的一半,上限为 8192MB。如需了解如何设置堆大小,请参阅更改堆内存大小。

2 对于消息处理器,Apigee 建议您将堆大小设置为 3GB 到 6GB 之间。只有在进行性能测试后,才能将堆大小增加到 6GB 以上。

如果在性能测试期间堆用量接近上限,请提高上限。如需了解如何设置堆大小,请参阅更改堆内存大小。

3 并非所有私有云组件都是用 Java 实现的。由于这些应用并非基于 Java,因此在主机平台上原生运行的应用没有可配置的 Java 堆大小,而是依赖于主机系统进行内存管理。

如需确定 Apigee 建议您为节点上基于 Java 的组件分配的总内存量,请将该节点上每个组件的上述值相加。例如,如果您的节点同时托管 Postgres 和 Qpid 服务器,Apigee 建议您的组合内存分配介于 2.5GB 和 4.5GB 之间。

如需查看所需硬件(例如 RAM)的列表,请参阅安装要求。

更改堆内存大小

如需更改堆内存设置,请修改组件的属性文件。例如,对于消息处理器,请修改 /opt/apigee/customer/application/message-processor.properties 文件。

如果 message-processor.properties 文件不存在,或者任何 Edge 组件的相应 .properties 文件不存在,请创建该文件,然后将该文件的所有权更改为“apigee”用户,如以下示例所示:

chown apigee:apigee /opt/apigee/customer/application/message-processor.properties

如果组件安装在多台机器上(例如消息处理器),则必须在托管该组件的所有机器上修改属性文件。

下表列出了您需要修改以更改堆大小的属性:

属性 说明
bin_setenv_min_mem

堆大小下限。默认值基于默认和推荐的堆内存大小中列出的值。

此设置对应于 Java -Xms 选项。

bin_setenv_max_mem

堆大小上限。默认值基于默认和推荐的堆内存大小中列出的值。

此设置对应于 Java -Xmx 选项。

bin_setenv_meta_space_size

默认类元数据大小。默认值设置为 bin_setenv_max_permsize 的值,默认为 128 MB。在消息处理器上,Apigee 建议您将此值设置为 256 MB 或 512 MB,具体取决于您的流量。

此设置对应于 Java -XX:MetaspaceSize 选项。

在节点上设置堆大小属性时,请使用“m”后缀表示兆字节,如以下示例所示:

bin_setenv_min_mem=4500m
bin_setenv_max_mem=4500m
bin_setenv_meta_space_size=1024m

在属性文件中设置值后,重启组件:

/opt/apigee/apigee-service/bin/apigee-service component restart

例如:

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

更改其他 JVM 属性

对于不受上述属性控制的 Java 设置,您还可以在任何 Edge 组件的相应属性文件中设置以下内容:

  • bin_setenv_ext_jvm_opts:设置未由其他属性指定的任何 Java 属性。例如:
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    不过,请勿使用 bin_setenv_ext_jvm_opts 设置 -Xms、-Xmx 或 -XX:MetaspaceSize,因为这些值由上面列出的属性控制。

如需了解有关为私有云组件配置内存的其他提示,请参阅 Edge 论坛上的这篇文章。