Я пытаюсь ограничить использование ввода-вывода для записи на моем сервере с помощью контрольных групп.
Вот моя информация о таблице разделов:
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
Что мне не хватает?
Вы, наверное, уже разобрались, но согласно это сообщение в блоге тебе нужно сказать dd
чтобы открыть выходной файл с флагом O_DIRECT, иначе кеширование сработает и ваша конфигурация cgroup станет бесполезной:
dd of=file_1 if=/dev/zero oflag=direct