Допустим, я запускаю многопроцессорную службу внутри контейнера докеров, порождая несколько процессов, будет ли докер использовать все / несколько ядер / процессоров хоста или только один?
120
Допустим, я запускаю многопроцессорную службу внутри контейнера докеров, порождая несколько процессов, будет ли докер использовать все / несколько ядер / процессоров хоста или только один?
--cpuset-cpus
, хотите ли вы это изменить.Ответы:
Как упоминает Чарльз, по умолчанию можно использовать все, или вы можете ограничить его для каждого контейнера с помощью
--cpuset-cpus
параметра.Это ограничит контейнер 3 процессорами (0, 1 и 2). Дополнительные сведения см. В документации по запуску докеров .
Предпочтительный способ ограничения использования ЦП контейнерами - частичное ограничение ЦП:
Это ограничит ваш контейнер 2,5 ядрами на хосте.
Наконец, если вы запустите докер внутри виртуальной машины, включая Docker для Mac, Docker для Windows и докер-машину, эти виртуальные машины будут иметь ограничение ЦП отдельно от самого ноутбука. Docker работает внутри этой виртуальной машины и будет использовать все ресурсы, предоставленные самой виртуальной машине. Например, с Docker для Mac у вас есть следующее меню:
источник
Возможно, ваша виртуальная машина по умолчанию имеет только одно ядро. Поэтому вам следует сначала увеличить количество ЦП виртуальной машины, а затем использовать параметр --cpuset-cpus, чтобы увеличить количество ядер докеров . Вы можете удалить виртуальную машину docker по умолчанию, используя следующую команду, после чего вы можете создать другую виртуальную машину с дополнительным счетчиком процессоров и размером памяти . :
После этого шага вы можете указать количество ядер перед запуском образа. эта команда будет использовать 4 ядра из 8 ядер.
Затем вы можете проверить количество доступных ядер в вашем образе, используя эту команду:
источник