2016-11-10 4 views
0

У меня есть несколько контейнеров Docker с виртуальной машиной, и я хотел бы равномерно распределять пропускную способность ввода-вывода диска, скажем, 20% во всех контейнерах, фактически не накладывая никаких стрессов на другие ресурсы (т.е. CPU) на машине.Уменьшение скорости ввода-вывода диска в контейнерах

Я понимаю, что могу изменить группы, изменив вес blkio каждого контейнера; однако контейнеры Docker обладают тем свойством, что даже если вы ограничите использование определенного ресурса, он будет использовать больше этого предела, если никакой другой процесс не будет бороться за этот ресурс (возможно, есть способ отключить это?).

Одним из решений было бы просто запустить другой процесс, который делает произвольные чтения дисков (скажем, через dd). Однако dd также будет использовать значительный процессор, поэтому это нежелательно.

Чтобы обобщить мой вопрос, я ищу способ использования чтения дроссельной заслонки без использования каких-либо других ресурсов.

+0

Продолжение вашего другого [вопроса] (http://stackoverflow.com/questions/40277920/which-device-docker-container-writing-to)? – R0MANARMY

+0

Да. Но более конкретно о проблеме – user3249763

ответ

0

Существует аналогичный вопрос here. Будет ли --device-read-bps работать на ваш случай?

Флаг --device-read-bps ограничивает скорость чтения (байт в секунду) с устройства. Например, эта команда создает контейнер и ограничивает скорость чтения до 1 Мб в секунду с/Dev/ПДД:

$ docker run -it --device-read-bps /dev/sda:1mb ubuntu

Если да, то, вероятно, можно отметить этот, как дублировать

+0

Я хотел бы сделать это без перезапуска контейнера. Кажется, что «обновление докеров» поддерживает только значение blk-weight. Кроме того, мне непонятно, к какому устройству будет писать контейнер. – user3249763

Смежные вопросы