기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 웹 콘솔은 각 노드에 대한 자세한 메모리 사용 정보를 생성하고 표시할 수 있습니다. 다음을 수행하여 이 정보를 확인할 수 있습니다.
-
에 로그인 AWS Management Console 하고 브로커의 RabbitMQ 웹 콘솔을 엽니다.
-
RabbitMQ 콘솔에 있는 개요(Overview) 페이지의 노드(Nodes) 목록에서 노드 이름을 선택합니다.
-
노드 세부 정보 페이지에서 메모리 세부 정보(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
인스턴스 유형으로 다운그레이드할 수 없습니다. 다운그레이드하려면 브로커를 삭제하고 새 브로커를 생성해야 합니다.