科技

Coolpy7與Emqtt基準效能測試對比

本測試由《深圳市**智慧科技股份有限公司》技術員:入雲鯤 作為第三方使用研究提供用例及資料

使用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差距越來越明顯。

Reference:科技日報

看更多!請加入我們的粉絲團

轉載請附文章網址

不可錯過的話題