Я использовал следующую команду, чтобы проверить, применяются ли ограничения IOPS и чтения / записи диска или нет, но это не так. Как только я запускаю команду, диск использует 100% операций ввода-вывода и пропускной способности. подумал, я попытался изменить диск, я не уверен, какой диск мне следует использовать, поскольку у меня есть xvda, xvdf и dm0-dm8.
docker run --rm --device-read-bps = / dev / dm-0: 1000 --device-write-bps = / dev / dm-0: 1000 --device-read-iops = / dev / xvdf: 20 --device-write-iops = / dev / xvdf: 20 nginx bash -c "time dd if = / dev / zero of = testdocker bs = 512k count = 1000 oflag = dsync"
Что может быть причиной того, что он не работает? ОС - ubuntu, а версия докера: Docker версии 1.13.0, сборка 49bf474.
С немного измененной командой я дал ей прямой путь, куда писать тестовый файл, но теперь он застревает и ничего не делает, просто зависает там
docker run --rm -v "/ dc: / dc" --device-read-bps = / dev / xvda: 1m --device-write-bps = / dev / xvda: 1m --device-read-iops = / dev / xvda: 100 --device-write-iops = / dev / xvda: 100 nginx bash -c "time dd if = / dev / zero of = / dc / testdocker bs = 512 count = 1000 oflag = dsync"
После этой команды IOWAIT становится 100%, а докер просто зависает, ничего не делает. Я даже не могу это остановить или даже что-нибудь с этим сделать.
Контрольные группы v1 не могут ограничивать буферизованный ввод-вывод, который составляет подавляющее большинство операций ввода-вывода в системе.
Группы управления V2 могут. Если вы используете ядро, совместимое с v2 (и если докер его поддерживает, я не знаю, поддерживает ли оно), вам следует использовать его.