IOT Edge Hub:测试离线存储

时间:2019-01-24 09:39:55

标签: azure-iot-edge

我们使用Azure IOT和edgeHubedgeAgent作为Edge运行时的模块。我们要验证在我们的环境中正确配置了离线存储的功能

我们已将自定义simulator模块连接到自定义publisher模块,该模块发布到云中的API。 simulator每2秒连续产生大约10KB的消息。由于防火墙规则受阻,publisher模块无法与外界通话。我想验证为edgeHub分配的所有内存/ RAM是否已使用,以后又溢出到disk并使用了合理的可用磁盘空间。

即使我运行simulator的多个模块/实例,此练习也需要花费较长时间才能完成。

查询:

  1. 如何控制分配给edgeHub的内存大小。什么是控制/减少分配的内存的正确createOptions。目前分配的空间约为1.8GB。

  2. 我通常在锻炼过程中看到RAM不断增加。但是在某些时候,它下降了一点,之后又不断增加。 edgeHub内是否发生某种GC或优化?

    b0fb729d25c8        edgeHub                 1.36%               547.8MiB / 1.885GiB   28.38%              451MB / 40.1MB      410MB / 2.92GB      221
    
  3. 如何确保simulator生成的任何消息都不会丢失。有没有一种方法可以计算edgeHub中的邮件数量?

  4. 我已经进行了正确的配置,以将目录从VM挂载到容器以进行持久存储。在edgeHub文件夹中是否有一个特定的文件夹,溢出时将在该文件夹下存储消息?

2 个答案:

答案 0 :(得分:1)

在我从Azure IoTHub / IoTEdge维护人员收到输入后,我将记录答案。

  • 要控制Edge上的容器/模块的内存限制,请按以下说明指定适当的最大内存限制(以字节为单位)
"createOptions": "{\"HostConfig\": { \"Memory\": 536870912 }}"
  • 消息是持久性的,因为实现是RocksDB,默认情况下存储到磁盘

  • 要使消息在edgeHub容器重新创建后仍持久存在,请将目录从主机挂载到容器。在下面的示例中,来自主机的/data已安装到edgeHub

  • 中的适当位置
            "env": {
                "storageFolder": {
                    "value": "/data"
                }
            }

答案 1 :(得分:0)

要监视内存使用情况,指标功能通常在1.0.10版中可用

Monitor IoT Edge Devices At-scale