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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

mqtt服务器性能H3,运用 MQTT-JMeter 插件测试 MQTT 服务器性能

發布時間:2024/10/14 c/c++ 116 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mqtt服务器性能H3,运用 MQTT-JMeter 插件测试 MQTT 服务器性能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MQTT 簡介

MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是 IBM 開發的一個即時通訊協議,它比較適合于在低帶寬、不可靠的網絡的進行遠程傳感器和控制設備通訊等,正在日益成為物聯網通信協議的重要組成部分。MQTT 是目前最流行的物聯網協議之一,主要用于移動 Push,移動 IM,物聯網 M2M,物聯網采集等,這些應用場景的特點是客戶端的連接設備數比較多,那么如何在系統上線之前驗證系統能否承受預先設計的壓力呢?

XMeter 因此專門開發(并維護)了 MQTT JMeter 插件,用戶可以很方便地測試 MQTT 服務器的性能:添加 MQTT 連接、發布、訂閱取樣器,構造組合的應用場景,例如背景連接、多發少收、少發多收,計算消息轉發時延等。利用該插件,我們為EMQ成功實施了包括百萬級并發連接在內的一系列測試場景,這里有詳細的測試報告。

今天我們來詳細介紹一下怎么使用這個插件。

安裝

從github下載您需要的 release 版本, 解壓 mqtt-xmeter-jar-with-dependencies.jar.zip, 將生成的 jar 文件放到 JMeter 安裝主目錄的 lib/ext 下,重啟 JMeter,就可以看到插件成功加載。

插件各屬性介紹

1.連接操作取樣器

Server name or IP: 指向被測 MQTT 服務器地址。【注】為靈活起見,屬性值都可以引用 JMeter 的系統或自定義變量。

Port number: 通常 TCP 連接的端口是 1883, SSL 連接則是 8883。請參照服務器的具體配置。

Timeout(s): 連接超時設置,以秒為單位。

Protocols: 客戶端與服務器通過 SSL 加密通道連接時,可以選擇單向或者雙向認證 (Dual)。雙向認證時,您還需要指定相應的信任秘鑰庫 (Trust Key Store), 客戶端證書,以及對應的文件保護密碼 (Secret)。

這些文件可以通過服務器的證書配置轉化得到。例如,對于EMQ的安裝部署,/etc/cert 下就存放了自簽證的 CA,服務器及客戶端證書,參考下面的命令就可以生成插件所需的.jks, .p12 文件,secret 自行指定即可。

exportPATH=$PATH:/bin

keytool -import -alias cacert -keystore emqtt.jks -file cacert.pem -storepass -trustcacerts -noprompt

keytool -import -alias client -keystore emqtt.jks -file client-cert.pem -storepass

keytool -import -alias server -keystore emqtt.jks -file cert.pem -storepass

openssl pkcs12 -export -inkey client-key.pem -in client-cert.pem -out client.p12 -password pass:

User authentication: 如果服務器配置了用戶認證,您需要提供相應的用戶名和口令。

ClientId prefix: 標識客戶端的固定前綴,每個連接 (虛擬用戶) 再添加一個 uuid 串,整個作為客戶標識。

Keep alive(s): 心跳信號發送間隔。例如,300 表示客戶端每隔 300 秒向服務器發出 ping 請求,以保持連接活躍。

Connection keep time(s): 連接建立后,保持該連接的時長。例如,1800 表示 1800 秒之后連接將被關閉,即使一直發送心跳信號。

Connect attempt max: 第一次連接過程中,嘗試重連的最大次數。超過該次數則認為連接失敗。

Reconnect attempt max: 后繼連接過程中,嘗試重連的最大次數。超過該次數則認為連接失敗。

2.發布操作取樣器

發布 (Pub) 取樣器的連接相關屬性與連接取樣器完全相同,下面只介紹 Pub 特有的屬性。

QoS Level: 服務質量,取值為 0,1,2,分別代表 MQTT 協議規范里的至多一次(AT_MOST_ONCE),至少一次(AT_LEAST_ONCE),精確一次(EXACTLY_ONCE)

Topic name: 發布消息所屬的話題(訂閱方可以根據話題不同選擇訂閱)

Add timestamp in payload: 如果勾選,發布的消息體開頭會附帶當前時間戳,利用它可以在消息接收端計算消息達到的延時。不勾選則只發送實際的消息體。

Message type: 目前支持三種消息類型

String: 普通字符串(如上面截圖所示)

