Können Sie die Bandbreite auf eine tmpfs-basierte Ramdisk drosseln?

8

Ich habe eine Ramdisk mit tmpfs wie folgt erstellt:

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

Ich habe mich mit den Bandbreitenbeschränkungen des cgroup blkio-Subsystems "read_bps_device" und "write_bps_device" befasst, aber sie scheinen die Haupt- und Nebennummer Ihres Blockgeräts zu erfordern, auf das Sie den Zugriff drosseln möchten.

Gibt es eine Möglichkeit, eine ähnliche Bandbreitenbeschränkung wie für die RAM-Disk tmpfs im Speicher zu erreichen?

UPDATE : Ich habe einen Umweg gefunden, um dies zu erreichen. Ich exportiere zuerst den Ramdisk-Mount. Dann wird es von nfs über Loopback auf demselben Computer bereitgestellt. Ich benutze dann Linux Network Traffic Shaping, um Bandbreitenbeschränkungen festzulegen. Dies scheint zu liefern, was ich brauche. Ich bin gerade dabei, einige Messungen durchzuführen, um die Strafe zu sehen, die diese schreckliche Schichtung mit sich bringt. Ich werde die Informationen dazu in ein paar Tagen aktualisieren.

seltsame Lichter
quelle
Können Sie aufschreiben, was Sie als Antwort getan haben, damit ich das Kopfgeld vergeben kann? Kopfgeld ist eine Art "benutze es oder verliere es", sobald es angeboten wird.
Bratchley

Antworten:

1

statoder /proc/[PID]/mountinfosollte Ihnen trotzdem sagen, wie die Gerätenummern lauten:

[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

Beide Ausgänge zeigen 0:25und 0:24als Gerätenummer. Die Gerätenummer "0" wird für "unbenannte" Mounts verwendet (z. B. tmpfs, sysfs, nfs, procfs usw.). Hier ist zum Beispiel ein NFS-Mount:

[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

Die NFS - Mounts oben sind 0:23und 0:26jeweils.

Bratchley
quelle
Vielen Dank für die Info zur Haupt- / Nebennummer der Ramdisk. Das cgroups blkio-Subsystem scheint jedoch keine Drosselung für unbenannte Geräte zuzulassen. echo "0:32 1048576" > /sys/fs/cgroup/blkio/blkio.throttle.write_bps_devicegab mir einen "Schreibfehler: Ungültiges Argument". Vielleicht gibt es einen anderen Weg, den jemand kennt.
Weirdbluelights
Tut mir leid, das wusste ich nicht. Was ist aus Neugier das Ziel bei der Gestaltung der Bandbreite von tmpfs? Nur um Platz für andere Arbeiten am FSB zu schaffen oder so?
Bratchley
Dies ist für eine Simulationsstudie für ein Kursprojekt. Ziel ist es, die Leistung einer Anwendung gegen einen großen Bereich unterschiedlicher Schreib- / Lesebandbreiten zu zeichnen.
Weirdbluelights