RabbitMQ N交换测试

时间:2012-08-09 15:09:20

标签: java testing rabbitmq benchmarking rabbitmq-exchange

我是RabbitMQ的新手,我正计划编写一些测试来了解RabbitMQ中的消息系统如何与所使用的交换数量进行比较。特别是我很想知道增加 N 交换会如何影响CPU,内存和IO的使用。

我注意到RabbitMQ附带了一个rabbitmqct1.bat应用程序,它有一个状态命令,可以输出系统相关信息。我遇到的问题是决定何时在消息传递周期中运行基准测试实用程序。

当我向交易所发布消息时,我应该运行吗?或者在将队列绑定到交换机时运行它?或者当消息从交换机推送到队列时?

干杯。

1 个答案:

答案 0 :(得分:1)

您可能会发现Web管理插件是查看系统当前性能的最简单方法。再一次,看看我在另一个问题中链接的Routing Topologies for Performance and Scalability with RabbitMQ

值得考虑测试中的变量:

  • 你的消息会持续存在吗? (请参阅delivery_mode = 2)这将增加您的磁盘IO
  • 你的消息有多大?这会对吞吐量产生很大的影响,如果它们很大(几个kb,那么你可能想要看一下压缩),就网络性能而言,还有内存(如果它们是持久的,还有磁盘IO)

值得注意的是,当没有队列消费者时,队列性能会下降,因此如果它正在稳步增长,那么性能将下降,RabbitMQ队列理想情况下总是处于(或接近)0消息

一些有用的链接:

RabbitMQ Performance Measurements, part 1

RabbitMQ Performance Measurements, part 2