MQTT SERVER 效能測試報告
硬體環境:
記憶體4G
CPU4核
SERVER及埠:
apollo埠 61619
mosquitto:埠 1884
activeMQ埠:1883
emqtt 埠1885
測試方法
併發測試:192.168.6.156 上用 emqttd_benchmark 測試 192.168.6.157 上的各MQTT SERVER 併發量
訊息傳送測試:本地電腦 用php程式 使用一個客戶端連線情況下 傳送10萬訊息 到 192.168.6.157上的各MQTT SERVER。
測試時間:1個工作日。
預設 retain=0 非持久化訊息。
QoS0: 最多一次 伺服器與 客戶端 互動1次 。
QoS1 :至少一次 伺服器與 客戶端 互動2次 。
QoS2:洽好一次 伺服器與 客戶端 互動4次 。
測試結果:
mosquitto:
傳送訊息:QoS0: 18.57秒 cpu:10% , QoS1: 86.9秒 cpu 10% , QoS2: 157秒 cpu 10% , retain=1的各值和retain=0幾乎一樣 。
併發連線: 第1次:12000 第二次11000 第3次 12200 cpu佔用 25%左右
穩定性高
apollo :
傳送訊息:QoS0 18.37秒 cpu 30% ,QoS1 215秒cpu40% ,QoS2: 超時
併發連線 :第1次 11000 第2次 12200 第3次 15200 第4次 13900 cpu:45%
activeMQ :
傳送訊息:QoS0 18.41秒 cpu 50% , QoS1 超時
併發連線 :第1次 28200 第2次 28000 有2次測試後服務出現崩潰 cpu:70%
emqtt :
傳送訊息: QoS0 66秒 cpu: 80%, QoS1 204秒 cpu: 55%
併發連線 27600 第二次 19000 第3次28200 第4次28200 cpu 70%
穩定性高
—-
在測試中,發現 mosquitto無法利用多核,emqtt 磁碟io高,activeMQ佔記憶體比較高。
後來發現是benchmark程式的原因,無法高併發,可以多臺開benchmark 程式一起執行,那以上併發結果就要翻倍了
結論:emqtt,併發最高,但cpu佔用較高,穩定性高。訊息傳送較慢。
moqtuitto ,傳送訊息快,穩定性高,cpu佔用很少,併發比較高。
其它2個穩定性不太高。
以上資料僅供參考 。