Hex String: 以 16 進制數值表示的串,比如字符串 Hello, 可以表示為 48656C6C6F (其中,48 在 ascii 表中對應字母 H,依次類推)。通常 16 進制串用來構造非文本的消息體,例如描述某些私有的協議交互和控制信息等等。

Random string with fixed length: 按指定長度生成隨機的串作為消息體。

3. 訂閱操作取樣器

QoS Level: 服務質量,含義與發布操作取樣器相同。

Topic name: 訂閱消息所屬的話題。

Payload includes timestamp: 如果勾選,會從消息體開頭處解析發送時間戳,用于計算消息的接收延時。

Debug response: 如果勾選,消息內容會打印在 JMeter 的響應結果中,用于調試目的。正式運行測試建議不勾選。

混合負載的測試場景

運用以上 3 種 MQTT 取樣器,結合 JMeter 靈活的測試控制,您可以制定各種類型的測試場景。下面我們舉一個例子,構造一個混合負載的場景。

? 連接者:虛擬用戶數=10, 發起 10 個到服務器的背景連接,每 2 秒鐘發一次心跳請求,15 秒后斷連。

? 發布者:虛擬用戶數=5,每隔一秒發送一條 32 字節的隨機串,帶時間戳,循環 10 次結束。

? 訂閱者:虛擬用戶數=2,接收相應話題上的消息,每隔一秒輸出采樣間隔里接收到的消息統計,循環 10 次結束。

在 JMeter 中運行該場景,15 秒鐘左右運行結束。可以在測試結果樹中看到每個操作的詳細信息。表格視圖的"Sample Time"列出了操作花費的時間 (毫秒)。由于這次測試在本地,并發用戶數很少,所以連接、消息發送、接收時延都很短。您可以指向實際的 MQTT 服務器,模擬更大的并發用戶數。

在被測的EMQ服務器自己的度量儀表盤,我們可以看到連接、消息發送,接收等統計信息。

【注】服務器的"received", "sent"分別對應 JMeter 測試中的 “發送者” 和 “訂閱者”。

利用 XMeter 實施云上的高負載壓力測試

JMeter 支持的負載有限,而且壓力機需要人工管理,為方便用戶實施大規模的并發測試,XMeter 性能測試云服務將 JMeter 支持的運行場景遷移到云端,按需 “彈性” 地分配測試資源,發起到目標機器的壓力測試,衡量被測系統的性能表現。

我們只需上傳調試好的 JMeter 腳本,在 XMeter 指定并發數和運行時間,就可以在網頁上查看各項性能指標。

利用 MQTT-JMeter 插件,我們為EMQ成功實施了包括百萬級并發連接在內的一系列測試場景,這里有詳細的測試報告。

希望這個開源的插件和 XMeter 在線服務也能為您測試 MQTT 帶來一些便利。如果有任何問題,請聯系我們。

新版插件新增功能介紹

1. ClientID

標識客戶端的 ClientId 現在可以進行精確控制,而不是舊版本里只允許輸入前綴,剩下的由系統自動生成。該功能是考慮到一些 Azure 的物聯網平臺的用戶需要輸入精確的 ClientId。如下圖所示:如果用戶沒有選中 “Add random client id suffix”,那么 ClientId 輸入框中的值就會被作為該虛擬用戶的 ClientId 值。

2. 同虛擬用戶下共享MQTT連接

之前的版本中,每創建一個 Pub/Sub 的 Sampler 都會生成一個 MQTT 連接,這對于想模擬一些物聯網的場景的時候并不適用。比如某物聯網設備除了向服務器發送傳感器采集的數據之外,還需要接受從服務器端發送過來的控制消息,而這兩部分發送和接收消息會使用同一個連接。現在 Pub/Sub 的 Sampler 提供了一個選項允許用戶共享連接的選項。如下圖所示增加的 “Share conn in thread”。在同一個線程組中,如果有多個 Sampler 勾選了該選項,那么第一個被初始化的 Sampler 中的連接選項會被作為共享的連接的配置,剩下的 Sampler 中的連接配置會被忽略,因為使用的是第一個共享連接的配置。

下面是幾個例子:

ThreadGroupSample1

PubSampler1 (shared connection), 該連接的配置作為共享連接的設置

SubSampler1 (shared connection), 使用在 PubSampler1 創建的連接,該 Sampler 中的配置將被忽略

ThreadGroupSample2

PubSampler1 (shared connection), 該連接的配置作為共享連接的設置

