Я создал виртуальный диск с помощью tmpfs следующим образом:
sudo mount -t tmpfs -o size=1024m tmpfs /myramdisk
Я искал ограничения пропускной способности подсистемы cgroup blkio "read_bps_device" и "write_bps_device", но, похоже, они требуют старшего и младшего номера вашего блочного устройства, к которому вы хотите ограничить доступ.
Есть ли способ достичь такого же ограничения полосы пропускания для виртуального диска tmpfs в памяти?
ОБНОВЛЕНИЕ : я нашел окольный хакерский способ сделать это. Сначала я экспортирую монтирование в ramdisk. Затем nfs монтирует его через loopback на той же машине. Затем я использую формирование сетевого трафика Linux для установки ограничений полосы пропускания. Кажется, это обеспечивает то, что мне нужно. Я нахожусь в процессе выполнения некоторых измерений, чтобы видеть наказание, которое влечет за собой это отвратительное наслоение. Я обновлю информацию об этом через несколько дней.
Ответы:
stat
или/proc/[PID]/mountinfo
все равно должен сказать вам, что номера устройств:Оба выхода показывают
0:25
и0:24
как номера устройств, о которых идет речь. Номер устройства «0» используется для «безымянных» монтировок (таких как tmpfs, sysfs, nfs, procfs и т. Д.). Например, вот монтирование NFS:Крепления NFS выше
0:23
и0:26
соответственно.источник
echo "0:32 1048576" > /sys/fs/cgroup/blkio/blkio.throttle.write_bps_device
дал мне «ошибка записи: неверный аргумент». Может быть, есть другой способ, о котором кто-то знает.