日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

测试网络的带宽指令_单机千万级MQTT服务器测试报告

發(fā)布時(shí)間:2025/3/8 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 测试网络的带宽指令_单机千万级MQTT服务器测试报告 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目標(biāo):測(cè)試創(chuàng)建1000萬客戶端連接到Coolpy7 MQTT服務(wù)器端,服務(wù)器操作系統(tǒng) Linux(任意一款發(fā)行版服務(wù)器版本)。分別在兩臺(tái)硬件一樣的服務(wù)器,其中一臺(tái)用于服務(wù)器端運(yùn)行,另一臺(tái)用于創(chuàng)建千萬客戶端連接客戶端機(jī)器。在硬件一致的情況下請(qǐng)確保網(wǎng)絡(luò)設(shè)備達(dá)到相關(guān)測(cè)試要求,例如萬兆網(wǎng)絡(luò)等等。

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

修改文件/etc/sysctl.conf,配置網(wǎng)絡(luò)參數(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即時(shí)生效。

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

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

DefaultLimitNOFILE=12000000

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

* hard nofile 12000000

* soft nofile 12000000

* soft nproc 12000000

* hard nproc 12000000

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

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

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

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

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

修改/etc/sysctl.conf文件:

fs.file-max = 12000000

fs.nr_open = 12000000

net.ipv4.ip_local_port_range = 1024 65535

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

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

# 下載測(cè)試工具

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

# 進(jìn)入bin文件夾

cd bin

# 啟動(dòng)Coolpy7靜連接測(cè)試工具

# 參數(shù)url: Coolpy7服務(wù)端所在服務(wù)器ip地址,默認(rèn)端口號(hào):1883

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

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

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

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

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

# 以下例示建立連接到192.168.200.238所在的Coolpy7服務(wù)器端,并創(chuàng)建400萬個(gè)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

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

服務(wù)器端啟動(dòng)并host于1883 TCP端口

通過HTOP工具監(jiān)測(cè)Coolpy7(連接時(shí))硬件資源占用情況

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

使用Coolpy_benchmark工具測(cè)試連接400萬連接

  • 測(cè)試工具開源地址:https://github.com/Coolpy7/coolpy7_benchmark
  • 工具會(huì)以1000為單位打印連接信息
  • 工具啟動(dòng)后會(huì)一直創(chuàng)建參數(shù)指定的客戶端連接數(shù)
  • 按應(yīng)用場(chǎng)景測(cè)試

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

    不同的應(yīng)用有不同的系統(tǒng)要求,用戶使用Coolpy7消息服務(wù)器前,可以按自己的應(yīng)用場(chǎng)景進(jìn)行測(cè)試,而不是簡(jiǎn)單的連接壓力測(cè)試:

  • Android 消息推送: 推送消息廣播測(cè)試。
  • 移動(dòng)即時(shí)消息應(yīng)用: 消息收發(fā)確認(rèn)測(cè)試。
  • 智能硬件應(yīng)用: 消息的往返時(shí)延測(cè)試。
  • 物聯(lián)網(wǎng)數(shù)據(jù)采集: 并發(fā)連接與吞吐測(cè)試。
  • 總結(jié)

    以上是生活随笔為你收集整理的测试网络的带宽指令_单机千万级MQTT服务器测试报告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。