Использование Docker в Grid Engine / Sun Grid Engine / Son of Grid Engine
У кого-нибудь есть опыт запуска Docker на Grid Engine / Sun Grid Engine / Son of Grid Engine и возможность мониторинга ресурсов, используемых демоном? Проблема в том, что когда я qsub docker run ...
фактический процесс в контейнере выполняется docker
демон, а не docker
клиент, что означает, что деревья процесса разные.
Есть ли способ для SGE отслеживать ресурсы процесса в другом дереве (я бы предположил, что нет)?
Другим вариантом будет qsub
скрипт, который сначала запускает демон docker, а затем запускает нужный docker run
чтобы все процессы находились в одном и том же дереве процессов, запущенных SGE. Это потребовало бы, чтобы sge имел разрешения на запуск демона (root-доступ), а также мог привести к запуску нескольких демон-докеров на хосте.
Другая проблема с альтернативным деревом процессов заключается в том, что задание, отправленное заданным демоном (-d
). В этом случае клиент Docker завершит работу, но демон Docker может по-прежнему запускать контейнер.
1 ответ
Вы правы, когда вы используете 'docker run ....', он обращается к демону и создает контейнер из образа. Это означает, что дерево процессов "не управляется Grid Engine", потому что execd Grid Engine (демон, запускающий задание) не является родительским для дерева. С Sun Grid Engine, Son of Grid Engine и Open Grid Scheduler в настоящее время невозможно вставить Grid Engine в дерево процессов.
Вы можете изменить исходный код Grid Engine и использовать Docker API для управления контейнером и сбора информации о ресурсах из контейнера - однако я не думаю, что кто-то делал эту работу в Sun Grid Engine.
Однако Univa Grid Engine, коммерческая версия Grid Engine, имеет эту функциональность (Отказ от ответственности: я работаю для Univa). Univa Grid Engine использует Docker API для запуска контейнеров и имеет сопутствующего пастуха, который представляет собой небольшой демон, который запускается в контейнере для сбора информации об использовании ресурсов и обеспечения контроля над заданиями.