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

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Amazon MQ for RabbitMQ: Alarme de alta memória

O Amazon MQ para RabbitMQ emitirá um alarme de memória alta quando o uso de memória do agente, identificado por CloudWatch métricaRabbitMQMemUsed, exceder o limite de memória identificado por. RabbitMQMemLimit

Um corretor RabbitMQ que disparou um alarme de alta memória bloqueará todos os clientes que estão publicando mensagens. Seu corretor pode entrar em um ciclo de reinicialização, passar por uma pausa na sincronização de filas ou desenvolver 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 melhores práticas do RabbitMQ e, em seguida, conclua as etapas a seguir.

Importante
  • RabbitMQMemLimité definido pelo Amazon MQ e é ajustado especificamente considerando 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 com muita memória em seu agente Amazon MQ para RabbitMQ. Recomendamos que você verifique o console web do RabbitMQ e as métricas do Amazon MQ em. CloudWatch

Diagnostique o alarme de alta memória usando o console web 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 AWS Management Console e abra o console web RabbitMQ do seu corretor.

  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 do uso de memória disponíveis no console web do RabbitMQ, consulte Reasoning About Memory Use no site de documentação do RabbitMQ Server.

Diagnostique o alarme de alta memória usando as 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 seu corretor acessando o CloudWatch console ou usando a CloudWatch API. 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 melhores práticas do RabbitMQ como um método geral de prevenção. Para cada colaborador específico que você identificar, recomendamos o seguinte conjunto de ações para tratar e evitar alarmes de alta memória do RabbitMQ.

Fonte de alto uso de memória Recomendação do Amazon MQ para endereçamento Recomendação do Amazon MQ para evitar
Número de mensagens Consuma mensagens publicadas nas filas, limpe mensagens das filas ou exclua as filas do seu corretor. Ative filas preguiçosas 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 de conexões. Defina ou reduza o limite de contagem de conexões.
Número de canais Reduza o número de 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. Ativar confirmações do editor.
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 memória do seu agente for resolvido, você poderá atualizar seu tipo de instância host para uma instância com recursos adicionais. Para obter informações sobre como atualizar o tipo de instância do seu agente, consulte a UpdateBrokerInputReferência da API REST do Amazon MQ.

nota

Você não pode fazer o downgrade de um agente de um tipo de mq.m5.x instância para um tipo de mq.t3.micro instância. Para fazer o downgrade, você deve excluir seu corretor e criar um novo.