Как добиться привязки процессоров в контейнерах?

Как добиться привязки процессоров в контейнерах?

Я вижу, что с помощью kubernetes можно задать привязку узлов для определенных рабочих нагрузок. Мне интересно, есть ли какие-либо возможности в различных технологиях контейнеров, таких как docker, rocket и т. д., которые позволяют прикреплять процессы к ядрам? или это вообще возможно в многопользовательских средах? Возможно, это будет подразумевать настройку на голом железе?

решение1

Если ваша система поддерживает SMP (симметричную многопроцессорную обработку) с некоторой комбинацией нескольких физических ЦП, ядер ЦП и логических ЦП, вы можете назначить контейнеры Docker определенным ресурсам ЦП.

Примеры команд для привязки ЦП к контейнерам Docker

Приведенные здесь примеры охватывают назначение Docker-контейнера mycontainer определенным ресурсам ЦП при создании контейнеров с помощью команды docker run. При запуске команд необходимо подставить имя Docker-контейнера и номера компонентов ЦП в соответствии с вашей средой.

Эта команда назначит Docker-контейнер mycontainer первому ЦП (CPU0):

# docker run --cpuset 0 /bin/bash mycontainer

Можно указать несколько ЦП. Эта команда назначит Docker-контейнер mycontainer ЦП 0 и 1:

# docker run --cpuset 0,1 /bin/bash mycontainer

Можно указать диапазон ЦП. Эта команда назначит Docker-контейнер mycontainer ЦП 0, 1 и 2:

# docker run --cpuset 0-2 /bin/bash mycontainer

Связанный контент