1

我正在对发送 500 条消息并随后使用它们的 ironmq 进行一些负载测试。

到目前为止,我可以发送 16 条 msg 的 pr。秒并消耗(读取/删除)大约 5 个味精的公关。秒。在我的本地机器上使用 ironAWSEUWest。我使用 v. 0.0.18 java 客户端 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:]

似乎删除方法在负载下可能会失败。

该测试是 Ironmq 的 Camel 组件的一部分,可在此处找到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

4

1 回答 1

1

网络延迟与您可以实现的消息速率有很大关系。在 AWS DC 之外,您通常会看到每个操作需要额外的 50-75 毫秒。如果您使用并发线程,您将获得更大的吞吐量。此外,我们的公共集群有时会因负载而变慢,这就是我们的“生产”计划客户迁移到速度更快的 Pro 集群的原因。

也就是说,我们的所有集群都有一个非常大的更新,这将显着提高性能和吞吐量。您实际上可以在此处下载可安装版本:http ://www.iron.io/mq-enterprise 。

乍得

于 2014-07-06T21:57:02.870 回答