RabbitMQ용 Amazon MQ: 높은 메모리 사용량 경보 - Amazon MQ

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

RabbitMQ용 Amazon MQ: 높은 메모리 사용량 경보

RabbitMQ용 Amazon MQ는 CloudWatch 지표 로 식별되는 브로커의 메모리 사용량이 로 식별되는 메모리 제한을 RabbitMQMemUsed초과하면 높은 메모리 경보를 발생시킵니다RabbitMQMemLimit. RabbitMQ

높은 메모리 경보를 발생시킨 RabbitMQ 브로커는 메시지를 게시하는 모든 클라이언트를 차단합니다. 브로커가 재시작 루프에 들어가거나, 대기열 동기화가 일시 중지되거나, 경보 진단 및 해결을 복잡하게 만드는 기타 문제가 발생할 수 있습니다.

높은 메모리 경보를 진단하고 해결하려면 먼저 RabbitMQ에 대한 모든 모범 사례를 따른 다음 다음 단계를 완료합니다.

중요
  • RabbitMQMemLimit는 Amazon MQ에서 설정하며 각 호스트 인스턴스 유형에 사용할 수 있는 메모리를 고려하여 특별히 조정됩니다.

  • Amazon MQ는 높은 메모리 사용량 경보가 발생하는 브로커를 다시 시작하지 않으며, 브로커가 계속해서 경보를 울리는 한 RebootBroker API 작업에 대한 예외를 반환합니다

1단계: 높은 메모리 경보 진단

RabbitMQ용 Amazon MQ 브로커에서 높은 메모리 경보를 진단하는 방법에는 두 가지가 있습니다. CloudWatch에서 RabbitMQ 웹 콘솔과 Amazon MQ 지표를 모두 확인하는 것이 좋습니다.

RabbitMQ 웹 콘솔을 사용하여 고용량 메모리 경보 진단

RabbitMQ 웹 콘솔은 각 노드에 대한 자세한 메모리 사용 정보를 생성하고 표시할 수 있습니다. 다음을 수행하여 이 정보를 확인할 수 있습니다.

  1. 에 로그인 AWS Management Console 하고 브로커의 RabbitMQ 웹 콘솔을 엽니다.

  2. RabbitMQ 콘솔에 있는 개요(Overview) 페이지의 노드(Nodes) 목록에서 노드 이름을 선택합니다.

  3. 노드 세부 정보 페이지에서 메모리 세부 정보(Memory details)를 선택하고 섹션을 확장하여 노드의 메모리 사용 정보를 볼 수 있습니다.

RabbitMQ가 웹 콘솔에서 제공하는 메모리 사용 정보는 어느 리소스가 메모리를 많이 소비하고 있고 높은 메모리 사용량 경보의 원인일지를 알아내는 데 도움이 될 수 있습니다. RabbitMQ 웹 콘솔을 통해 사용할 수 있는 메모리 사용량 세부 정보에 대한 자세한 내용은 RabbitMQ 서버 설명서 웹 사이트의 메모리 사용에 대한 추론을 참조하세요.

Amazon MQ 지표를 사용하여 높은 메모리 경보 진단

Amazon MQ는 기본적으로 브로커에 대한 지표를 활성화합니다. CloudWatch 콘솔에 액세스하거나 CloudWatch API를 사용하여 브로커 지표를 볼 수 있습니다. 다음 지표는 RabbitMQ 높은 메모리 사용량 경보를 진단할 때 유용합니다.

Amazon MQ CloudWatch 지표 메모리 사용량이 많은 이유
MessageCount 메시지는 사용되거나 폐기될 때까지 메모리에 저장됩니다. 메시지 수가 많으면 리소스가 과도하게 사용됨을 나타내며 높은 메모리 사용량 경보가 발생할 수 있습니다.
QueueCount 대기열은 메모리에 저장되며 대기열 수가 많으면 높은 메모리 사용량 경보가 발생할 수 있습니다.
ConnectionCount 클라이언트 연결은 메모리를 사용하며 동시 연결이 너무 많으면 높은 메모리 사용량 경보가 발생할 수 있습니다.
ChannelCount 연결과 마찬가지로, 각 연결을 사용하여 설정된 채널도 노드 메모리에 저장되며 채널 수가 많으면 높은 메모리 사용량 경보가 발생할 수 있습니다.
ConsumerCount 브로커에 연결된 모든 소비자에 대해 설정된 수의 메시지가 소비자에게 전달되기 전에 스토리지에서 메모리로 로드됩니다. 소비자 연결 수가 많을 경우 메모리 사용량이 증가하여 높은 메모리 사용량 경보가 발생할 수 있습니다.
PublishRate 메시지 게시는 브로커 메모리를 사용합니다. 브로커에 메시지가 게시되는 비율이 너무 높고 브로커가 소비자에게 메시지를 전달하는 비율을 크게 능가하는 경우, 브로커가 높은 메모리 사용량 경보를 발생시킬 수 있습니다.

2단계: 높은 메모리 경보 해결 및 방지

참고

필요한 조치를 취한 후 RABBITMQ_MEMORY_ALARM 상태가 지워지는 데 최대 몇 시간이 걸릴 수 있습니다.

일반적인 예방 방법으로 RabbitMQ의 모든 모범 사례를 따릅니다. 식별하는 각 특정 기여자에 대해 RabbitMQ 고용량 메모리 경보를 해결하고 방지하기 위해 다음과 같은 일련의 작업을 수행하는 것이 좋습니다.

메모리 사용량이 많은 소스 주소 지정을 위한 Amazon MQ 권장 사항 방지를 위한 Amazon MQ 권장 사항
메시지 수 대기열에 게시된 메시지를 사용하거나, 대기열에서 메시지를 제거하거나, 브로커에서 대기열을 삭제합니다. 지연 대기열을 활성화하고 대기열 깊이 제한을 설정하거나 줄입니다.
대기열 수 대기열 수를 줄입니다. 대기열 수 제한을 설정하거나 줄입니다.
연결 수 연결 수를 줄입니다. 연결 수 제한을 설정하거나 줄입니다.
채널 수 채널 수를 줄입니다. 클라이언트 애플리케이션에서 연결당 최대 채널 수를 설정합니다.
소비자 수 브로커에 연결된 소비자 수를 줄입니다. 소규모 소비자에 미리 가져오기 제한을 설정합니다.
메시지 게시 속도 게시자가 브로커에 보내는 메시지 빈도를 줄입니다. 게시자 확인을 켭니다.
클라이언트 연결 시도 속도 메시지를 게시 또는 소비하거나 브로커를 구성하기 위해 클라이언트가 브로커에 연결을 시도하는 빈도를 줄입니다. 연결 시도 횟수와 빈도를 줄이려면 수명이 긴 연결을 사용합니다.

브로커의 메모리 경보가 해결되면 호스트 인스턴스 유형을 추가 리소스가 있는 인스턴스로 업그레이드할 수 있습니다. 브로커의 인스턴스 유형을 업데이트하는 방법에 대한 자세한 내용은 Amazon MQ REST API 참조UpdateBrokerInput의 섹션을 참조하세요. Amazon MQ

참고

브로커를 mq.m5.x 인스턴스 유형에서 mq.t3.micro 인스턴스 유형으로 다운그레이드할 수 없습니다. 다운그레이드하려면 브로커를 삭제하고 새 브로커를 생성해야 합니다.