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, , , 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
RabbitMQ 흐름 제어 - 메모리 제어RabbitMQ 서버 시작 및 실행 rabbitmqctl set_vm_memory_high_watermark fraction 명령은 컴퓨터에 설치된 RAM(메모리) 총량을 측정합니다.기본적으로 RabbitMQ 서버가...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.