¿Puede limitar el ancho de banda a un disco RAM basado en tmpfs?

8

Creé un ramdisk usando tmpfs de la siguiente manera:

sudo mount -t tmpfs -o size=1024m tmpfs /myramdisk

Estaba investigando los límites de ancho de banda del subsistema cgroup blkio "read_bps_device" y "write_bps_device" pero parecen requerir el número mayor y menor de su dispositivo de bloqueo al que desea limitar el acceso.

¿Hay alguna manera de lograr un límite de ancho de banda similar al ramdisk tmpfs en memoria?

ACTUALIZACIÓN : Encontré una manera indirecta y hacky de lograr esto. Primero nfs exporto el montaje de ramdisk. Luego, nfs lo monta sobre loopback en la misma máquina. Luego uso la configuración del tráfico de red de Linux para establecer límites de ancho de banda. Esto parece proporcionar lo que necesito. Estoy en el proceso de realizar algunas mediciones para ver la penalidad que conlleva esta horrible estratificación. Actualizaré información sobre eso en unos días.

luces azules extrañas
fuente
¿Puedes escribir lo que hiciste como respuesta para que pueda otorgar la recompensa? Bounty es una especie de "úsalo o piérdelo" una vez que se ofrece.
Bratchley

Respuestas:

1

stato /proc/[PID]/mountinfoaún debería decirte cuáles son los números de dispositivo:

[root@XXXlin01 block]# stat --printf="%d" /tmp/mnt; echo
24
[root@XXXlin01 block]# stat --printf="%d" /tmp/mnt2; echo
25
[root@XXXlin01 block]# grep "/tmp/mnt" /proc/22195/mountinfo
40 20 0:24 / /tmp/mnt rw,relatime - tmpfs none rw
41 20 0:25 / /tmp/mnt2 rw,relatime - tmpfs none rw

Ambas salidas muestran 0:25y 0:24como los números de dispositivo en cuestión. El número de dispositivo "0" se utiliza para montajes "sin nombre" (como tmpfs, sysfs, nfs, procfs, etc.). Por ejemplo, aquí hay un montaje NFS:

[root@XXXlin01 block]# grep "/LinuxHome" /proc/22195/mountinfo
39 36 0:23 / /home/jad87 rw,relatime - nfs duhsnas-xxx:/ifs/Application\040File\040Shares/DUHS/LinuxHomeDir_fs/jad87 rw,vers=3,rsize=4096,wsize=4096,namlen=255,soft,proto=tcp,timeo=14,retrans=2,sec=sys,mountaddr=10.1x.92.106,mountvers=3,mountport=300,mountproto=udp,local_lock=none,addr=10.1x.92.106
42 36 0:26 / /home/tsa20 rw,relatime - nfs 10.1x.92.117:/ifs/Application\040File\040Shares/DUHS/LinuxHomeDir_fs/tsa20 rw,vers=3,rsize=4096,wsize=4096,namlen=255,soft,proto=tcp,timeo=14,retrans=2,sec=sys,mountaddr=10.1x.92.117,mountvers=3,mountport=300,mountproto=udp,local_lock=none,addr=10.1x.92.117

Los montajes NFS anteriores son 0:23y 0:26respectivamente.

Bratchley
fuente
Gracias por la información sobre el número mayor / menor del ramdisk. Pero el subsistema cgroups blkio no parece permitir la aceleración de dispositivos sin nombre. echo "0:32 1048576" > /sys/fs/cgroup/blkio/blkio.throttle.write_bps_deviceme dio un "error de escritura: argumento no válido". Puede haber otra manera que alguien sepa.
weirdbluelights
Ah lo siento, no lo sabía. Por curiosidad, ¿cuál es el objetivo al dar forma al ancho de banda de tmpfs? ¿Solo para dejar espacio para otro trabajo en el FSB o algo así?
Bratchley
Esto es para un estudio de simulación para un proyecto de curso. El objetivo es trazar el rendimiento de una aplicación frente a una amplia gama de diferentes anchos de banda de escritura / lectura.
weirdbluelights