Нагрузочное тестирование ironmq

Я провожу нагрузочное тестирование Ironmq, отправляя 500 сообщений и затем потребляя их.

Пока что я могу отправить 16 сообщений. сек и потреблять (читать / удалять) около 5 сообщений. сек. используя ironAWSEUWest на моей локальной машине. Я использую Java-клиент v. 0.0.18 SDK.

выход:

[l-1) thread #0 - dataset://foo] dataset://foo?produceDelay=5   INFO  Sent: 100 messages so far. Last group took: 6066 millis which is: 16,485 messages per second. average: 16,485
[l-1) thread #0 - dataset://foo] dataset://foo?produceDelay=5   INFO  Sent: 200 messages so far. Last group took: 6504 millis which is: 15,375 messages per second. average: 15,911
[l-1) thread #0 - dataset://foo] dataset://foo?produceDelay=5   INFO  Sent: 300 messages so far. Last group took: 6560 millis which is: 15,244 messages per second. average: 15,682
[thread #1 - ironmq://testqueue] dataset://foo?produceDelay=5   INFO  Received: 100 messages so far. Last group took: 17128 millis which is: 5,838 messages per second. average: 5,838
[l-1) thread #0 - dataset://foo] dataset://foo?produceDelay=5   INFO  Sent: 400 messages so far. Last group took: 6415 millis which is: 15,588 messages per second. average: 15,659
[l-1) thread #0 - dataset://foo] dataset://foo?produceDelay=5   INFO  Sent: 500 messages so far. Last group took: 7089 millis which is: 14,106 messages per second. average: 15,321
[thread #1 - ironmq://testqueue] dataset://foo?produceDelay=5   INFO  Received: 200 messages so far. Last group took: 17957 millis which is: 5,569 messages per second. average: 5,7
[thread #1 - ironmq://testqueue] dataset://foo?produceDelay=5   INFO  Received: 300 messages so far. Last group took: 18281 millis which is: 5,47 messages per second. average: 5,622
[thread #1 - ironmq://testqueue] dataset://foo?produceDelay=5   INFO  Received: 400 messages so far. Last group took: 18206 millis which is: 5,493 messages per second. average: 5,589
[thread #1 - ironmq://testqueue] dataset://foo?produceDelay=5   INFO  Received: 500 messages so far. Last group took: 18136 millis which is: 5,514 messages per second. average: 5,574 

Это ожидаемая пропускная способность?

Когда я увеличиваю загрузку до 1000 сообщений, я получаю единичные ошибки при чтении пакета из 100 сообщений за раз, а затем удаляю их по одному за раз.

[thread #1 - ironmq://testqueue] IronMQConsumer                 WARN  Error occurred during delete of object with messageid : 6033017857819101120. This exception is ignored.. Exchange[Message: <hello>229]. Caused by: [io.iron.ironmq.HTTPException - Message not found]
io.iron.ironmq.HTTPException: Message not found
at io.iron.ironmq.Client.singleRequest(Client.java:194)[ironmq-0.0.18.jar:]
at io.iron.ironmq.Client.request(Client.java:132)[ironmq-0.0.18.jar:]
at io.iron.ironmq.Client.delete(Client.java:105)[ironmq-0.0.18.jar:]
at io.iron.ironmq.Queue.deleteMessage(Queue.java:141)[ironmq-0.0.18.jar:]

Кажется, что метод удаления может потерпеть неудачу под нагрузкой.

Тест является частью компонента Camel для Ironmq, который можно найти здесь https://github.com/pax95/camel-ironmq

Тест загрузки здесь https://github.com/pax95/camel-ironmq/blob/master/src/test/java/org/apache/camel/component/ironmq/integrationtest/LoadTest.java

1 ответ

Задержка сети будет во многом зависеть от скорости передачи сообщений, которую вы можете достичь. За пределами постоянного тока AWS вы, как правило, видите дополнительные 50-75 мсек для каждой операции. Если вы используете параллельные потоки, вы получите большую пропускную способность. Кроме того, наши общедоступные кластеры иногда замедляются из-за нагрузки, поэтому клиенты нашего производственного плана переходят на Pro-кластеры, которые работают намного быстрее.

Тем не менее, мы получили очень большое обновление для всех наших кластеров, которое значительно повысит производительность и пропускную способность. Вы можете скачать устанавливаемую версию здесь: http://www.iron.io/mq-enterprise.

Чад

Другие вопросы по тегам