通过上一篇《重要!NB-IoT模组选型及项目初始必看!》(网址:http://onemo10086.com/#/school/article/270 )我们知道了NB-IoT并发能力有限这个短板,那有什么方法可以优化避开它吗。

方法肯定是有的,但首先要明白优化改善和彻底解决是不一样的。这是一个系统工程,必须多管齐下才能效果明显,下面我们讲一讲实际项目经验中总结的一些有效方法。

这些方法主要从以下几个角度和方向进行优化,每个方向优化提升一些,最后设备整体性能就会提升不少:

①加快单设备入网及数据交互速度、提高成功率(提升NB-IoT网络信号质量)

②降低单设备交互频次及重试次数(合理程序优化)

③降低单设备无效占用信道时间(模组功能优化)

④增加物理基站数量(增大总的信道容量,成本高)

⑤提高设备天线性能,增益及灵敏度等(设备射频优化)

⑥上下行离散错峰算法优化,平台依据PCI智能算法(智能算法优化)

一、不同应用场景并发优化差异

实际应用中并发优化对象可分为三大类:

①需要实时下发控制的应用,如智能路灯、各种共享设备、智慧电力开关等,无需省电考虑

②设备分布高密度主动上报数据应用,如水电气NB-IoT表计等,一般需考虑省电

③以上两者兼具,如共享单车等,这种情况下更多采用2G或cat.1。

对于第1类,要发心跳维持IP链路不被老化回收,但频繁心跳对NB-IoT网络就是灾难。唯一的解决办法就是使用长连接SIM卡,即运营商开通APN为:CMNBIOTONENET的SIM卡,这种卡必须配合连接OneNET平台使用,好处是不用再频繁发心跳维持IP长连接。

图1-1 智慧路灯使用OneNET长连接卡示例

注:开通长连接专网卡后,设备仍需定时向平台发送心跳:频率一般2-12小时,需实测参考当地网络情况,建议心跳频率2小时。

很多厂家自身业务也要求设备定时发心跳,以实现更新设备状态、在线及掉网检测、故障检测及时发现等,某共享洗衣机客户将设备心跳频率设为30分钟。

对于第2类,一般采用时间离散错峰算法或者开机绝对时间分散算法,使设备在某个较长时间段实现错峰上报数据及下行。如水表一般是在每天0:00至8:00时间段内实现设备离散错峰上报数据,目前网络正常情况下上报成功率可达99.8%。具体的算法实现客户可根据自己应用场景实现,如下图为两个示例:

图1-2做离散错峰前后设备入网成功率对比

图1-3 NB-IoT智能路灯上电后随机时间延时算法(上行错峰)

图1-4 NB-IoT智能路灯下行控制分区分批算法(下行错峰)

图1-5 NB-IoT智能路灯下行错峰前后,基站侧监控载波利用率对比

二、NB-IoT设备侧并发优化方法

设备侧MCU可通过利用RAI(Release auxiliary indication快速释放RRC连接)及程序优化来减轻网络并发压力,使现场大规模设备能更好的工作。以下几个方法均为实测有效的优化方法,请酌情实测后使用:

2.1、使用模组RAI功能,当连接OneNET时,发送上行数据收到下行回复后模组立即进入idle,同时释放占用的信道资源,给其他设备使用。

图2-1:RAI功能快速释放RRC连接信道资源

2.2、一般数据重发不应超过3次,过多的重发次数会造成信道资源紧张,网络拥塞,一般3次未发送成功说明网络信号极差或者已掉网,合理减少设备与服务器间交互握手流程。

2.3、需上报数据打包上传(OneNET则合到一个resource内上传),减少数据包交互个数(次数),一次一包上传所有数据,使用平台缓存下发功能。

2.4、MCU程序优化,等待ACK或服务器响应时长不宜过长。数据ACK等交互尽量并发后等待回复,减少串行阻塞等待式交互,减小单个设备数据交互耗时。

2.5、同一小区下设备,MCU使用离散错峰算法使模组分散时间上报数据及心跳。下行数据也应错峰,避免同一时间下发。具体错峰算法根据实际场景选用。

2.6、建议在产线等大量设备聚集且要求流动速度场合增加基站数量及信号覆盖等级,ECL 0为宜。并可根据并发限制条件优化生产检验流程。

2.7、某些必须使用MQTT协议的场景,可尽量拉长心跳周期,以及在每次需要传数据时再连接MQTT服务器,使用完后断开连接立即关机或PSM休眠。

以上请针对您特定的应用场景进行充分的测试验证,如有问题,请及时反馈!

若有因使用过程中造成任何损失,中移物联网有限公司不承担任何经济、法律责任。

三、NB-IoT网络侧并发优化方法

NB-IoT网络信号质量良好是设备正常工作的先决条件,评估及优化改造更多需要运营商网优通过数据监测及不断调整来逐步实现,以下为几种常见的优化方法:

3.1、合理评估设备数量,有多少设备就配相应数量的基站;实际项目中网优通过检测基站负荷及RRC接入峰值等指标可判断该地区基站数量是否足够,针对特定项目增加新的基站是最有效解决并发瓶颈的方法,缺点是得加钱;新开基站成本太高流程复杂,属于最后迫不得已才上的手段。

3.2、NB-IoT信号质量及覆盖等级决定设备入网和数据交互的速度和成功率,实际项目中有通过提高基站发射功率(RSRP)和异频组网改善信噪比(SNR)等网络调优方式解决基站并发压力高,上线率低的问题,如下图所示:

图3-1对比不同SNR下模组ping延时

3.3、实测NB-IoT基站不同的覆盖等级下,小区容量和设备入网速度,数据发送延时及成功率有较大影响;一般网优会通过基站定向、调高发射功率等组合手段提高小区覆盖等级,缓解小区覆盖下的设备并发压力。

图3-2实测不同信号覆盖等级(ECL)下NB-IoT设备并发能力

四、总 

图4-1 各种业务阶段、不同维度优化设备并发能力方法

NB-IoT 所特有的“非持续连接”的工作机制,是NB-IoT 拥有“海量终端、超低功耗”等优点的根本原因。但是海量终端一旦同时处于连接状态,反而造成了对网络的高并发访问,导致大量的终端无法接入网络。通过对终端并发行为进行错峰设置,可以使终端对网络的连接请求低于网络的实际容量。一个好的错峰接入的算法,应兼顾并发和时延两个方面的要求。同时综合上文介绍的其他方法辅助,就能更好的利用NB-IoT网络有限的带宽资源,切实提升NB-IoT设备的使用体验和稳定性。

NB-IoT设备并发错峰及优化方法相关推荐

  1. 大数据量高并发访问的数据库优化方法

    一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. ...

  2. 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  3. mysql查询后10条数据类型_30多条mysql数据库优化方法,千万级数据库记录查询轻松解决...

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  4. 千万级的mysql数据库与sql优化方法

    http://www.111cn.net/database/110/32932.htm 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应 ...

  5. mysql每次查询1000条数据库_30多条mysql数据库优化方法,千万级数据库记录查询轻松解决...

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  6. 利用Amazon Lambda实现Amazon IoT设备证书的即时注册

    背景介绍 为了保证通信的安全性,Amazon IoT设备与Amazon IoT Core的MQTT通信使用基于证书的TLS 1.2双向认证体系.所谓的双向认证,即意味着Amazon IoT设备端需安装 ...

  7. 聊一聊智能汽车和物联网IoT设备的OTA远程升级

    根据 Allied Market Research 发布的最新报告,全球汽车OTA市场在2020年创造了25.9亿美金的市场价值,预计到2030年将达到137.1亿美元,从 2021 年到 2030 ...

  8. 【服务治理】服务熔断、服务降级、服务限流、流量削峰、错峰

    文章目录 服务熔断.服务降级和服务限流 服务熔断 服务降级 服务限流 实现 步骤三.Polly在.NetCore项目中封装 流量错峰.流量限流.流量削峰 流量错峰 服务端错峰策略 客户端错峰策略 流量 ...

  9. 干货 | 如何使用 CNN 推理机在 IoT 设备上实现深度学习

    作者 | 唐洁 责编 | 何永灿 通过深度学习技术,物联网(IoT)设备能够得以解析非结构化的多媒体数据,智能地响应用户和环境事件,但是却伴随着苛刻的性能和功耗要求.本文作者探讨了两种方式以便将深度学 ...

最新文章

  1. 他开发了基因界的百科全书,贡献却少有人知
  2. 【优秀奖】Java开发那点事征文
  3. 中软国际入职java考核_中软国际技术人员入职试题2(Java)
  4. reflective dll injection 反射注入
  5. 好习惯!pandas 8 个常用的 option 设置
  6. 阿里服务器+Centos7.4+Tomcat+JDK部署
  7. 使用 jQuery Mobile 与 HTML5 开发 Web App (十) —— jQuery Mobile 默认配置与事件基础
  8. android sdk 8.1.0,OneAPM版本更新:Android SDK 1.0.8
  9. 计算机科学家 收入,你离年薪100万的数据科学家还差10个“码农”
  10. 十六进制计算器 android,十六进制计算器
  11. Linux下的经典软件
  12. 支付宝小程序获取外部任意小程序appId及页面路径(附常见appid)
  13. jdk8下载及安装(Windows10)
  14. Git版本管理工具使用知识汇总
  15. 第1章 PyTorch和神经网:1.1 PyTorch和神经网络
  16. 后摩尔时代新星之自旋电子器件
  17. mongodb安装及操作
  18. VUE踩坑——this.$nextTick、头条小程序组件传值报错问题
  19. Clk Gating的verilog写法及简析-基础小知识(六)
  20. 学校教育网站建设方案

热门文章

  1. 蓝桥杯国王的烦恼java,国王的烦恼 蓝桥杯
  2. 股票自动交易软件接口支持的语言是什么?
  3. MailKit和MimeKit 收发邮件
  4. 北京医院排名(去哪个医院合适)
  5. 职中计算机一级证,职中计算机等级一级考证教学网站的设计
  6. R语言|clusterprofile超几何分布富集分析 GO,KEGG富集分析,循环Fisher‘s test
  7. 厦门之旅第一篇Gradle多渠道打包(动态设定App名称,应用图标,背景图片,状态栏颜色)
  8. BJ模拟:超级绵羊抑或(类欧几里得)
  9. Origin绘图的步骤?
  10. displayTag使用总结