RabbitMQ性能测试

单机测试

4 coro 8G CentOS7 虚拟机


16进程 8线程 100000/线程 3k/包 8消费者 持久化

包速率:9000pkt/s   数据速率:24M/s

16进程 8线程 100000/线程 1024k/包 8消费者 持久化

包速率:100pkt/s   数据速率:100M/s

集群测试

4 coro 8G CentOS7 虚拟机 X 2

16进程 8线程 100000/线程 3k/包 8消费者 持久化 普通模式 1写2读

包速率:9000pkt/s   数据速率:24M/s 基本同单机测试相仿

16进程 8线程 100000/线程 3k/包 8消费者 持久化 镜像模式 2写1读

速率频繁闪动,不稳定,数据速率最高26M/s

16进程 8线程 100000/线程 1024k/包 8消费者 持久化 镜像模式 2写1读

包速率:100pkt/s   数据速率:100M/s 
比上条测试稳定,镜像模式下两台服务器要同步数据,可能造成大量的彼此之间资源访问

包处理速率临界测试

在32k/pkt -> 16k/pkt 对应 3000pkt/s -> 6000pkt/s 下降时,

数据速度基本还能保持在100M/s左右
但已逐渐出现速率不稳定的情况,预估稳定的包处理速率范围应该在6000以内

在12k/pkt 对应 8500pkt/s 测试

数据速度基本还能保持在100M/s左右

在10k/pkt 对应 4000pkt/s 测试

数据速率只能达到80M/s左右

猜测:

当大于16k/pkt, 还未遇到处理瓶颈,而是遇到网络瓶颈。基本还能维持100M/s左右的数据速率
当小于12k/pkt, 遇到处理瓶颈,无法位置100M/s的数据速率

结论:

当Rabbitmq用于缓存小于12K的小包时, 最好生产者生产包的速率均值不要超过4000
当Rabbitmq用于缓存大于16K的大包时, 不会触及处理瓶颈



版权声明:本文为原创,欢迎转载,转载请注明出处,勿用于商业用途!