Bisakah Anda membatasi bandwidth ke ramdisk berbasis tmpfs?

8

Saya membuat ramdisk menggunakan tmpfs sebagai berikut:

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

Saya sedang mencari batas bandwidth subsistem ckroup blkio "read_bps_device" dan "write_bps_device" tetapi mereka tampaknya memerlukan sejumlah besar dan kecil perangkat blok Anda yang ingin Anda akses throttle.

Apakah ada cara untuk mencapai batas bandwidth yang serupa dengan ramdisk tmpfs di memori?

PEMBARUAN : Saya menemukan cara bundaran untuk menyelesaikan ini. Saya pertama kali mengekspor nfs mount ramdisk. Kemudian nfs pasang melalui loopback pada mesin yang sama. Saya kemudian menggunakan pembentukan traffic jaringan linux untuk mengatur batas bandwidth. Ini sepertinya memberikan apa yang saya butuhkan. Saya sedang dalam proses melakukan beberapa pengukuran untuk melihat penalti yang ditimbulkan oleh layering mengerikan ini. Saya akan memperbarui info tentang itu dalam beberapa hari.

cahaya aneh
sumber
Bisakah Anda menuliskan apa yang Anda lakukan sebagai jawaban sehingga saya bisa memberi hadiah? Bounty adalah semacam "gunakan atau hilangkan" begitu ditawarkan.
Bratchley

Jawaban:

1

statatau /proc/[PID]/mountinfomasih harus memberi tahu Anda apa nomor perangkat:

[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

Kedua output menunjukkan 0:25dan 0:24sebagai nomor perangkat yang dipermasalahkan. Nomor perangkat "0" digunakan untuk tunggangan "tidak bernama" (seperti tmpfs, sysfs, nfs, procfs, dll). Sebagai contoh, berikut adalah 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

Mount NFS di atas adalah 0:23dan 0:26masing - masing.

Bratchley
sumber
Terima kasih atas info tentang nomor ramdisk utama / minor. Tetapi subsistem ckroup blkio tampaknya tidak memungkinkan pembatasan untuk perangkat yang tidak disebutkan namanya. echo "0:32 1048576" > /sys/fs/cgroup/blkio/blkio.throttle.write_bps_devicememberi saya "kesalahan tulis: Argumen tidak valid". Mungkin ada cara lain yang diketahui seseorang.
oddbluelights
Ah maaf, tidak tahu itu. Karena penasaran, apa tujuan membentuk bandwidth tmpfs? Hanya untuk memberi ruang bagi pekerjaan lain pada FSB atau sesuatu?
Bratchley
Ini untuk studi simulasi untuk proyek kursus. Tujuannya adalah untuk memplot kinerja aplikasi terhadap sejumlah besar bandwidth penulisan / baca yang berbeda.
oddbluelight