Riesci a limitare la larghezza di banda a un ramdisk basato su tmpfs?


8

Ho creato un ramdisk usando tmpfs come segue:

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

Stavo esaminando i limiti di larghezza di banda del sottosistema cgroup blkio "read_bps_device" e "write_bps_device" ma sembrano richiedere il numero maggiore e minore del dispositivo a blocchi a cui si desidera limitare l'accesso.

Esiste un modo per raggiungere un limite di larghezza di banda simile al ramdisk tmpfs in memoria?

AGGIORNAMENTO : ho trovato un modo bizzarro per ottenere questo risultato. Per prima cosa nfs esporto il mount ramdisk. Quindi nfs lo monta su loopback sulla stessa macchina. Quindi uso il traffic shaping della rete Linux per impostare i limiti di larghezza di banda. Questo sembra fornire ciò di cui ho bisogno. Sto eseguendo alcune misurazioni per vedere la penalità che comporta questa orribile stratificazione. Aggiornerò le informazioni al riguardo tra qualche giorno.


Puoi scrivere quello che hai fatto come risposta in modo che io possa assegnare la taglia? Bounty è una specie di "usalo o perdilo" una volta che viene offerto.
Bratchley,

Risposte:


1

stato /proc/[PID]/mountinfodovrebbe comunque dirti quali sono i numeri dei dispositivi:

[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

Entrambi gli output mostrano 0:25e 0:24come i numeri dei dispositivi in ​​questione. Il numero di dispositivo "0" viene utilizzato per montaggi "senza nome" (come tmpfs, sysfs, nfs, procfs, ecc.). Ad esempio, ecco un mount 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

I montaggi NFS sopra riportati sono 0:23e 0:26rispettivamente.


Grazie per le informazioni sul numero maggiore / minore del ramdisk. Ma il sottosistema cgroups blkio non sembra consentire la limitazione per dispositivi senza nome. echo "0:32 1048576" > /sys/fs/cgroup/blkio/blkio.throttle.write_bps_devicemi ha dato un "errore di scrittura: argomento non valido". Potrebbe esserci un altro modo che qualcuno conosce.
weirdbluelights

Ah scusa, non lo sapevo. Per curiosità, qual è l'obiettivo nel plasmare la larghezza di banda dei tmpfs? Solo per fare spazio ad altri lavori sull'FSB o qualcosa del genere?
Bratchley,

Questo è per uno studio di simulazione per un progetto del corso. L'obiettivo è tracciare le prestazioni di un'applicazione su una vasta gamma di larghezze di banda di scrittura / lettura diverse.
weirdbluelights
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.