1. 程式人生 > >(十二)RabbitMQ消息隊列-性能測試

(十二)RabbitMQ消息隊列-性能測試

wchar ron bit path 速度 esxi5 tro marker 消息訂閱

原文:(十二)RabbitMQ消息隊列-性能測試

硬件配置

宿主機用的聯想3850X6的服務器四顆E7-4850v3的處理器,DDR4內存,兩塊1.25TB的pcie固態。在宿主機上使用的事esxi5.5的虛擬化平臺,在子系統中安裝RabbitMQ和測試腳本,RabbitMQ配置如下:
CPU:24核
內存:24GB
硬盤:24GB固態

確定哪些參數可能影響性能:進程數、是否持久化、是否ack確認以及交換機模式。其實交換機模式更多應該影響發布消息的性能,因為在消費消息時消息已經在隊列所以影響不大。為了避免之前的一些配置影響測試我新建了一臺RabbitMQ服務。

模式對性能的影響

首先我們看下不同交換機模式對新建交換機、新建隊列、綁定、發布消息等性能的影響。在測試腳本中我是for循環建立10萬交換機、循環建立10萬隊列、循環綁定10萬、發送10萬消息。有個疑問:消息發布的速度比我之前使用單獨發布消息的速度快很多,單機模式之前從來沒有超過5萬過。
技術分享圖片
以上測試數據都是持久化的情況下的測試結果,可以看出不同的模式對於新建交換機、新建隊列、綁定等操作性能影響不大,但是在direct模式下明顯消息發布的性能比其他模式強很多,並且消息發送到相同隊列比發送到不同隊列性能稍好。

持久化對消息性能的影響

實際生產中大部分的操作一般是消息的訂閱和發布,下面對消息訂閱和發布的性能進行詳細測試。發布100萬消息。

在消息持久化模式下:
發布:13888msg/s
訂閱:15384msg/s

在消息非持久化模式下:
發布:18867msg/s
訂閱:26315msg/s

RabbitMQ技術交流QQ群:327034977(添加時請備註RabbitMQ)

(十二)RabbitMQ消息隊列-性能測試