View a markdown version of this page

Amazon MQ 上的 RabbitMQ:磁碟限制警示 Amazon MQ - Amazon MQ

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon MQ 上的 RabbitMQ:磁碟限制警示 Amazon MQ

磁碟限制警示表示 RabbitMQ 節點使用的磁碟容量已減少,這是因為新增訊息時未消耗大量訊息。當代理程式的可用磁碟空間 (由 Amazon CloudWatch 指標 RabbitMQDiskFree 識別) 達到磁碟限制 (由 RabbitMQDiskFreeLimit 識別) 時,RabbitMQ 將發出磁碟限制警示。RabbitMQDiskFreeLimit 由 Amazon MQ 設定,並已根據每個代理程式執行個體類型的可用磁碟空間進行定義. 如需詳細資訊,請參閱記憶體和磁碟警示。

已引發磁碟限制警示的 Amazon MQ 代理程式上的 RabbitMQ 將無法發佈新訊息。 Amazon MQ 如果您在相同的連線上有發佈者和消費者,消費者也將無法接收訊息。在叢集中執行 RabbitMQ 時,磁碟警示是泛叢集範圍的。如果一個節點低於限制,所有其他節點將阻止傳入訊息。由於磁碟空間不足,您的代理程式還可能遇到其他問題,這些問題會讓警示的診斷和解決複雜化。

Amazon MQ 不會重新啟動遇到磁碟警示的代理程式,並且會傳回 RebootBroker API 操作的例外狀況 (只要代理程式繼續發出警示)。

注意

您不能將代理程式從 mq.m5 執行個體類型降級至 mq.t3.micro 執行個體類型。如果您希望降級,則必須刪除您的代理程式,並建立一個新的。

診斷和定址磁碟限制警示

預設情況下,Amazon MQ 為您的代理程式啟用指標。您可以透過存取 Amazon CloudWatch 主控台,或使用 CloudWatch API,檢視您的代理程式指標。在診斷 RabbitMQ 磁碟限制警示時,MessageCount 是一個實用的指標。訊息一直存放在記憶體中,直到將其取用或捨棄。較高的訊息計數表示磁碟儲存體警示的磁碟存放區過度使用,並可能導致磁碟警示。

若要診斷磁碟限制警示,請使用 Amazon MQ 管理主控台執行以下操作:

  • 建立新的連線以使用發佈至佇列的訊息。

  • 從佇列清除訊息。

  • 從您的代理程式中刪除佇列。

注意

採取所需的動作之後,RABBITMQ_DISK_ALARM 狀態最多可能需要數小時才會解除。

如要避免磁碟限制警示再度發生,您可以將您的主機執行個體類型升級到具有其他資源的執行個體。如需如何更新代理程式執行個體類型的詳細資訊,請參閱 Amazon MQ REST API 參考中的 UpdateBrokerInput。我們也建議您讓發佈者和消費者保持不同的連線。

透過增加可設定的儲存體來緩解磁碟限制警示

您也可以透過增加代理程式可設定的 EBS 儲存體大小來減輕磁碟限制警示。當您目前的 EBS 磁碟區低於執行個體類型允許的最大儲存體時,即可使用此選項。在繼續之前,請檢閱 Amazon MQ for RabbitMQ 的可設定儲存最佳實務 以了解支援的儲存範圍。

若要增加可設定的儲存體,請套用更新並重新啟動代理程式。由於代理程式因磁碟用量警示而處於關鍵動作所需的狀態,RabbitMQ 不會重新啟動。Amazon MQ 會套用增加的儲存體,且代理程式會在磁碟用量警示清除後結束所需的重要動作狀態。

注意

當代理程式因為磁碟用量警示而處於關鍵動作所需的狀態時,僅允許增加可設定的儲存體。在代理程式結束警示狀態之前,您無法變更代理程式的執行個體類型。

更新後,監控 RabbitMQDiskFree和 RabbitMQDiskFreeLimit Amazon CloudWatch 指標,以確認代理程式結束警示狀態。若要防止磁碟警示事件再次發生,請監控一段時間內的磁碟用量,並遵循 中的指引Amazon MQ for RabbitMQ 最佳實踐。如果需要額外的磁碟或其他資源容量,請考慮也升級代理程式的執行個體類型。