自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

物聯(lián)網(wǎng)平臺Modbus協(xié)議采樣命令下發(fā)并發(fā)性能測試方法

移動開發(fā)
Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn)(De facto),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式。

Part 01

采樣命令 

Modbus協(xié)議同樣也是物聯(lián)網(wǎng)平臺的流行協(xié)議之一,采樣命令作為Modbus協(xié)議的主要功能,其主要流程是設(shè)備在平臺設(shè)置周期采樣命令,平臺會周期性主動對在線設(shè)備下發(fā)采樣命令。

我們在為雄安建設(shè)物聯(lián)網(wǎng)平臺時,正好平臺就有Modbus的能力,平臺交付就必須要測試Modbus的采樣命令并發(fā)。

物聯(lián)網(wǎng)平臺Modbus協(xié)議采樣命令下發(fā)流程如下:

  • 創(chuàng)建設(shè)備,在平臺給設(shè)備設(shè)置采樣命令:采樣周期、功能編號、從機地址、數(shù)據(jù)長度等信息。
  • 設(shè)備上線后,平臺按照采樣周期對設(shè)備進(jìn)行周期性發(fā)送采樣命令。
  • 設(shè)備收到采樣命令后將寄存器數(shù)據(jù)返回結(jié)果給平臺,并保存采樣數(shù)據(jù)。

通常情況下我們做性能測試都是客戶端發(fā)起請求服務(wù)的響應(yīng)客戶端,而Modbus的采樣命令恰好相反,以往我們常用的性能測試工具就不可行了。

要如何才能測試服務(wù)的采樣命令的并發(fā)呢?

Part 02

測試方法 

為了測試物聯(lián)網(wǎng)平臺Modbus協(xié)議采樣命令并發(fā)性能,我們研究出了一種高并發(fā)的采樣命令并發(fā)性能測試方法。該方法采用異步IO的方式批量模擬設(shè)備連接服務(wù)器、接收采樣命令并響應(yīng)命令,并統(tǒng)計每秒接收的命令數(shù)量。技術(shù)實現(xiàn)細(xì)節(jié)如下:

1、通過API批量創(chuàng)建Modbus設(shè)備,并給每個設(shè)備創(chuàng)建n個采樣命令。即無需提前創(chuàng)建設(shè)備和設(shè)備的采樣命令;

2、批量初始化設(shè)備的socket連接,socket設(shè)置為非阻塞,生成socket列表。采用異步IO,減少多線程線程切換帶來的資源消耗,提升CPU利用率;

3、同時啟動以下三個線程:

①批量設(shè)備注冊線程:批量上報注冊報文,設(shè)備注冊完成后線程退出;

②采樣命令條數(shù)統(tǒng)計線程:所有設(shè)備注冊成功后,每秒統(tǒng)計一次最近1秒內(nèi)收到采樣命令條數(shù);

③采樣命令接收處理線程:采用select批量管理設(shè)備socket列表,接收并立即響應(yīng)采樣命令,并實時記錄采樣命令條數(shù)。select模型為非阻塞式IO,能夠一定程度上減少服務(wù)器瞬間的并發(fā)線程數(shù),從而提高CPU執(zhí)行效率;

Python代碼示例(片段)

4、根據(jù)運行設(shè)備數(shù)量以及平均每秒接收到采樣命令數(shù)量來判斷平臺是否滿足當(dāng)前的采樣命令的處理性能。性能滿足的條件下預(yù)期結(jié)果為

預(yù)期每秒命令接收數(shù)量 ≈ 設(shè)備數(shù)量 * n

逐步增加設(shè)備數(shù)量,當(dāng)預(yù)期每秒命令接收數(shù)量 > 設(shè)備數(shù)量 * n時,即服務(wù)已達(dá)到瓶頸。則最終測試服務(wù)的采樣命令最大并發(fā)量為,滿足預(yù)期結(jié)果時的設(shè)備最大接入量 * n。

該測試方法優(yōu)點:

1、無需單獨添加創(chuàng)建設(shè)備和設(shè)備的采樣命令,簡化了Modbus協(xié)議采樣命令性能測試的準(zhǔn)備工作;

2、在設(shè)備端統(tǒng)計并發(fā)量,無需在服務(wù)端增加任何統(tǒng)計邏輯;

3、采用模擬設(shè)備,無需準(zhǔn)備大量真實設(shè)備,降低了Modbus協(xié)議采樣命令性能測試的成本;

4、通過非阻塞式IO,顯著提升Modbus協(xié)議采樣命令并發(fā)性能測試的設(shè)備響應(yīng)速度,解決Modbus協(xié)議采樣命令并發(fā)性能測試高并發(fā)狀態(tài)下的資源浪費問題;

5、設(shè)備響應(yīng)速度的提升,有效提高M(jìn)odbus協(xié)議采樣命令并發(fā)性能測試的準(zhǔn)確度。

我們采用此種方法編寫的Python代碼,單個腳本可以支撐1秒內(nèi)1萬+次的命令處理能力。在雄安物聯(lián)網(wǎng)平臺的性能測試中起到了非常好的作用,同時運行10個腳本,完成了雄安平臺Modbus協(xié)議采樣命令10萬并發(fā)的測試。

責(zé)任編輯:龐桂玉 來源: 移動Labs
相關(guān)推薦

2019-12-25 09:49:12

WebKitWindowsChrome

2024-12-26 09:15:28

2022-12-12 09:27:11

2020-11-19 09:19:42

物聯(lián)網(wǎng)物聯(lián)網(wǎng)標(biāo)準(zhǔn)物聯(lián)網(wǎng)協(xié)議

2025-02-26 03:00:00

2014-05-20 16:27:35

JVMScala

2022-10-13 17:21:31

物聯(lián)網(wǎng)物聯(lián)網(wǎng)測試

2017-11-06 05:25:26

物聯(lián)網(wǎng)測試物聯(lián)網(wǎng)測試地圖

2019-05-07 09:02:22

物聯(lián)網(wǎng)開發(fā)平臺MQTT協(xié)議物聯(lián)網(wǎng)

2012-09-07 14:18:15

MongoDB 2.2

2023-11-29 10:58:28

AIoTIOT數(shù)據(jù)平臺

2019-08-02 14:50:34

2023-10-13 07:08:10

2024-02-19 00:00:00

JavaScriptJavaPython

2013-07-17 17:03:23

Ngx_luaNginx

2019-08-12 08:50:23

物聯(lián)網(wǎng)平臺物聯(lián)網(wǎng)IOT

2020-03-26 07:52:20

物聯(lián)網(wǎng)平臺物聯(lián)網(wǎng)IOT

2018-03-01 10:03:37

服務(wù)器架構(gòu)高并發(fā)

2024-03-26 11:52:13

2021-04-14 15:37:05

物聯(lián)網(wǎng)標(biāo)準(zhǔn)和協(xié)議
點贊
收藏

51CTO技術(shù)棧公眾號