

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

# RabbitMQ용 Amazon MQ: 높은 메모리 사용량 경보
<a name="troubleshooting-action-required-codes-rabbitmq-memory-alarm"></a>

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

높은 메모리 사용량 경보를 발생한 RabbitMQ 브로커는 메시지를 게시하는 모든 클라이언트를 차단합니다. 브로커가 [재시작 루프](troubleshooting-rabbitmq.md#single-instance-broker-restart-loop)에 들어가거나, [대기열 동기화가 일시 중지](troubleshooting-rabbitmq.md#addressing-paused-queue-sync)되거나, 경보 진단 및 해결을 복잡하게 만드는 기타 문제가 발생할 수 있습니다.

높은 메모리 경보를 진단하고 해결하려면 먼저 RabbitMQ의 모든 [모범 사례](best-practices-rabbitmq.md)를 따른 후 다음 단계를 완료합니다.

**중요**  
`RabbitMQMemLimit`은 Amazon MQ에 의해 설정되며 각 호스트 인스턴스 유형에 사용할 수 있는 메모리를 고려하여 특별히 조정됩니다.
Amazon MQ는 높은 메모리 사용량 경보가 발생하는 브로커를 다시 시작하지 않으며, 브로커가 계속해서 경보를 울리는 한 [https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id-reboot.html](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id-reboot.html) API 작업에 대한 예외를 반환합니다

## 1단계: 높은 메모리 경보 진단
<a name="diagnosing-high-memory-alarm"></a>

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

### RabbitMQ 웹 콘솔을 사용하여 높은 메모리 사용량 경보 진단
<a name="diagnose-using-console"></a>

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

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

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

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

RabbitMQ가 웹 콘솔에서 제공하는 메모리 사용 정보는 어느 리소스가 메모리를 많이 소비하고 있고 높은 메모리 사용량 경보의 원인일지를 알아내는 데 도움이 될 수 있습니다. RabbitMQ 웹 콘솔을 통해 사용할 수 있는 메모리 사용량 세부 정보에 대한 자세한 내용은 RabbitMQ 서버 문서 웹 사이트의 [메모리 사용에 관한 추론](https://www.rabbitmq.com/memory-use.html)을 참조하세요.

### Amazon MQ 지표를 사용한 높은 메모리 사용량 경보 진단
<a name="diagnose-using-metrics"></a>

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


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

## 2단계: 높은 메모리 경보 해결 및 방지
<a name="address-prevent-high-memory-alarm"></a>

**참고**  
필요한 조치를 취한 후 RABBITMQ\$1MEMORY\$1ALARM 상태가 지워지는 데 최대 몇 시간이 걸릴 수 있습니다.

 일반적인 예방 방법으로 RabbitMQ에 대한 모든 [모범 사례](best-practices-rabbitmq.md)를 따릅니다. RabbitMQ의 높은 메모리 사용량 경보 발생을 해결하고 방지하려면 식별된 원인에 따라 아래와 같은 조치를 취하는 것이 좋습니다.


| 메모리 사용량이 많은 소스 | 해결을 위한 Amazon MQ 권장 사항 | 방지를 위한 Amazon MQ 권장 사항 | 
| --- | --- | --- | 
| 메시지 수 |  대기열에 게시된 메시지를 사용하거나, 대기열에서 메시지를 제거하거나, 브로커에서 대기열을 삭제합니다. |  지연 대기열을 활성화하고 [대기열 깊이 제한](rabbitmq-defaults-applying-policies.md)을 설정하거나 줄입니다. | 
| 대기열 수 | 대기열 수를 줄입니다. | [대기열 수 제한](rabbitmq-resource-limits-configuration.md)을 설정 또는 축소합니다. | 
| 연결 수 | [연결 수를 줄입니다](reducing-connections-and-channels.md). | [연결 수 제한](rabbitmq-resource-limits-configuration.md)을 설정 또는 축소합니다. | 
| 채널 수 | [채널 수를 줄입니다](reducing-connections-and-channels.md). | 클라이언트 애플리케이션에서 연결당 최대 채널 수를 설정합니다. | 
| 소비자 수 | 브로커에 연결된 소비자 수를 줄입니다. | 소규모 소비자에 [미리 가져오기 제한](rabbitmq-resource-limits-configuration.md)을 설정합니다. | 
| 메시지 게시 속도 | 게시자가 브로커에 보내는 메시지 빈도를 줄입니다. | [게시자 확인](best-practices-message-reliability.md#configure-confirmation-acknowledgement)을 켭니다. | 
| 클라이언트 연결 시도 속도 | 메시지를 게시 또는 소비하거나 브로커를 구성하기 위해 클라이언트가 브로커에 연결을 시도하는 빈도를 줄입니다. | 연결 시도 횟수와 빈도를 줄이려면 수명이 긴 연결을 사용합니다. | 

 브로커의 메모리 경보가 해결되면 호스트 인스턴스 유형을 추가 리소스가 있는 인스턴스로 업그레이드할 수 있습니다. 브로커 인스턴스 유형을 업데이트하는 방법에 대한 자세한 내용은 *Amazon MQ REST API 참조*의 [https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-model-updatebrokerinput](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-model-updatebrokerinput) 섹션을 참조하세요.

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