Как влияет на производительность, если мы поместим процесс nodejs в Docker-контейнер? - PullRequest
0 голосов
/ 06 апреля 2019

Мой бэкэнд - это приложение nodejs, работающее в Ubuntu Linux.Он нуждается в spawn подпроцессе nodejs, когда есть запрос от клиента.Подпроцесс обычно занимает менее 20 секунд.Необходимо управлять этими процессами, если поступает много одновременных запросов. Я думаю переместить процесс spawn в контейнер докера.Это означает, что будет создан новый докер-контейнер для запуска процесса, если есть запрос от клиента.Таким образом, я могу использовать kubernetes для управления этими контейнерами.Я не уверен, что это хороший дизайн.Помещение процесса в Docker-контейнер вызывает проблемы с производительностью.

Причина, по которой я думаю использовать Docker-контейнер вместо spawn, заключается в том, что kubernetes предлагает все функции для управления этими контейнерами.Например, автоматическое масштабирование, если слишком много запросов, ограничение процессорного времени и памяти контейнера-докера, планировщика, мониторинга и т. Д. Я должен реализовать эту логику, если я использую spawn.

Ответы [ 2 ]

1 голос
/ 06 апреля 2019

Вы можете легко измерить накладные расходы самостоятельно: получить любой базовый образ докера (например, базовый образ Debian) и запустить

time bash -c true
time docker run debian bash -c true

(запускать каждый несколько раз и игнорировать первые запуски.)

Это даст вам стоимость запуска и очистки.Во время фактического времени выполнения незначительные / никакие дальнейшие издержки.

Сам Kubernetes может добавить еще несколько накладных расходов - лучший показатель тоже.

1 голос
/ 06 апреля 2019
Docker

на самом деле является просто оболочкой для основной функциональности самого linux, так что никакого существенного влияния нет - это просто разделение процесса в контейнере.поэтому вопрос больше об уровнях виртуализации на вашем хосте.Если это Linux в Windows или Docker в Windows, это может как-то повлиять на ваше приложение, а виртуализация - тяжелый путь.Докер позволяет вам разделять зависимости без какого-либо влияния на производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...