View a markdown version of this page

Amazon MQ 上的 RabbitMQ:磁盘限制警报 - Amazon MQ

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

Amazon MQ 上的 RabbitMQ:磁盘限制警报

磁盘限制警报表明,由于添加新消息时未消耗大量消息,RabbitMQ 节点使用的磁盘量有所减少。当代理的可用磁盘空间(由 Amazon CloudWatch 指标RabbitMQDiskFree标识)达到由标识的磁盘限制时,RabbitMQ 将发出磁盘限制警报。RabbitMQDiskFreeLimit 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。我们还建议让发布者和使用者使用不同的连接。

通过增加可配置存储空间来缓解磁盘限制警报

您还可以通过增加代理的可配置 EBS 存储大小来缓解磁盘限制警报。当您当前的 EBS 卷低于您的实例类型允许的最大存储空间时,此选项可用。在继续操作之前,适用于 RabbitMQ 的亚马逊 MQ 的可配置存储最佳实践请查看以了解支持的存储范围。

要增加可配置存储空间,请应用更新并重新启动代理。由于磁盘使用率警报,代理处于 “需要执行关键操作” 状态,因此 RabbitMQ 不会重新启动。Amazon MQ 会增加存储空间,磁盘使用率警报清除后,代理将退出 “需要关键操作” 状态。

注意

由于磁盘使用率警报,代理处于 “需要采取关键操作” 状态时,只允许增加可配置的存储空间。在代理退出警报状态之前,您无法更改代理的实例类型。

更新后,监控RabbitMQDiskFreeRabbitMQDiskFreeLimit Amazon CloudWatch 指标以确认经纪人退出警报状态。为防止磁盘警报事件再次发生,请监控一段时间内的磁盘使用情况,并按照中的Amazon MQ for RabbitMQ 最佳实践指导进行操作。如果需要额外的磁盘或其他资源容量,也可以考虑升级代理的实例类型。