Amazon MQ for RabbitMQ:磁盘限制警报
磁盘限制警报表明,由于添加新消息时未消耗大量消息,RabbitMQ 节点使用的磁盘量有所减少。当由 Amazon CloudWatch 指标 RabbitMQDiskFree
标识的代理的可用磁盘空间达到由 RabbitMQDiskFreeLimit
标识的磁盘限制时,RabbitMQ 将引发磁盘限制警报。RabbitMQDiskFreeLimit
由 Amazon MQ 设置,是在考虑了每种代理实例类型的可用磁盘空间的情况下定义的。
引发磁盘限制警报的 Amazon MQ for RabbitMQ 代理将变得不可用于所发布的新消息。在集群中运行 RabbitMQ 时,磁盘警报是集群范围的。如果一个节点变得低于限制,则所有其他节点都将阻止传入的消息。由于缺少磁盘空间,代理可能还会遇到其他使警报诊断和解决复杂化的问题。
Amazon MQ 在遇到磁盘警报时不会重新启动代理,并且将会在该代理继续引发警报时返回 RebootBroker
API 操作异常。
注意
您不能将代理从 mq.m5
实例类型降级为 mq.t3.micro
实例类型。如果您想降级,则必须删除代理并创建新的代理。
诊断和解决磁盘限制警报
默认情况下,Amazon MQ 将会为您的代理启用指标。您可以通过访问 Amazon CloudWatch 控制台或者通过使用 CloudWatch API 查看您的代理指标。MessageCount
是诊断 RabbitMQ 磁盘限制警报时的有用指标。消息在被使用或丢弃之前一直存储在内存中。高消息计数表示磁盘存储空间过度使用,而可能导致磁盘警报。
要诊断磁盘限制警报,请使用 Amazon MQ 管理控制台执行以下操作:
-
使用发布到队列的消息。
-
清除队列中的消息。
-
删除代理中的队列。
注意
在您采取必要的操作后,RABBITMQ_DISK_ALARM 状态可能需要几个小时才能清除。
为防止磁盘限制警报再次发生,您可以将主机实例类型升级为具有其他资源的实例。有关如何更新代理的实例类型的信息,请参阅《Amazon MQ REST API 参考》中的 UpdateBrokerInput
。