Рейтинг:0

Выполнение Docker медленнее на хосте EC2

флаг hk

Недавно мы создали образ докера для запуска инструмента Terraspace для выполнения нашего CI/CD в пайплайнах GitLab. Контейнер использует рубин: 3.0.2-альпийский для восходящего потока, для справки.

Проблема, с которой мы столкнулись, заключается в том, что он очень медленный при выполнении на EC2 (m5.large), вот некоторые тайминги, которые включают запуск инструмента внутри образа докера и изначально на хосте.Тайминги докера выполняются внутри образа после его загрузки.

Докер EC2 ЕС2 Локальный докер Местный
реальный 5м33.403с реальное 0m44.799s реальное 1м40.842с реальное 0m39.626s
пользователь 0m11.150s пользователь 0m26.531s пользователь 0m24.736s пользователь 0m10.913s
система 0m1.437s система 0m3.276s система 0m13.846s система 0m4.580

Более медленное выполнение внутри докера также верно для стандартного образа terraspace. болтопы/терраспейс.

Похоже, это не проблема использования ресурсов, поскольку во время выполнения на хосте остается много ресурсов.

ИДЕНТИФИКАТОР КОНТЕЙНЕРА НАЗВАНИЕ CPU % ИСПОЛЬЗОВАНИЕ ПАМЯТИ / ОГРАНИЧЕНИЕ ПАМЯТИ % NET I/O BLOCK I/O PIDS
9b05765250b8 quirky_spence 0,54% 1,21 ГБ / 7,583 ГБ 15,95% 300 МБ / 3,43 МБ 0B / 1,08 МБ 3

Вот информация о докер-машине:

клиент:
 Контекст: по умолчанию
 Режим отладки: ложь

Сервер:
 Контейнеры: 4
  Работает: 0
  Приостановлено: 0
  Остановлено: 4
 Изображения: 3
 Версия сервера: 20.10.4
 Драйвер хранилища: overlay2
  Резервная файловая система: xfs
  Поддерживает d_type: правда
  Нативное оверлейное различие: правда
 Драйвер ведения журнала: json-файл
 Драйвер группы: cgroupfs
 Версия группы: 1
 Плагины:
  Объем: местный
  Сеть: хост-мост ipvlan macvlan null overlay
  Журнал: awslogs fluentd gcplogs gelf journald json-file localentries splunk syslog
 Рой: неактивен
 Среды выполнения: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Среда выполнения по умолчанию: runc
 Двоичный файл инициализации: docker-init
 версия containerd: d71fcd7d8303cbf684402823e425e9dd2e99285d
 версия запуска: %runc_commit
 версия инициализации: de40ad0
 Параметры безопасности:
  секкомп
   Профиль: по умолчанию
 Версия ядра: 4.14.238-182.422.amzn2.x86_64
 Операционная система: Амазон Линукс 2
 Тип ОС: линукс
 Архитектура: x86_64
 Процессоры: 2
 Общая память: 7,583 ГБ
 Имя: ip-10-0-4-227
 ID: FUYW:PCXQ:5ZFW:4SMP:YIG4:RNBH:HCMH:6R53:NHS2:HTJO:VAKM:5QFB
 Корневой каталог Docker: /var/lib/docker
 Режим отладки: ложь
 Реестр: https://index.docker.io/v1/
 Ярлыки:
 Экспериментальный: ложь
 Небезопасные реестры:
  127.0.0.0/8
 Зеркала реестра:
  https://докер-прокси/
 Динамическое восстановление включено: false

Любая помощь будет оценена по этому поводу.

Michael Hampton avatar
флаг cz
Проверьте свой DNS.
Sam Smart avatar
флаг hk
Только что проверил, DNS в порядке. Никаких проблем не решается изнутри контейнера.
Michael Hampton avatar
флаг cz
Интересно. Ну, цифры говорят о том, что он проводит много времени в контейнере, _ничего не делая_, т.е. ожидая чего-то, где это время на самом деле не расходуется при запуске вне контейнера. Обычно это проблема с DNS, хотя это может быть просто общая проблема с подключением или что-то совершенно другое, на что приложение тратит свое время в ожидании.
rvs avatar
флаг vn
rvs
Ввод/вывод был бы моим следующим предположением.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.