三台开发测试机(一生产者,一消费者,一MQ服务器): Intel(R) Xeon(R) CPU E5620 @ 2.40GHz(16核),24G RAM, 普通磁盘。
Erlang虚拟机: R16B
RabbitMQ:2.8.2
Ping:0.220ms
Netperf: 941.43 (10^6bits/sec)
测试# |
Ack1 |
Ack2 |
Qos (prefetchcout = 200) |
Vhost数 |
包大小 |
QPS |
1 |
X |
X |
X |
1 |
100bytes |
33733 |
2 |
X |
X |
X |
1 |
1Kb |
32334 |
3 |
X |
X |
X |
2 |
1Kb |
54295 |
4 |
X |
X |
X |
3 |
1Kb |
68636 |
5 |
X |
X |
X |
3 |
100bytes |
74339 |
6 |
O |
X |
X |
1 |
100bytes |
14526 |
7 |
X |
O |
X |
1 |
100bytes |
14216 |
8 |
X |
X |
O |
1 |
100bytes |
30241 |
9 |
O |
O |
X |
1 |
100bytes |
11755 |
10 |
X |
O |
O |
1 |
100bytes |
11548 |
11 |
O |
O |
O |
1 |
100bytes |
9149 |
12 |
O |
O |
O |
2 |
100bytes |
17288 |
13 |
O |
O |
O |
3 |
100byte |
21748 |
说明:O 表示启用 X表示不启用 ,Ack1表示生产者与MQ之间的确认机制,Ack2为消费者与MQ之间的确认机制。所有测试都开启了消息持久化。
1.从测试#1 -#3 以及 #11-#13的对比可以看出增加vhost的数量可以显著的提高rabbimq服务器的性能。
2.从测试#1和#6的对比可以看出,开启Ack1会明显降低QPS,约降低了60%。
3.从测试#1 和#7的对比可以看出,开启Ack2也会明显降低QPS。
从测试#1 和#8 的对比可以看出,开启Qos会降低QPS。