0
点赞
收藏
分享

微信扫一扫

lavinmq & rabbitmq压测对比

环境准备

  • docker-compose 文件

version: '3'services:lavinmq:image: cloudamqp/lavinmq:1.0.0-beta.8volumes:- ./mq:/var/lib/lavinmqports:- 5672:5672- 15672:15672mq:image: rabbitmq:3.9.26-management-alpineenvironment:- RABBITMQ_DEFAULT_USER=guest- RABBITMQ_DEFAULT_PASS=guestports:- 5673:5672- 15673:15672

  • 异常问题
  • 压测工具
    使用lavinmqperf ,使用lavinmq 官方提供的

对比效果

  • lavinmq

./lavinmqperf throughput --uri=amqp://guest:guest@localhost

lavinmq & rabbitmq压测对比_docker

 

 

  • rabbitmq

./lavinmqperf throughput --uri=amqp://guest:guest@mq

lavinmq & rabbitmq压测对比_docker_02

 

 

问题

  • 压测现象
    lavinmq 处理上与直接rabbitmq 似乎不一样,首先会有一个过度期,然后比较平稳,但是总的结果是比rabbitmq 好不少
  • 服务异常停止

madvise: Operation not supported (IO::Error)from /tmp/src/lavinmq/mfile.cr:179:5 in 'punch_hole'from /usr/share/crystal/src/array.cr:1361:5 in '->'from /usr/share/crystal/src/benchmark.cr:148:5 in 'gc_log'from /tmp/src/lavinmq/vhost.cr:799:9 in '->'from /usr/share/crystal/src/fiber.cr:146:11 in 'run'from ???

  • 影响:会造成服务异常,应该是lavinmq 在处理异常服务停止,没有最好灾备,造成文件格式损坏,当时测试是基于docker for mac(应该是基于libc 的系统调用处理有问题),但是在实际linux docker 环境暂时没发现问题(似乎和系统内核有关系?)
  • 大量堆积文件问题
    目前在测试如果节点堆积了比较大的消息文件,会有服务起不来的风险(目前测试发现的),解决方法就是删除消息文件,同时在测试大量消息的稳定性时候,发现lavinmq
    并不是很稳定不如rabbitmq

说明

单节点lavinmq与默认配置的rabbitmq 进行压测结果从目前来看avinmq 的性能是不错的,但是稳定性似乎是有点风险,期待ga

参考资料

​​https://lavinmq.com/documentation/getting-started​​​
​​​https://github.com/cloudamqp/lavinmq/​​​
​​​https://github.com/cloudamqp/lavinmq/blob/main/src/lavinmq/mfile.cr#L197​​

举报

相关推荐

0 条评论