Первый запуск контейнера nvidia-docker2 очень медленный - PullRequest
0 голосов
/ 31 августа 2018

При запуске установочного контейнера с графическим процессором на экземпляре EC2 p2.xlarge возникает задержка от 30 до 90 секунд до запуска контейнера. Последующие контейнеры запускаются быстро (с задержкой в ​​1 секунду).

EC2 работает под управлением Ubuntu 18.04 с драйвером NVIDIA версии 396.54 и nvidia-docker2 (согласно официальному руководству по установке: https://github.com/NVIDIA/nvidia-docker)

Я тестирую, используя последнее официальное изображение CUDA: Docker run - rm nvidia / cuda nvidia-smi

На моей машине включен режим «Устойчивость». Как указано в https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#how-do-i-install-the-nvidia-driver в разделе «Почему мой контейнер медленно запускается с 2.0?» это должно быть решением, но у меня не работает.

Любые идеи о том, что может быть причиной задержки и как ее исправить, приветствуются.

1 Ответ

0 голосов
/ 04 сентября 2018

Я вижу в комментариях, что вы уже извлекли изображение Docker из Интернета, но уверены ли вы, что изображение не было сохранено в снимок EBS? Например, во время создания AMI с помощью NVIDIA Docker вы, возможно, извлекли это изображение и сохранили его в корневом томе AMI.

Если это так, то у вас есть эта задержка из-за того, как тома EBS восстанавливаются из моментальных снимков.

Из документации AWS ( Инициализация томов Amazon EBS ):

... блоки хранения на томах, которые были восстановлены из моментальных снимков, должны быть инициализированы (извлечены из Amazon S3 и записаны на том), прежде чем вы сможете получить доступ к блоку. Это предварительное действие требует времени и может привести к значительному увеличению задержки операции ввода-вывода при первом обращении к каждому блоку.

Итак, когда вы запускаете свой контейнер Docker в первый раз, AWS загружает данные из S3 в ваш том EBS, это занимает некоторое время. Второй раз ваш контейнер запускается быстро, потому что данные уже находятся на томе.

...