

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon MQ 上的 ActiveMQ：代理内存不足警报
<a name="troubleshooting-action-required-codes-broker-out-of-memory"></a>

当代理因内存容量不足而进入重启循环时，Amazon MQ 上的 ActiveMQ 将引发 BROKER\$1OOM 警报。当代理处于重新启动循环（也称为反弹循环）时，代理会在很短的时间窗口内发起反复的恢复尝试。由于内存容量不足而无法完成启动的代理可能会进入重新启动循环，在此过程中，与代理的交互将会受到限制。

默认情况下，Amazon MQ 将会为您的代理启用指标。您可以通过访问 Amazon CloudWatch 控制台或使用 CloudWatch API 来查看您的经纪商指标。诊断 ActiveMQ BROKER\$1OOM 警报时，以下指标很有用：


| 亚马逊 MQ 指标 CloudWatch  | 内存使用过高的原因 | 
| --- | --- | 
| TotalMessageCount | 消息在被使用或丢弃之前一直存储在内存中。高消息计数可能指示资源过度使用，并且可能导致高内存警报。 | 
| HeapUsage | 代理当前使用的 ActiveMQ JVM 内存限制的百分比。较高的百分比表示代理正在使用大量资源，而可能导致 OOM 警报。 | 
| ConnectionCount | 客户端连接使用内存，并且过多同时连接可能会导致高内存警报。 | 
| CpuUtilization | 代理当前正在使用的已分配 EC2 计算单位的百分比。 | 
| TotalConsumerCount | 对于连接至代理的每个使用者，一组消息在传输至使用者之前将从存储加载到内存。大量使用者连接可能造成高内存使用，并导致高内存警报。 | 

为防止重新启动循环并避免 BROKER\$1OOM 警报，请确保快速使用消息。为此，您可以选择最有效的代理实例类型，还可以清除[死信队列](https://activemq.apache.org/message-redelivery-and-dlq-handling.html)以丢弃无法传送或过期的消息。您可以在 [Amazon MQ 上的 ActiveMQ 最佳实践](best-practices-activemq.md)中了解更多关于确保有效性能的信息。