RabbitMQ 메모리 및 디스크 경고

       

      ,Rabbit MQ           socket,    crash  ,      :

         

           

       ,          —                   ,           , rabbitmqctl                blocking  ,           ,      ,   blocked  ,          ,       。

     

   Rabbit MQ     ,             ,           ,           。

           ,            ,                   Channel          Channel     ,         ,    ,        ,             ,    ,                  。

        Running out of File Descriptors

                       ,         ,   “      ”     。

                    ,          。

    

        

        

              

    

Rabbit MQ          rabbitmqctl set_vm_memory_high_watermark fraction           RAM  ,     ,Rabbit MQ      40%   ,       ,           ,      (etc,   paging                   )       。

        40%,  ,      Rabbit MQ Server    40%,             ,       ,      ,Erlang             (RAM 80%),           SWAP Page Files。

32             2G,   64 (AMD  Interleaving)      256T,64  Windows   8T,  ,   64  ,32             2G。

      

                      ,            0.4

vm_memory_high_watermark.relative = 0.4

           :

[{rabbit, [{vm_memory_high_watermark, 0.4}]}].기본값 0.4는 설치된 RAM이나 사용 가능한 가상 주소 공간의 40%를 나타낸다. 32비트 기기에 4G 메모리를 설치하면 4G의 40%는 1.6G이지만 32비트 Windows에서는 프로세스당 2G를 제한하고 모든 한도값은 실제로는 2G의 40%(820M)이다.
  ,            RAM      ,           1073741824  (1024M)

vm_memory_high_watermark.absolute = 1073741824와 같은 예이지만 메모리 단위를 사용합니다
vm_memory_high_watermark.absolute = 1024MB 클래식 구성 형식 사용
[{rabbit, [{vm_memory_high_watermark, {absolute, 1073741824}}]}].클래식 형식 단위
[{rabbit, [{vm_memory_high_watermark, {absolute, "1024MiB"}}]}].만약 이 절대값이 설치된 RAM이나 사용 가능한 가상 주소 공간보다 크다면, 한도값은 설정된 위치가 비교적 작을 것이다.
     Rabbit MQ Server     ,     RABBITMQ_NODEHOME.log   。

=INFO REPORT==== 29-Oct-2009::15:43:27 ===Memory limit set to 2048MB.borker가 실행될 때도rabbitmqctl set 를 사용할 수 있습니다vm_memory_high_watermark fraction 명령 또는 rabbitmqctl setvm_memory_high_absolute memory_limit 명령, 메모리 단위도 사용할 수 있습니다. 명령은 브로커가 멈출 때까지 즉시 효력이 발생합니다. 브로커가 다시 시작해도 효력이 발생하면 해당하는 설정 파일도 변경됩니다. 이 명령을 실행하지만 한도값을 바꾸지 않는 상황에서 열교환이 있는 RAM 시스템에서 한도값이 바뀔 수 있습니다(메모리 총량이 바뀌었기 때문입니다).
       

     0,         ,         (           ,       ),  rabbitmqctl set_vm_memory_high_watermark 0.

       

  64      32 Erlang,         ,               :

=WARNING REPORT==== 19-Dec-2013::11:27:13 ===Only 2048MB of 12037MB memory usable due to limited address space.Crashes due to memory exhaustion are possible - seehttp://www.rabbitmq.com/memory.html#address-space 메모리 경고는 완벽하지 않다. 발표를 중지하면 메모리의 사용을 막을 수 있지만 상당한 가능성이 있다. 다른 일부 것들은 메모리의 사용을 계속 향상시킬 것이다. 보통 이런 상황이 발생할 때 물리적 메모리가 소모되고 운영체제가 교환되기 시작하지만 제한된 주소 공간을 사용하면 이 제한을 초과할 때 VM의 손실을 초래할 수 있다.
      , 64 OS   64 Erlang   。

  Paging  

 broker  high watermark       ,            page        ,           page out.

     , borker     50% (       0.4, 0.2       )       。       vm_memory_high_watermark_paging_ration       :

vm_memory_high_watermark_paging_ratio = 0.75vm_memory_high_watermark.relative = 0.4는 클래식 구성을 사용합니다.
[{rabbit, [{vm_memory_high_watermark_paging_ratio, 0.75},{vm_memory_high_watermark, 0.4}]}].위의 구성은 04.* 메모리에서 사용됩니다.0.75=0.3일 때paging을 시작하고 메모리를 0.4까지 사용할 때 발표자를 막습니다.vmmemory_high_watermark_paging_ratio 설정이 1보다 큽니다. 이 경우 대기열은 내용 페이지를 디스크에 저장하지 않습니다. 메모리 경고가 발생하면 생산자는 위에서 설명한 대로 막힙니다.
      

  Rabbit MQ Server        ,   RABBITMQ_NODENAME.log         ,       1GRAM  。

=WARNING REPORT==== 29-Oct-2009::17:23:44 ===Unknown total memory size for your OS {unix,magic_homegrown_os}. Assuming memory size is 1024MB 이 경우 vmmemory_high_watermark 설정값은 1G를 사용합니다. 기본값 0.4를 사용할 때 RabbitMQ의 메모리 한도값은 410M입니다. 따라서 메모리 사용이 410M을 초과할 때 생산자를 말살합니다. RabbitMQ가 플랫폼을 인식하지 못할 때 8GRAM이 있으면 한도값 설정 위치 0.3이 메모리가 3G를 초과할 때throttle 생산자를 원합니다.
    

             (   50M)  ,       ,          ,           ,            ,  Rabbit MQ  ,           ,           ,       ,     ,   page   ,                 ,           ,     page,                     ,  Rabbit MQ  (10s),                              (       )。

                ,     ,broker                  10S      ,              ,                , log file        :

=INFO REPORT==23-Jun-2012:14:52:41==Disk free limit set to 953MB 인식되지 않는 플랫폼에서는 모니터링이 비활성화되고 로그에 메시지가 인쇄됩니다.
=WARNING REPORT==23-Jun-2012::15:45:29===Disabling disk free space Monitoring 클러스터에서 Rabbit MQ를 실행할 때 디스크 경고도 클러스터 범위이며 한 노드가 제한치에 도달하면 모든 노드가 들어오는 메시지를 차단합니다.
Rabbit MQ             ,                  (           ,         ),    10S        ,         ,     ,           1 10 ,           。

               ,Rabbit MQ      ,        page   ,                 ,        。        page   ,                    ,       :

         

      limit   disk_free_limit   ,   50M          ,           1GB。

disk_free_limit.absolute = 1000000000 + 단위(KB, MB, GB)
disk_free_limit.absolute = 1GB는 클래식 형식 사용
[{rabbit, [{disk_free_limit, 1000000000}]}].대역 단위

disk_free_limit.relative = 1.0 클래식 구성
[{rabbit, [{disk_free_limit, {mem_relative, 1.0}}]}].이 설정은broker가 실행될 때 명령을 통해rabbitmqctl setdisk_free_limit 크기
  rabbitmq_disk_free_limit mem_relative     ,         ,  broker  ,          ,        。

  

RabbitMQ        ,             ,       。

        rabbitmqctl         flow  ,               ,       ,                    。

    ,                   ,       sysadmin,        ,         ,                  。

좋은 웹페이지 즐겨찾기