#docker #rest #parallel-processing #resources #cpu-usage
#докер #остальное #параллельная обработка #Ресурсы #загрузка процессора
Вопрос:
Это может показаться вам таким глупым, но это всего лишь пример того, что я пытаюсь сделать. Поэтому я хочу создать rest api, который может запускать скрипт докера. это может выглядеть примерно так
HTTP-СООБЩЕНИЕ : /api/v1/сервер -gt; скрипт : запуск докера sudo {имя изображения}
Таким образом, все работает нормально до тех пор, пока пользователь не захочет создать несколько контейнеров одновременно. У меня нет никакого опыта в том, как с этим справиться. Моя идея состоит в том, чтобы сделать асинхронный запрос api и заставить его запускать сценарий параллельно (для создания экземпляра каждого контейнера требуется около 1-2 минут, допустим, пользователь хочет создать 20 серверов, поэтому для его последовательного запуска потребуется 20*2 минуты), Но сервер имеет ограниченные ресурсы (процессор, потоки, ядро и т. Д.), Поэтому это может повлиять на другие запросы api и сделать его таким медленным. Итак, какова наилучшая практика для решения этой проблемы или как я могу рассчитать или приблизить минимальные ресурсы для создания 1 экземпляра.
Комментарии:
1. Обычно вы хотите избежать динамического запуска контейнеров; также учитывайте , что ваш HTTP-сервер может
sudo
что-то ещеdocker run
или очень легко использоватьdocker run
для корневого хоста. Можете ли вы настроить очередь заданий, используя систему, подобную RabbitMQ, с длительным рабочим процессом (или несколькими), и отправлять задания в эту очередь? Если задания занимают несколько минут, вам также придется изменить интерфейс HTTP, чтобы учесть это.