禁用分区上的 Linux 读写文件缓存

禁用分区上的 Linux 读写文件缓存

如何禁用 xfs 分区上的 linux 文件缓存(读取和写入)。

我们在硬件 RAID 上有一个 xfs 分区,用于存储我们的 RAW 高清视频。大多数拍摄都是 50-300gb,因此 Linux 缓存的命中率为 0.001%。

我已经尝试了同步选项,但在复制文件时它仍然会填满缓存。
(每次拍摄大约 30 次以上:P)

在 /etc/fstab 中:

/dev/sdb1 /video xfs 同步,noatime,nodiratime,logbufs=8 0 1

如果有帮助的话,我正在运行 debian lenny。

答案1

有一个解决方案非常适合您的用例:http://code.google.com/p/pagecache-mangagement/

查看源代码后:

svn checkout http://pagecache-mangagement.googlecode.com/svn/trunk/ pagecache-mangagement-read-only

问题

make
sudo cp *.so /usr/local/lib/
sudo cp *.sh /usr/local/bin/

然后你可以启动你想要的任何应用程序

pagecache-mangagement.sh <App>

并且应用程序不会填满您的缓存!

答案2

无缓存工具的设计目标类似:防止特定命令破坏当前缓冲区缓存。只需./nocache在命令前面添加:

./nocache cp -a ~/ /mnt/backup/home-$(hostname)

请注意,类似的工具pagecache-mangagement - 允许管理任意应用程序的页面缓存使用情况的工具正如 rmetzger 所说,目前的情况与 2008 年一样。当然,这可能是好事也可能是坏事,也可能是好坏参半 :) 我没有直接的比较,但我向 nocache 的人询问了一个

答案3

这无法干净利落地完成。如果某些应用程序需要这样做,则应对其进行修改以传递O_DIRECT给它们的open(2)调用。

答案4

man raw。您可以绑定一个绕过缓存的原始设备。它有一些限制。我只将它用于 CD/DVD 设备,所以我不知道它对您来说效果如何。

相关内容