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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章