1. 程式人生 > >(十二)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萬過。
RabbitMQ效能測試


以上測試資料都是持久化的情況下的測試結果,可以看出不同的模式對於新建交換機、新建佇列、繫結等操作效能影響不大,但是在direct模式下明顯訊息釋出的效能比其他模式強很多,並且訊息傳送到相同佇列比傳送到不同佇列效能稍好。

持久化對訊息效能的影響

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

在訊息持久化模式下:
釋出:13888msg/s
訂閱:15384msg/s

在訊息非持久化模式下:
釋出:18867msg/s
訂閱:26315msg/s

RabbitMQ技術交流QQ群:327034977(新增時請備註RabbitMQ)