单机测试
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的大包时, 不会触及处理瓶颈