Rabbitmq memory resource limit alarm

Rabbitmq memory resource limit alarm

1. 에러상황

**********************************************************

=WARNING REPORT==== 08-Aug-2021::01:45:05 ===
memory resource limit alarm cleared on node 'rabbit@rabbitmq'

=WARNING REPORT==== 08-Aug-2021::01:45:05 ===
memory resource limit alarm cleared across the cluster

=WARNING REPORT==== 08-Aug-2021::01:45:06 ===
memory resource limit alarm set on node 'rabbit@rabbitmq'.

**********************************************************
*** Publishers will be blocked until this alarm clears ***
**********************************************************

 

2. 해당 에러나는 이유 (Memory Threshold)

RabbitMQ 서버는 시작할 때 컴퓨터에 설치된 RAM의 총량을 감지합니다.

기본적으로 RabbitMQ 가 RAM의 사용가능한 40% 이상을 넘어갈 때 memory alaram 이 발생하며, 모든 publishing 된 messages connections 를 block 합니다.

메모리 알람이 해제(e.g. due to the server paging messages to disk or delivering them to clients that consume and acknowledge the deliveries)되면 정상적인 서비스로 다시 시작됩니다.

기본 메모리의 임계값은 설치된 RAM의 40%로 설정됩니다.

이는 RabbitMQ 서버가 40% 이상을 사용하는 것을 제한하는 것은 아니며, 최악의 경우 사용되는 메모리 양의 두 배(기본적으로 RAM의 80%)를 사용할 수 있습니다.

따라서 OS SWAP 이나 page files 를 가능하게 하는 것이 권고됩니다.

 

3. Memory Threshold 설정파일 변경하는 방법

  • RAM 의 비율로 설정
    • 60%로 설정
    • vm_memory_high_watermark.relative = 0.6
  • RAM 의 고정값으로 설정
    • 6GB로 설정
    • vm_memory_high_watermark.absolute = 6GB
    • 1024MiB로 설정
    • vm_memory_high_watermark.absolute = 1024MiB

 

4. Rabbitmq docker 에 적용

docker exec -it rabbitmq rabbitmqctl set_vm_memory_high_watermark 0.7

 

참고
https://www.rabbitmq.com/memory.html
https://www.rabbitmq.com/configure.html#configuration-file
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=parkjy76&logNo=220826990472

댓글

Designed by JB FACTORY