Ограничить использование ввода / вывода с помощью cgroups
Я пытаюсь ограничить использование записи ввода-вывода на моем сервере с помощью cgroups.
Вот моя информация таблицы разделов:
major minor #blocks name
8 0 10485760 sda
8 1 9437184 sda1
8 2 1047552 sda2
Вот моя структура файловой системы:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 8.9G 8.4G 37M 100% /
none 1004M 0 1004M 0% /dev/shm
Вот моя конфигурация cgroups:
mount {
blkio = /cgroup/blkio;
}
group test2 {
blkio {
blkio.throttle.write_iops_device="";
blkio.throttle.read_iops_device="8:0 10485760";
blkio.throttle.write_bps_device="";
blkio.throttle.read_bps_device="8:0 10485760";
blkio.weight="";
blkio.weight_device="";
}
}
Когда я выполняю следующую команду чтения, она ограничивает операцию чтения только 10 Б / с.
dd if=file_1 of=/dev/zero
Когда я выполняю следующую команду записи, это не ограничивает согласно конфигурации
dd of=file_1 if=/dev/zero
Что мне не хватает?
1 ответ
Вы, наверное, уже разобрались, но в соответствии с этим сообщением в блоге вы должны сказать dd
чтобы открыть выходной файл с флагом O_DIRECT, иначе кеширование включится, и ваша конфигурация cgroup станет бесполезной:
dd of=file_1 if=/dev/zero oflag=direct