RabbitMQ, Тестирование производительности - Ошибка в издателе - PullRequest
0 голосов
/ 22 сентября 2018

Я использую библиотеку perftest для загрузки одного экземпляра rabbitMQ в системе с 4 ядрами и 8 ГБ.Я создал несколько тестовых примеров для запуска и мониторинга задержки.

Я успешно протестировал с 1 производителем 4000 потребителей.но когда я попытался увеличить количество производителей до 250, тестовый случай прерывается со следующей ошибкой

[perf-test-producer-99] DEBUG com.rabbitmq.perf.Producer - Error in 
publisher
java.lang.RuntimeException: java.lang.InterruptedException: sleep 
interrupted
at com.rabbitmq.perf.AgentBase.delay(AgentBase.java:52)
at com.rabbitmq.perf.Producer.run(Producer.java:283)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at com.rabbitmq.perf.AgentBase.delay(AgentBase.java:50)

, это тестовая спецификация, которую я пытаюсь запустить, меняя только производителей и потребителей

[{'name':      'consume',
'type':      'simple',
'uri':        'amqp://myrabbit:5672',
'params':    [{'time-limit': 60,
             'min-msg-size':512,
 'producer-msg-count': 130,
 'consumer-msg-count': 50,
             'producer-rate-limit':2,
             'consumer-rate-limit':2,
             'producer-count': 250,
             'consumer-count':250}]
 }
 ]

И я проверил top, и кажется, что он использует около 86% ОЗУ и около 380% ЦП в системе, где размещается rabbitMQ.Это может быть причиной, но я не понимаю, как будут работать мои 4000 потребителей, а не 250 производителей?Задержка также резко возрастает, когда я увеличиваю количество производителей даже на 1 (с 1 - 2 оно увеличивается с 5 миллисекунд до 7 секунд при том же количестве потребителей)

Также я вижу, что множество очередей находятся в состоянии blockingПользовательский интерфейс управления rabbitmq

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...