Edge for Private Cloud 4.54.00 版附带 Qpid Broker-J 10.0.1。本
页介绍了
Edge for Private Cloud(使用基于 Java 的代理)的 apigee-qpidd 组件的内存和磁盘注意事项。
以下部分专门适用于 Apigee 的
Qpid 用例,并说明了如何使用 Apigee 的配置机制调整 Qpid。
Apigee 中的 Qpid
在 Apigee 中,Qpid 用于两个主要工作流:
- 数据分析
- 创收
在这两个工作流中,消息处理器都会生成消息,这些消息会 收集到批次中并推送到 Qpid。对于数据分析,消息由 Qpid 服务器读取; 对于创收,消息由评级服务器(管理服务器的一部分)读取。 读取后,批处理的消息将取消批处理并被提取。
建议的配置
以下部分介绍了 Qpid 的建议内存和磁盘配置。 这些配置基于数据分析或 创收的单个消息大小为 2KB。默认批次大小为 50,因此 Qpid 中的每条消息大约为 100 KB。Apigee 允许代理修改消息 (数据分析或创收)并向其中添加其他信息。在极端情况下,这可能会显著改变 Qpid 中单个消息的大小和整体批处理消息的大小。虽然以下部分中有关内存和磁盘的一般 建议即使在这种情况下也适用, 但您可能需要对 Qpid 进行额外的调整,以确保顺利运行。
内存
Qpid 代理使用两种类型的内存:堆外内存和堆内存。Qpid 将消息存储在 堆外内存中,并使用堆内存来处理自己的内部任务、将消息直接发送到队列和交换等。在大多数情况下,Apigee 建议您为 Qpid 代理保持 3:1 的堆外内存与堆内存比率。
堆外内存中的消息会持久保存在磁盘上。此外,如果 堆外内存的总利用率超过某个阈值,Qpid 会配置为将消息溢出到磁盘。
默认情况下,Apigee 会根据节点上的可用内存 计算 Qpid 代理的堆内存和堆外内存。Apigee 的脚本对 Qpid 代理的堆内存和 堆外内存的总和设置了 4 GB 的软限制。如果您想替换这些限制,可以使用以下两个配置 为 Qpid 的堆内存和堆外内存设置自己的值。
- 堆内存的配置:
bin_run-qpidd_qpid.run.jvm.max_vm_heap=1024m - 堆外内存的配置:
bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m
如需了解如何替换配置,请参阅 如何更改 Qpid 配置。
如需了解详情,请参阅 Apache Qpid 内存参考文档。
磁盘
Qpid 代理的数据目录为 $APIGEE_ROOT/data/apigee-qpidd。
Qpid 代理的日志存储在 $APIGEE_ROOT/var/log/apigee-qpidd 中。
托管数据目录的文件系统的性能是 代理整体性能的关键。为了获得最佳性能,请选择延迟较低且未被其他应用使用的设备。
Qpid 代理将其消息保留在数据目录中。默认情况下,代理会接受 消息,直到托管数据目录的文件系统达到 80% 的容量。您可以通过替换每个 Qpid 节点上以下示例中显示的配置来修改此 阈值。
bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60
在此示例中,当底层文件系统达到 60% 的容量时,代理会拒绝新消息。
如何更改 Qpid 配置
如需更改 Qpid 配置,请执行以下操作:
- 创建或修改以下文件:
$APIGEE_ROOT/customer/application/qpidd.properties
- 根据需要添加、移除或修改配置。
例如,如需将 Qpid 代理的最大堆内存更改为 6 GB,请在该文件中添加以下配置
替换:
bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
- 保存更改,并确保该文件归
apigee用户所有且可供其读取:chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
- 重启
qpidd进程:apigee-service apigee-qpidd restart