Как ограничить память для edgeAgent на устройстве Edge

Из команды Azure я узнал, что лимит памяти для модулей Edge, включая edgeHub можно контролировать, указав createOptions -> HostConfig -> Memory, Как контролировать лимит памяти для edgeAgent Контейнер Docker как он создан edgeAgent? Это задокументировано? В настоящее время здесь он показывает 1,88 ГБ на виртуальной машине 2 ГБ.

Ниже выписка из docker stats

fd66aaa4dbe1        edgeAgent                 0.01%               40.59MiB / 1.885GiB   2.10%               2.18MB / 1.13MB     55.6MB / 705kB      15

1 ответ

Установка предела памяти не является специфичной для модуля edgeHub, но она одинакова для любого другого модуля докера, используемого с IotEdge. Вы можете добавить параметр Memory в раздел HostConfig в разделе createOptions любого модуля.

Для edgeAgent параметр развертывания будет выглядеть следующим образом:

"systemModules": {
          "edgeAgent": {
            "type": "docker",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-agent:1.0",
              "createOptions": "{\"HostConfig\":{\"Memory\":536870912}}"
            }
          },
          "edgeHub": {
          ...
          }
        }

С этим делайте новое развертывание.

Чтобы изменения вступили в силу на вашем компьютере, вы должны удалить модуль edgeAgent, чтобы он создавал новый в соответствии с вашими измененными правилами развертывания. Вы можете сделать это с помощью следующей команды:

Докер sudo rmi mcr.microsoft.com/azureiotedge-agent:1.0 -f

После этого перезапустите iotEdge Deamon с помощью

sudo systemctl перезапустить iotedge

После этого память будет ограничена для модуля edgeAgent.

Примечание. Если вы хотите ограничить память на Raspberry Pi, учтите, что поддержка ограничения памяти по умолчанию отключена. Вы можете найти HowTo для его включения здесь: https://blog.raveland.org/post/docker_raspian/

Другие вопросы по тегам