Amazon MQ for RabbitMQ: Alarme de alta memória
O Amazon MQ para RabbitMQ gera um alarme de alta memória quando o uso da memória do agente, identificado pela métrica RabbitMQMemUsed do CloudWatch, excede o limite de memória, identificado por RabbitMQMemLimit.
Um agente do RabbitMQ que tiver gerado um alarme de alta memória bloqueará todos os clientes que estiverem publicando mensagens. O agente pode entrar em um loop de reinicialização, ter uma sincronização de filas pausada ou outros problemas que complicam o diagnóstico e a resolução do alarme.
Para diagnosticar e resolver o alarme de alta memória, primeiro siga todas as práticas recomendadas do RabbitMQ e, em seguida, conclua as etapas a seguir.
Importante
-
RabbitMQMemLimité definido pelo Amazon MQ e é ajustado especificamente considerando-se a memória disponível para cada tipo de instância de host. -
O Amazon MQ não reiniciará um agente com alarme de alta memória e retornará uma exceção para operações da API
RebootBroker, desde que o agente continue a gerar esse alarme.
Etapa 1: Diagnosticar o alarme de alta memória
Há duas maneiras de diagnosticar alarmes de alta memória no agente do Amazon MQ para RabbitMQ. Recomendamos que você verifique o console Web do RabbitMQ e as métricas do Amazon MQ no CloudWatch.
Diagnosticar alarme de alta memória usando-se o console da Web do RabbitMQ
O console da Web do RabbitMQ pode gerar e exibir informações detalhadas de uso de memória para cada nó. Para encontrar essas informações, faça o seguinte:
-
Faça login no Console de gerenciamento da AWS e abra o console da Web do RabbitMQ do seu agente.
-
No console do RabbitMQ, na página Overview (Visão geral), escolha o nome de um nó na lista Nodes (Nós).
-
Na página de detalhes do nó, escolha Memory details (Detalhes da memória) para expandir a seção e visualizar as informações de uso de memória do nó.
As informações de uso de memória fornecidas pelo RabbitMQ no console da Web podem ajudar você a determinar quais recursos podem estar consumindo muita memória e contribuindo para o alarme de alta memória. Para obter mais informações sobre os detalhes de uso da memória disponíveis no console da Web do RabbitMQ, consulte o tópico de Considerações sobre o uso da memória
Diagnosticar o alarme de alta memória usando-se métricas do Amazon MQ
O Amazon MQ habilita métricas para o seu agente por padrão. Você pode visualizar as métricas do agente acessando o console do CloudWatch ou usando a API do CloudWatch. As seguintes métricas são úteis ao diagnosticar o alarme de alta memória do RabbitMQ.
| Métrica do Amazon MQ CloudWatch | Motivo do alto uso de memória |
|---|---|
MessageCount |
Mensagens são armazenadas na memória até que sejam consumidas ou descartadas. Uma alta contagem de mensagens pode indicar o excesso de uso de recursos e pode resultar em um alarme de alta memória. |
QueueCount |
Filas são armazenadas na memória, e um grande número de filas pode resultar em um alarme de alta memória. |
ConnectionCount |
Conexões de clientes usam memória, e muitas conexões simultâneas podem resultar em um alarme de alta memória. |
ChannelCount |
De maneira semelhante a conexões, canais estabelecidos usando cada conexão também são armazenados na memória do nó, e um alto número de canais pode resultar em um alarme de alta memória. |
ConsumerCount |
Para cada consumidor conectado ao agente, um número definido de mensagens é carregado do armazenamento na memória antes de ser entregue ao consumidor. Um alto número de conexões de consumidor pode causar alto uso de memória e resultar em um alarme de alta memória. |
PublishRate |
A publicação de mensagens utiliza a memória do agente. Se a taxa na qual as mensagens são publicadas no agente for muito alta e ultrapassar significativamente a taxa na qual o agente entrega mensagens aos consumidores, o agente poderá gerar um alarme de alta memória. |
Etapa 2: Resolver e evitar o alarme de alta memória
nota
Depois que você realiza as ações necessárias, pode levar várias horas para que o status RABBITMQ_MEMORY_ALARM seja apagado.
Siga todas as práticas recomendadas do RabbitMQ como um método geral de prevenção. Para cada colaborador especificado identificado, convém seguir o conjunto de ações a seguir para abordar e evitar alarmes de alta memória do RabbitMQ.
| Origem do alto uso de memória | Recomendação do Amazon MQ para abordar | Recomendação do Amazon MQ para evitar |
|---|---|---|
| Número de mensagens enviadas | Consuma mensagens publicadas nas filas, limpe mensagens das filas ou exclua as filas do agente. | Ative filas lentas e defina ou reduza o limite de profundidade da fila. |
| Número de filas | Reduza o número dessas filas. | Defina ou reduza o limite de contagem de filas. |
| Número de conexões | Reduza o número dessas conexões. | Defina ou reduza o limite de contagem de conexões. |
| Número de canais | Reduza o número desses canais. | Defina um número máximo de canais por conexão em aplicações cliente. |
| Número de consumidores | Reduza o número de consumidores conectados ao agente. | Defina um pequeno limite de pré-busca de consumidores. |
| Taxa de publicação de mensagens | Reduza a taxa na qual os publicadores enviam mensagens ao agente. | Ative confirmações do publicador. |
| Taxa de tentativas de conexão do cliente | Reduza a frequência na qual os clientes tentam se conectar ao agente para publicar ou consumir mensagens ou configure o agente. | Use conexões de maior duração para reduzir o número e a frequência de tentativas de conexão. |
Depois que o alarme de alta memória do agente for resolvido, você poderá fazer upgrade do tipo de instância do host para uma instância com recursos adicionais. Para obter informações sobre como atualizar o tipo de instância do agente, consulte UpdateBrokerInput na Referência da API REST do Amazon MQ.
nota
Não é possível fazer downgrade de um agente de um tipo de instância mq.m5.x para um tipo de instância mq.t3.micro. Se quiser fazer downgrade, você deverá excluir o agente e criar outro.