@m-kicherov

Как определить оптимальное количество контейнеров в зависимости от железа?

Нужно скачать много файлов pdf. В реддисе лежат задачи на скачивание. Есть микросервис на питоне контейнеризированный, который берет из редиса задачу и скачивает файл по rest api. Поднимаю несколько контейнеров через docker-compose scale, чтобы задачи на скачивание выполнялись параллельно.

Вопрос: процессор i7-6700 4 ядра 8 потоков, ОС ubuntu 20.04. Есть ли смысл делать scale > 8, и почему? Или контейнеры будут ждать друг друга и одновременно будут работать только 8?
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 2
@rPman
боже мой, сюда то зачем контейнеризацию притянули?

тебе нужен ОДИН контейнер в который передаешь что то типа
parallel -j N < list_commands.cmd
где N это количество одновременных потоков а в list_commands.cmd в каждой строчке по команде
wget http ... -o fileXXX.log -O filename

wget тратит очень мало ресурсов, ты можешь запустить тысячу процессов и это потребует от силы гигабайт ram и совсем не затронет процессор, поэтому лимит на количество подключений определяет удаленный сервер и ширина канала провайдера

напиши простенькое приложение, которое будет формировать список команд (можно даже на лету и передавать через пайпы), приписывать каждой ссылке сввое имя файла и свой лог файл, смотреть какие файлы уже созданы и какие ошибки в логах
Ответ написан
@vitaly_il1
DevOps Consulting
Правильный (ИМХО и AFAIK) хотя и непопулярный ответ - надо проверять\мерять производительность при разном кол-че контейнеров. Теория тут не очень помогает. Скорее всего, как уже сказали, оптимальное кол-во контейнеров будет намного больше чем кол-во процессоров.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы