您可以将带宽限制到基于 tmpfs 的 ramdisk 吗?

wei*_*hts 9 io bandwidth limit cgroups ramdisk

我使用 tmpfs 创建了一个 ramdisk,如下所示:

sudo mount -t tmpfs -o size=1024m tmpfs /myramdisk
Run Code Online (Sandbox Code Playgroud)

我正在研究 cgroup blkio 子系统带宽限制“read_bps_device”和“write_bps_device”,但它们似乎需要您想要限制访问的块设备的主要和次要编号。

有没有办法实现与内存中 tmpfs ramdisk 类似的带宽限制?

更新:我找到了一种迂回的方法来完成这个。我先nfs 导出ramdisk 挂载。然后 nfs 在同一台机器上通过环回挂载它。然后我使用 linux 网络流量整形来设置带宽限制。这似乎提供了我需要的东西。我正在执行一些测量以查看这种可怕的分层所带来的损失。过几天我会更新这方面的信息。

Bra*_*ley 1

stat或者/proc/[PID]/mountinfo仍然应该告诉您设备编号是什么:

[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
Run Code Online (Sandbox Code Playgroud)

两个输出均显示0:250:24作为相关设备编号。“0”设备号用于“未命名”挂载(例如 tmpfs、sysfs、nfs、procfs 等)。例如,这是一个 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
Run Code Online (Sandbox Code Playgroud)

上面的 NFS 挂载分别是0:230:26