Планирование Docker-контейнеров с учетом их ограничений по процессору

Прочитав документ Docker "Ограничение ресурсов контейнера", я обнаружил, что можно настроить планировщик CFS или планировщик реального времени для указания ограничений ЦП контейнера. В связи с этим у меня есть три вопроса:

  1. Когда вы указываете свои пределы с помощью --cpus команда в многоядерной среде, как контейнер запланирован на процессорах? Давайте предположим, что у нас есть 4 ядра, и мы определяем предел --cpus=1.4, Насколько я понял, эта команда говорит, что контейнеру разрешено использовать до 140% циклов ЦП. Однако в этом примере эти 140% могут быть запланированы для четырех процессоров разными способами. Два возможных варианта:

    • 100% циклов ядра 1 + 40% циклов ядра 2
    • 60% циклов ядра 1 + 40% ядра 2 + 40% ядра 3

Есть ли способ узнать, какое "отображение" будет использовано заранее?

  1. Когда вы указываете свои пределы с помощью --cpu-period=p а также --cpu-quota=q Команды, контейнер может использовать процессор до q us в каждом p us. Контейнер работает непрерывно в течение этого времени (без прерывания)? И можно ли сказать, когда начинается это " q нас "?

  2. Мой третий вопрос касается разницы между планировщиком CFS и планировщиком в реальном времени. Согласно документу, вы можете указать

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

с использованием --cpu-rt-runtime команда. Таким образом, это похоже на случай, когда вы указываете период и квоту при использовании планировщика CFS. Но должна быть разница в степени, в которой планировщики гарантируют свое обслуживание. Кто-нибудь знает эти уровни гарантии?

Благодарю.

0 ответов

Другие вопросы по тегам