2014-06-16 2 views
0

메시지 크기가 몇 MB로 증가 할 때 RabbitMQ의 성능을 측정하려고합니다. 그러나 32KB 메시지를 보낸 경우에도 서버에서 Resource temporarily unavilable 메시지가 표시됩니다. 로그 파일에 오류가 없으며 오류가 발생하는 메모리 제한이 없습니다 ... 어떻게이 문제를 디버깅합니까?RabbitMQ 메시지 크기 제한?

도움이 필요하면 EC2 T1.micro 인스턴스에서 실행하고 있습니다. 따라서 592MB RAM입니다.

+0

클라이언트 라이브러리를 사용하면이 메시지는 어떻게 얻을 수 있습니까? [Flow Control] (http://www.rabbitmq.com/memory .html) 제한, 관리 패널에서 무엇을 보여줍니다. – pinepain

+0

죄송합니다. 나는'rabbitpy'와 관련 버그를 사용합니다 : https://github.com/gmr/rabbitpy/issues/34 –

답변

0

는 링크 된 버그에 따르면, 사람이 최근에 (당신이 버그에 대한 링크를 떠난 후 모양) 메시지 크기가 > = 15821 바이트 때 그들이 안정적으로 버그를 재현 할 수있는 코멘트를 남겼습니다.

그 또한 사실에 해당하는지 확인하십시오. 즉, 해당 임계 값에서 재생산 할 수 있습니까? 그런 다음 해당 금액 미만인 경우 평가하여 위의 문제에 설명 된 버그를 피하십시오. 귀하의 필요에 맞는 충분한 크기. 그렇지 않다면 pika (https://github.com/pika/pika)을 시도해보고 더 큰 메시지와 함께 더 잘 작동하는지 확인하십시오 (해당 버그에 대한 다른 의견 중 하나는 pika이 큰 메시지 크기로 작동 함을 나타냅니다). 정확한 사용 사례에 따라 작동 할 수

또 다른 옵션은, 지적 종류의 키를 사용하면이 저장된 곳에서 데이터의 큰 덩어리 (Postgres, MongoDB를 가져올 수있는 rabbitmq 메시지 payload에 포함하는 것입니다, 등)을 사용하면 버그를 피할 수 있습니다. payload 내부의 모든 것을 실제로 캡슐화하려는 경우 이상적이지는 않지만 버그에 대한 적절한 해결 방법이 될 수 있습니다.

디버그 측면에서 보면 rabbitpy 버그가있는 것으로 보이므로 실제로 진행하려는 경우 실제 rabbitpy 라이브러리를 디버깅해야한다고 생각합니다. 가능하지만 시간 등으로 인해 실현 가능하지 않을 수도 있습니다.