我们使用Azure IOT和edgeHub
和edgeAgent
作为Edge运行时的模块。我们要验证在我们的环境中正确配置了离线存储的功能
我们已将自定义simulator
模块连接到自定义publisher
模块,该模块发布到云中的API。 simulator
每2秒连续产生大约10KB的消息。由于防火墙规则受阻,publisher
模块无法与外界通话。我想验证为edgeHub
分配的所有内存/ RAM是否已使用,以后又溢出到disk
并使用了合理的可用磁盘空间。
即使我运行simulator
的多个模块/实例,此练习也需要花费较长时间才能完成。
查询:
如何控制分配给edgeHub
的内存大小。什么是控制/减少分配的内存的正确createOptions
。目前分配的空间约为1.8GB。
我通常在锻炼过程中看到RAM不断增加。但是在某些时候,它下降了一点,之后又不断增加。 edgeHub
内是否发生某种GC或优化?
b0fb729d25c8 edgeHub 1.36% 547.8MiB / 1.885GiB 28.38% 451MB / 40.1MB 410MB / 2.92GB 221
如何确保simulator
生成的任何消息都不会丢失。有没有一种方法可以计算edgeHub中的邮件数量?
我已经进行了正确的配置,以将目录从VM挂载到容器以进行持久存储。在edgeHub
文件夹中是否有一个特定的文件夹,溢出时将在该文件夹下存储消息?
答案 0 :(得分:1)
在我从Azure IoTHub / IoTEdge维护人员收到输入后,我将记录答案。
"createOptions": "{\"HostConfig\": { \"Memory\": 536870912 }}"
消息是持久性的,因为实现是RocksDB,默认情况下存储到磁盘
要使消息在edgeHub
容器重新创建后仍持久存在,请将目录从主机挂载到容器。在下面的示例中,来自主机的/data
已安装到edgeHub
"env": {
"storageFolder": {
"value": "/data"
}
}
答案 1 :(得分:0)
要监视内存使用情况,指标功能通常在1.0.10版中可用