Amazon MQ for RabbitMQ: Alarme de alta memória - Amazon MQ

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:

  1. Faça login no Console de gerenciamento da AWS e abra o console da Web do RabbitMQ do seu agente.

  2. No console do RabbitMQ, na página Overview (Visão geral), escolha o nome de um nó na lista Nodes (Nós).

  3. 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 no site de documentação do RabbitMQ Server.

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.