即時通信RabbitMQ二-性能測試

性能測試

<p>測試環境:<br />
單機部署RabbitMQ<br />
CentOS6.4操作系統,4核CPU,8G內存<br />
測試中,Exchange、channel均聲明爲持久化。<br />
測試腳本已上傳github:https://github.com/MrKiven/rabbitmq-performance-test"
<h3>測試結果</h3>
<p>一個生產者一個消費者,消息持久化,開啓消費者ACK。橫軸爲時間(單位:秒),縱軸爲QPS<br />

RabbitMQ Performance Test

</a></p>
<p>一個生產者兩個消費者,消息持久化,消費者開啓ACK。<br />

RabbitMQ Performance Test

</a></p>
<p>一個生產者三個消費者,消息持久化,消費者開啓ACK。<br />

RabbitMQ Performance Test

</a></p>
<p>兩個生產者一個消費者,消息持久化,消費者開啓ACK。<br />

RabbitMQ Performance Test

</p>
<p>兩個生產者兩個消費者,消息持久化,消費者開啓ACK。<br />

RabbitMQ Performance Test

</p>
<p>兩個生產者三個消費者,消息持久化,消費者開啓ACK。<br />

RabbitMQ Performance Test

</p>
<p>一個生產者一個消費者,消息不持久化,消費者開啓ACK。<br />

RabbitMQ Performance Test

</p>
<p>一個生產者一個消費者,消息持久化,消費者不開啓ACK。<br />

RabbitMQ Performance Test

</p>
<p>一個生產者一個消費者,消息不持久化,消費者不開啓ACK。<br />

RabbitMQ Performance Test

</p>
<h3>服務器資源佔用情況</h3>
<p>服務器CPU使用情況<br />

RabbitMQ Performance Test

</p>
<p>磁盤讀寫情況<br />

RabbitMQ Performance Test

</p>
<p>Free memory情況<br />

RabbitMQ Performance Test

</p>
<p>網絡I/O情況<br />

RabbitMQ Performance Test

</p>
<h3>測試結論</h3>

 

1、 消費者線程數爲兩個時接收速度最快(此處建議一般的業務邏輯設置兩個消費者線程),如果處理比較複雜的邏輯或數據,建議多開啓消費者線程數 2、 生產者線程數爲二到三個時,發送速度最快,超過這個數後也不能提高發送速度 3、 因生產者發送的速度比消費者塊,因此建議可增加消費者線程數提高效率,個人建議爲:消費者=生產者*1.5 4、 消息大小對發/收速度影響較大,開啓ACK和持久化後1K以上的消息單對單QPS不大與3000 5、 ACK和持久化會大幅降低QPS 6、 服務器可靠性:大量消息收發測試下(百萬級別以上),無消息丟失情況發生 7、 生產者和消費者剛開始工作時速度最快,且速度不穩定,工作一段時間後速度趨近與平穩 8、 整個測試過程中服務器系統資源佔用穩定,目前暫無服務器瓶頸 9、 對於較大的數據(0.5K以上的),不建議使用一個消費者線程接收(速度比較慢),目前測試下來的結果來看,任何消息,設置兩個生產者和三個消費者時性能最佳。 10、開發者可根據上述測試結果結合實際業務來優化使用。



作者:ITCodeShare
鏈接:https://www.jianshu.com/p/d31ae9e3bfb6
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

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