真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

單機千萬級MQTT消息測試分析

這篇文章主要講解了“單機千萬級MQTT消息測試分析”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“單機千萬級MQTT消息測試分析”吧!

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供惠濟網(wǎng)站建設、惠濟做網(wǎng)站、惠濟網(wǎng)站設計、惠濟網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、惠濟企業(yè)網(wǎng)站模板建站服務,十年惠濟做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

| Dell Inc.

型號  PowerEdge R430

CPU 8 CPUs x Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz

內(nèi)存  64 GB ``//測試客戶端機器內(nèi)存升級到96 GB

需要測試千萬級連接,確保測試工具獨占服務器,并硬件內(nèi)存大于或等于256GB,由于測試硬件資源受限,以400萬連接數(shù)據(jù)測試結(jié)果作為參考依據(jù),單機千萬連接完全有可能達到。當商業(yè)應用時需要考濾高連接的self-ddos問題,應該盡量設置更長的客戶端keepalive值。

服務端系統(tǒng)參數(shù)調(diào)優(yōu)(Linux)

修改文件/etc/sysctl.conf,配置網(wǎng)絡參數(shù)。

net.ipv4.tcp_wmem = 4096 87380 4161536

net.ipv4.tcp_rmem = 4096 87380 4161536

net.ipv4.tcp_mem = 786432 2097152 3145728

fs.file-max = 12000000 #一千兩百萬

|

執(zhí)行/sbin/sysctl -p即時生效。

echo 12000000 > /proc/sys/fs/nr_open #需root權(quán)限

/etc/systemd/system.conf 設置服務最大文件句柄數(shù):

DefaultLimitNOFILE=12000000

修改/etc/security/limits.conf文件

* hard nofile 12000000

* soft nofile 12000000

* soft nproc 12000000

* hard nproc 12000000

需重啟系統(tǒng)生效,服務器操作系統(tǒng)參數(shù)調(diào)優(yōu)完成。關(guān)于啟動CP7服務器端程序請參閱本章中的《程序安裝》小節(jié)

客戶端的參數(shù)調(diào)優(yōu)(Linux)

根據(jù)TCP/IP協(xié)議,由于端口是16位整數(shù),也就只能是0到 65535,而0到1023是預留端口,所以能分配的端口只是1024到65534,也就是64511個。一臺機器一個IP只能創(chuàng)建六萬多個長連接。 要想達到更多的客戶端連接,可以用更多的機器或者網(wǎng)卡,也可以使用虛擬IP來實現(xiàn),比如下面的命令增加了19個IP地址,其中一個給服務器用,其它18個給client,這樣可以產(chǎn)生18 * 60000 = 1080000個連接。本測試用例需要增加到一千萬或以上的足夠IP。

root@:~# ifconfig

eth0 Link encap:Ethernet HWaddr 00:16:3e:0b:2e:a0

inet addr:x.x.x.x Bcast:x.x.x.x Mask:255.255.240.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:4706185 errors:0 dropped:0 overruns:0 frame:0

TX packets:4705832 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:1005604068 (1.0 GB) TX bytes:5556912863 (5.5 GB)

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:65536 Metric:1

RX packets:5875416 errors:0 dropped:0 overruns:0 frame:0

TX packets:5875416 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1

RX bytes:3566710813 (3.5 GB) TX bytes:3566710813 (3.5 GB)

以上指令查看到網(wǎng)卡名稱為 eth0

ifconfig eth0:0 192.168.77.10 netmask 255.255.255.0 up

ifconfig eth0:1 192.168.77.11 netmask 255.255.255.0 up

ifconfig eth0:2 192.168.77.12 netmask 255.255.255.0 up

ifconfig eth0:3 192.168.77.13 netmask 255.255.255.0 up

ifconfig eth0:4 192.168.77.14 netmask 255.255.255.0 up

ifconfig eth0:5 192.168.77.15 netmask 255.255.255.0 up

ifconfig eth0:6 192.168.77.16 netmask 255.255.255.0 up

ifconfig eth0:7 192.168.77.17 netmask 255.255.255.0 up

ifconfig eth0:8 192.168.77.18 netmask 255.255.255.0 up

ifconfig eth0:9 192.168.77.19 netmask 255.255.255.0 up

以上指令操作增加虛擬IP,添加完成后通過 ifconfig 指令查看確認所有虛擬IP最已列出。

修改/etc/sysctl.conf文件:

fs.file-max = 12000000

fs.nr_open = 12000000

net.ipv4.ip_local_port_range = 1024 65535

執(zhí)行/sbin/sysctl -p即時生效。

