你能限制基于 tmpfs 的 ramdisk 的带宽吗?

你能限制基于 tmpfs 的 ramdisk 的带宽吗?

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

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

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

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

更新:我找到了一种迂回的黑客方法来实现这一点。我首先nfs导出ramdisk挂载。然后 nfs 将其挂载在同一台机器上的环回上。然后我使用 Linux 网络流量整形来设置带宽限制。这似乎提供了我所需要的。我正在执行一些测量,以了解这种可怕的分层所带来的惩罚。我将在几天内更新相关信息。

答案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

两个输出均显示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

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

相关内容