как ограничить память для edgeAgent на устройстве Edge - PullRequest
0 голосов
/ 12 февраля 2019

Я узнал от команды 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 Ответ

0 голосов
/ 12 февраля 2019

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

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

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

При этом выполните новое развертывание.

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

sudo docker rmi mcr.microsoft.com/azureiotedge-agent:1.0 -f

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

sudo systemctl restart iotedge

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

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

...