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


8

我使用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网络流量整形来设置带宽限制。这似乎提供了我所需要的。我正在执行一些测量,以了解这种丑陋的分层带来的损失。我将在几天后更新有关该信息。


您能写下您的答案作为答案,以便我奖励吗?一旦提供,赏金就是一种“使用它或失去它”。
布拉奇利2014年

Answers:


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


感谢您提供有关ramdisk主号码/次号码的信息。但是cgroups blkio子系统似乎不允许限制未命名的设备。echo "0:32 1048576" > /sys/fs/cgroup/blkio/blkio.throttle.write_bps_device给了我一个“写错误:无效的参数”。也许有人知道另一种方式。
weirdbluelights 2014年

抱歉,不知道。出于好奇,塑造tmpfs带宽的目标是什么?只是为了为FSB上的其他工作腾出空间?
布莱奇利2014年

这是针对课程项目的模拟研究。目的是针对各种不同的读写带宽来绘制应用程序的性能。
weirdbluelights 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.