У меня есть образ докера, на котором размещен веб-сервер, и другой, который выполняет фоновые задачи.Большую часть времени веб-сервер простаивает, и фоновые задачи должны иметь возможность использовать 100% процессорных ресурсов, но каждый раз, когда веб-серверу нужны ресурсы, он должен иметь приоритет над процессорами, чтобы он мог быстро реагировать.
Если бы все работало на одном компьютере с Linux, я мог бы использовать что-то вроде nice -n19 background-task
для запуска задач, и они позволили бы веб-серверу столько процессорного времени, сколько ему нужно.
Есть ли способзапустить весь контейнер на уровне nice
?Я знаю, что могу ограничить количество процессорного времени, доступного для каждой фоновой задачи, с помощью cpu_quota, но это не решает проблему.Если веб-сервер хочет использовать все 4 ядра ЦП для обслуживания клиента, это должно быть разрешено.Если веб-сервер не занят, все 4 ядра ЦП должны работать в фоновом режиме.
Если я изменю команду в файле Docker на:
nice -n19 background-task
Будет ли это работать между контейнерами?Процессы внутри контейнеров - это все виды нормальных процессов, выполняющихся в одном и том же ядре, так что, похоже, так и будет, но я не уверен.
Это кажется довольно очевидным.Я что-то упустил?