本測試由《深圳市**智能科技股份有限公司》技術員:入雲鯤 作為第三方使用研究提供用例及數據
使用Coolpy7_benchmark測試客戶端測試一百萬級連接
# 下載測試工具
git clone https://github.com/Coolpy7/coolpy7_benchmark.git
# 進入bin文件夾
cd bin
# 啟動Coolpy7靜連接測試工具
# 參數url: Coolpy7服務端所在服務器ip地址,默認端口號:1883
# 參數workers: 需要創建的客戶端連接數量
# 參數cid: mqtt連接客戶端(ClientId)前綴,工具會自動以cid+WorkersId作為連接clientid值
# 參數topic: 連接成功後訂閱的topic主題(支持以%i取得workersid:例: mytopic%i)不進行訂閱測試填寫null字符串
# 參數keepalive: 連接ping時間間隔
# 參數clear: mqtt客戶端連接的clearsession屬性,當設置為true時重連時不能再次訂閱qos0以上的主題
# 以下例示建立連接到192.168.200.238所在的Coolpy7服務器端,並創建400萬個MQTT客戶端連接
./go_build_cp7_bench_sub_go_linux -workers=60000 -cid=ruyun -topic=null -qos=0 -url=tcp://192.168.4.97:1883 -keepalive=60000s -clear=true
Coopy7號稱32G服務器內存,即可達到千萬併發,以此為依據進行測試:
EMQ號稱8核32G內存,即可達到130萬併發連接,以此為依據進行測試:
EMQ測試依據二:
測試過程實錄
簡述:分別測試Coolpy、EMQ在服務器處理器為4核、內存大小分別在1G、2G、4G、6G下,所支持的最大併發連接數。
測試coolpy7
在服務器內存為1G條件下進行,測試
測試結果1G內存,支持5.8w併發連接。
在服務器內存為2G條件下進行,測試
測試結果2G內存,支持10.7w併發連接。
在服務器內存為4G條件下進行,測試
測試結果4G內存,支持26w併發連接。
在服務器內存為6G條件下進行,測試
測試結果6G內存,支持40.1w併發連接
在40.1w連接下,使用MQTT客戶端測試,coopy7的通信能力:
測試EMQ
1)在服務器內存為1G條件下進行,測試
測試結果1G內存,支持7.0097w併發連接。
2)在服務器內存為2G條件下進行,測試
測試結果2G內存,支持14.2294w併發連接。
3)在服務器內存為4G條件下進行,測試
測試結果4G內存,支持20.3173w併發連接。
4)在服務器內存為6G條件下進行,測試
測試結果6G內存,支持23.9017w併發連接。
測試結果彙總與分析
備註:由於測試過程中,所用電腦的內存為16G,並測試要求要MQTT服務器的內存要小於客戶端連接的總內存,故最大測試MQTT服務器內存只能為6G
結論:隨著MQTT內存的增大,支持的連接數Coolpy7優於EMQ差距越來越明顯。