我目前正在从事一个项目,其中包括一个网关设备,它将从其他设备收集传感器数据。此网关使用IoT边缘并运行一个自定义模块(用C# .NET 5.0编写)。
最初,我们开始使用Raspberry PI 4进行开发,效果很好。由于生产成本和数量的网关,需要安装在一些终端客户的房地,我们需要精简平台。
我们正在开发的一个平台是一个具有256 we LPDDR2内存的500 that的单核ARM。在这个平台上,我们注意到IoT边缘和我们的应用程序的启动速度都非常慢。将来自IoT边缘服务日志的时间戳与应用程序日志进行比较,我们已经看到启动系统需要6-8分钟。我们到目前为止所观察到的(基于我刚才所做的一次测试):
ModuleClient.CreateFromEnvironmentAsync(),模块的CPU利用率急剧增加。三分钟后,在使用错误Communication_Error.最终,系统上的CPU使用率降低到大约90%的空闲时间。
从启动IoT边缘服务(09:52:13 19s )到我们的模块完全启动(10:00:32 19s)的总时钟时间是8分钟19秒。如果我在Docker之外运行我们的模块,而没有IoT边缘,它将在6s内启动。
是否要减少启动系统所需的时间?
发布于 2021-01-19 13:38:56
您有多个选项可以在受限设备上使用IoT边缘。看看https://learn.microsoft.com/en-us/azure/iot-edge/production-checklist,尝试不同的timeToLiveSecs值,以及“减少IoT边缘集线器使用的内存空间”。我写了一篇文章,其中包含了我在类似的https://www.hezser.de/blog/2020/11/03/azure-iot-edge-on-constraint-devices/设置中得到的一些发现。
发布于 2021-01-20 03:53:22
256 is内存对于IoT边缘运行时来说太少了。根据经验,至少推荐一种具有Raspberry Pi 3级资源的设备。这意味着至少有1GB的RAM (2GB的推荐值)。
https://stackoverflow.com/questions/65791907
复制相似问题