+ 首页>>技能>>性能测试>>内容

技能RabbitMQ Performance Test54次围观

测试环境:
单机部署RabbitMQ
CentOS6.4操作系统,4核CPU,8G内存
测试中,Exchange、channel均声明为持久化。
测试脚本已上传github:https://github.com/MrKiven/rabbitmq-performance-test

测试结果

一个生产者一个消费者,消息持久化,开启消费者ACK。横轴为时间(单位:秒),纵轴为QPS
RabbitMQ Performance Test

一个生产者两个消费者,消息持久化,消费者开启ACK。
RabbitMQ Performance Test

一个生产者三个消费者,消息持久化,消费者开启ACK。
RabbitMQ Performance Test

两个生产者一个消费者,消息持久化,消费者开启ACK。
RabbitMQ Performance Test

两个生产者两个消费者,消息持久化,消费者开启ACK。
RabbitMQ Performance Test

两个生产者三个消费者,消息持久化,消费者开启ACK。
RabbitMQ Performance Test

一个生产者一个消费者,消息不持久化,消费者开启ACK。
RabbitMQ Performance Test

一个生产者一个消费者,消息持久化,消费者不开启ACK。
RabbitMQ Performance Test

一个生产者一个消费者,消息不持久化,消费者不开启ACK。
RabbitMQ Performance Test

服务器资源占用情况

服务器CPU使用情况
RabbitMQ Performance Test

磁盘读写情况
RabbitMQ Performance Test

Free memory情况
RabbitMQ Performance Test

网络I/O情况
RabbitMQ Performance Test

测试结论

  • 1、 消费者线程数为两个时接收速度最快(此处建议一般的业务逻辑设置两个消费者线程),如果处理比较复杂的逻辑或数据,建议多开启消费者线程数
  • 2、 生产者线程数为二到三个时,发送速度最快,超过这个数后也不能提高发送速度
  • 3、 因生产者发送的速度比消费者块,因此建议可增加消费者线程数提高效率,个人建议为:消费者=生产者*1.5
  • 4、 消息大小对发/收速度影响较大,开启ACK和持久化后1K以上的消息单对单QPS不大与3000
  • 5、 ACK和持久化会大幅降低QPS
  • 6、 服务器可靠性:大量消息收发测试下(百万级别以上),无消息丢失情况发生
  • 7、 生产者和消费者刚开始工作时速度最快,且速度不稳定,工作一段时间后速度趋近与平稳
  • 8、 整个测试过程中服务器系统资源占用稳定,目前暂无服务器瓶颈
  • 9、 对于较大的数据(0.5K以上的),不建议使用一个消费者线程接收(速度比较慢),目前测试下来的结果来看,任何消息,设置两个生产者和三个消费者时性能最佳。
  • 10、开发者可根据上述测试结果结合实际业务来优化使用。

+ 猜你喜欢...

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。

===== DiggerPlus 官方读者群 =====
DiggerPlus官方读者群(一)

+ 关于本文作者

我也很想让世界变得更美好,可是上帝却不开放源代码。

的专栏 | 专栏作者 | 访问Kiven的主页

+ 发表评论

Copyright © 2014 DiggerPlus. 88 queries in 2.823 seconds.
使用合作网站账号快速登录,更多精彩等着您: 开源中国