Rabbitmq-합리적인 성능 / 규모 기대


13

누군가가 rabbitmq ( "평균"하드웨어, fwiw)에 대한 합리적인 규모의 수치 / 제한을 지시하거나 성능에 대한 경험을 게시 할 수 있다면 감사 할 것입니다. 대기열 수, 대기열의 가입자 수, 팬 아웃 대기열에 수백 또는 수천 명의 청취자를 갖는 성능에 영향을 미치려고합니다. 고용량 환경에서 토끼를 실행했을 수있는 어려운 숫자입니다.


테스트하기는 매우 간단합니다. 특히 예상되는 수에 따라 일부 VM을 준비 할 예산이 있다는 점을 고려하면 매우 간단합니다. 정확한 사용 사례, 사용하고자하는 하드웨어에 따라 테스트 할 것을 적극 권장합니다.
Andrew M.

CloudAMQP 계획을 살펴보십시오 . 특정 하드웨어 구성에 대해 테스트 된 성능 수치입니다.
Reinstate Monica-M. Schröder

답변:


11

우선, 목록의 어떤 항목에 도달 할 수있는 배율 제한이 있는지, 그렇지 않은 항목이 있는지 이해해야합니다. 이 중 일부는 구현에 따라 다르므로 RabbitMQ in Action과 같은 내부를 읽는 데 도움이됩니다.

대기열 수는 RAM에 따라 제한됩니다. 반면에, 실행중인 메시지 수는 RabbitMQ가 자동으로 디스크에 페이징 아웃하기 때문에 RAM에 의해 제한되지 않습니다. 주의를 기울이지 않았을 때 개발 서버에서 실수로 거의 800 만 개의 메시지가 재생 된 적이 있습니다.

메시지 크기에는 제한이 없지만 단일 메시지의 크기가 512K를 초과하면 실제로 두 번 생각해야합니다. 메모리 캐시를 사용하여 응용 프로그램간에 큰 객체를 전달하고 memcache 키가 포함 된 작은 제어 메시지 만 보냈습니다. 그러나 정말로 원한다면 JAR 파일과 같은 거대한 JPEG 및 바이너리 객체를 메시지로 보낼 수 있습니다.

가입자 수는 하나 이상의 TCP 소켓이 열려 있어야하므로 가입자 수는 OS 제한입니다. 물론 대부분의 OS에서 조정할 수 있으므로 마일리지가 다양하므로 모델을 테스트해야합니다. JMETER를 사용하여 웹 응용 프로그램을로드 테스트하고 AMQP 플러그인 https://github.com/jlavallee/JMeter-Rabbit-AMQP를 발견 했지만 아직 사용하지 않았습니다. 어쨌든 이것은 하드웨어 (또는 VM 구성)가 합리적으로 처리 할 대상을 신속하게 알려주는 테스트입니다.

유일하게 어려운 것은 팬 아웃 대기열에서 많은 수의 소비자를 테스트하는 것입니다. 동일한 결과를 달성하는 와일드 카드 (*) 바인딩 키를 사용하여 구독하는 소비자와 함께 주제 교환을 사용하여 비교할 수도 있습니다. 소비자 프로세스를 실행하는 단일 서버로 인해 병목 현상이 발생하지 않도록 가능한 한 많은 컴퓨터에서이 테스트를 실행하십시오. Jmeter 플러그인이 보이는 PS는 소비자를 시뮬레이트하는 데 유용 할 수도 있습니다.


6

이것은 실제로 대답 할 수있는 질문이 아닙니다. 너무 많은 요인 ( "평균"하드웨어의 이동 정의, 대기열의 메시지 크기, 소비자 수 및 폴링 빈도 / 메시지 작업 속도 등)이 너무 많습니다. ). 실제로 환경을 벤치마킹해야합니다.

즉, RabbitMQ 성능에 대한 다음 토론 중 일부를 확인하십시오 (토끼에서 예상 할 수있는 것을 확인하기 위해 설치를 벤치마킹하는 방법에 대한 아이디어 포함).


1
많은 변수를 알고 있습니다. 그렇기 때문에 아이디어가 얼마나 흐릿한 지 이해하면서 "평균"하드웨어와 같은 것을 언급했습니다. 그럼에도 불구하고 나는 사람들의 경험에서 파생 된 일부 숫자가 유용 할 것이라고 생각했습니다. 참조 주셔서 감사합니다.
user21640

1
@ user21640 귀하의 질문에 퍼지를 추가하는 것은 하드웨어 만이 아닙니다. High-Frequency Trading은 귀하 또는 저와 "고용량"이라는 아이디어가 다르고 수용 가능한 성능에 대한 정의가 크게 다릅니다. 궁극적으로 그 경험을 문제있는 유일한 사람은 당신의 환경에서, 당신이며, 용량 계획에 대한 신뢰에 올 때 내 경험에 하나의 잘 계획된 지역의 벤치 마크는 외부 보고서의 가치가 수천입니다 - 당신의 작업 부하가 때 결코 알지 못할 병적 인 경우 : -)
voretaq7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.