echo 12000000 > /proc/sys/fs/nr_open #需root權(quán)限

_/etc/security/limits.conf_配置

* soft nofile 12000000

* hard nofile 12000000

* soft nproc 12000000

* hard nproc 12000000

使用Coolpy7_benchmark測試客戶端測試四百萬級連接

# 下載測試工具

git clone https:``//github.com/Coolpy7/coolpy7_benchmark.git

# 進入bin文件夾

cd bin

# 啟動Coolpy7靜連接測試工具

# 參數(shù)url: Coolpy7服務端所在服務器ip地址,默認端口號:1883

# 參數(shù)workers: 需要創(chuàng)建的客戶端連接數(shù)量

# 參數(shù)cid: mqtt連接客戶端(ClientId)前綴,工具會自動以cid+WorkersId作為連接clientid值

# 參數(shù)topic: 連接成功后訂閱的topic主題(支持以%i取得workersid:例: mytopic%i)不進行訂閱測試填寫null字符串

# 參數(shù)keepalive: 連接ping時間間隔

# 參數(shù)clear: mqtt客戶端連接的clearsession屬性,當設置為true時重連時不能再次訂閱qos0以上的主題

# 以下例示建立連接到192.168.200.238所在的Coolpy7服務器端,并創(chuàng)建400萬個MQTT客戶端連接

./go_build_cp7_bench_sub_go_linux -workers=4000000 -cid=tqy -topic=null -qos=0 -url=tcp:``//192.168.200.238:1883 -keepalive=60000s -clear=true

| 客戶端連接數(shù)

系統(tǒng)使用內(nèi)存

RES使用內(nèi)存

|

VIRT使用內(nèi)存

|

CPU使用

|

網(wǎng)絡(進)

|

網(wǎng)絡(出)

| |

100萬

|

4.5G

|

2633M

|

2789M

|

260/1600

|

2.8M

|

2M

| |

200萬

|

10.3G

|

4009M

|

4152M

|

277/1600

|

2.98M

|

2.15M

| |

300萬

|

14.7G

|

5517M

|

5682M

|

278/1600

|

3.05M

|

2.21M

| |

400萬

|

19.3G

7055M

7231M

270/1600

2.91M

2.18M

|

測試時需時刻關(guān)注服務器端網(wǎng)絡資源使用情況,測試數(shù)據(jù)顯示在高連接數(shù)下ping/pong狀態(tài)下已占用極大的網(wǎng)絡帶寬,需根據(jù)當前設備的硬件資源合理設置最大連接數(shù)量以保證系統(tǒng)的穩(wěn)定長期運行

相關(guān)測試截圖

單機千萬級MQTT消息測試分析

服務器端啟動并host于1883 TCP端口

單機千萬級MQTT消息測試分析

通過NLOAD工具監(jiān)測Coolpy7(連接時)網(wǎng)絡資源占用情況

使用Coolpy_benchmark工具測試連接400萬連接

從服務器端的硬件資源使用情況得出結(jié)論單機千萬級連接即可實現(xiàn),如閣下有相關(guān)硬件設備實測千萬級用例,請把測試結(jié)果告知Coolpy7官方。感謝!

  1. 測試工具開源地址:https://github.com/Coolpy7/coolpy7_benchmark

  2. 工具會以1000為單位打印連接信息

  3. 工具啟動后會一直創(chuàng)建參數(shù)指定的客戶端連接數(shù)

按應用場景測試

MQTT 是一個設計得非常出色的傳輸層協(xié)議,在移動消息、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)、智能硬件甚至能源勘探等領(lǐng)域有著廣泛的應用。1個字節(jié)報頭、2個字節(jié)心跳、消息 QoS 支持等設計,非常適合在低帶寬、不可靠網(wǎng)絡、嵌入式設備上應用。

不同的應用有不同的系統(tǒng)要求,用戶使用Coolpy7消息服務器前,可以按自己的應用場景進行測試,而不是簡單的連接壓力測試:

  1. Android 消息推送: 推送消息廣播測試。

  2. 移動即時消息應用: 消息收發(fā)確認測試。

  3. 智能硬件應用: 消息的往返時延測試。

  4. 物聯(lián)網(wǎng)數(shù)據(jù)采集: 并發(fā)連接與吞吐測試。

感謝各位的閱讀,以上就是“單機千萬級MQTT消息測試分析”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對單機千萬級MQTT消息測試分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


網(wǎng)頁標題:單機千萬級MQTT消息測試分析
文章URL:http://weahome.cn/article/jposjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部