如何禁用 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 设备,所以我不知道它对您来说效果如何。