SubSampler1 (not shared connection), 會創建一個新的連接,因為使用的是非共享的連接

ThreadGroupSample3

PubSampler1 (not shared connection), 會創建一個新的連接,因為使用的是非共享的連接

SubSampler1 (shared connection), 該連接的配置作為共享連接的設置

SubSampler2 (shared connection), 使用在 SubSampler1 創建的連接,該 Sampler 中的配置將被忽略

3. Sub Sampler 支持訂閱多個 Topic

現在 Sub Sampler 支持訂閱多個主題,主題之間用逗號分隔

4. Sub可以控制接收消息并且生成一條測試記錄的方式

如下圖所示,“Sample on” 下拉列表框中允許用戶指定產生一條測試記錄的方式,缺省為 “elapsed with specified time(ms)”,意思為在指定的時間區間(單位為毫秒)生成一條測試記錄,不管在該測試區間段里有沒有收到消息;另外的一種方式是 “number of received messages”,該選項意味著當前虛擬用戶只有在收到了指定數目的消息的時候才會生成一條測試記錄。

5.Pub中topic的使用變成了針對單個虛擬用戶

新版本的 Pub 實現中,用戶指定了 topic 后,只會使用第一次建立連接的時候傳入的 topic 的名字,而不管傳入的是否是一個變量值。

總結

以上是生活随笔為你收集整理的mqtt服务器性能H3,运用 MQTT-JMeter 插件测试 MQTT 服务器性能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久性色av无码一区二区 | 成人午夜福利视频 | 桃色91| 猛男被粗大男男1069 | 久久狠狠高潮亚洲精品 | 成人亚洲网站 | 国产午夜精品久久久久久久久久 | 在线欧美 | 国产欧美精品一区二区在线播放 | 91在线播放国产 | 欧美人妻一区二区 | 你懂的网站在线观看 | 久久久久毛片 | 非洲一级片 | av官网在线观看 | 国模私拍一区二区三区 | 色涩网站 | 色诱av手机版 | 天天躁夜夜躁av天天爽 | 人人人射 | 日本少妇高潮喷水xxxxxxx | 免费观看av毛片 | 久久午夜精品 | 黄色在线免费观看视频 | 午夜激情四射 | 在线观看无码精品 | 国产成人一区二区三区小说 | 精品一区李梓熙捆绑 | 不卡日本 | 国产美女在线看 | 亚洲成人欧美 | 国产精品成av人在线视午夜片 | 午夜欧美在线 | 天堂网2018 | 国产在线高清 | 国产精品视频专区 | h小视频在线观看 | 99久久影院| 日韩城人视频 | 日本一区二区在线免费观看 | 日韩欧美一级大片 | 亚洲一卡二卡在线观看 | 久久夫妻视频 | 亚洲欧美另类图片 | 欧美一级艳片视频免费观看 | 尹人综合在线 | 丰满圆润老女人hd | 69精品人人人人 | 亚洲精品在线影院 | 国产网站一区 | 三上悠亚在线观看一区二区 | 免费又黄又爽又色的视频 | 超碰在线免费97 | 黄网站免费在线观看 | 在线天堂6| 九色国产精品 | 国产白丝av | 久久久精品人妻一区二区三区色秀 | 99综合久久 | 国产精品一区二区视频 | 爱逼综合网 | 太久av| 男女午夜视频 | 一级中文字幕 | 中文字幕有码在线观看 | 欧美日韩亚洲国产另类 | 欧美精品性视频 | 肉丝肉足丝袜一区二区三区 | 美攻壮受大胸奶汁(高h) | 久久亚洲美女 | 西西444www大胆无视频 | 成人免费看片' | 法国空姐电影在线 | 欧美一级黄色网 | 精品亚洲aⅴ无码一区二区三区 | 亚洲成a人v欧美综合天堂麻豆 | 久草视 | 日本久久一区二区 | 国产亚洲精品久久久久久久久动漫 | 国产乱码精品一区二区三区五月婷 | 夜夜嗨一区 | 久久va| 成人网入口| 久久国产免费看 | 国产精品久久av无码一区二区 | 色吧五月天 | 99久久精品国产亚洲 | 午夜免费在线观看 | 天堂av资源在线观看 | 天堂99| 成人一级毛片 | 最新三级网站 | 天堂中文视频 | 亚洲福利视频网站 | 亚洲视频久久久 | 精品一区二区毛片 | 91香蕉视频污污 | 久久人妻少妇嫩草av无码专区 | 成人在线短视频 |