调整inodecaching的linuxcaching设置

我正在处理文件系统中的一亿个文件(分布在许多子目录中),我需要能够非常快速地列出它们,特别是为了有效地同步它们。

另一方面,我并不需要将文件的实际内容保存在caching中。

我不断地添加和删除文件,但并不经常(类似于每秒十次)。

有没有一种方法可以告诉操作系统(2.6.18-194.el5)在inodecaching上使用24GB可用RAM,而不是文件caching? 我已经看过/ proc / etc / vm / vfs_cache_pressure,但它似乎不是我正在寻找…

如何降低vfs_cache_pressure的值? 根据文档/ proc / sys / vm / *这应该做你想要的:

vfs_cache_pressure

此百分比值控制内核回收用于caching目录和inode对象的内存的趋势。

在vfs_cache_pressure = 100的默认值下,内核将尝试以相对于pagecache和swapcache回收的“公平”的速率回收dentries和inode。 减lessvfs_cache_pressure会导致内核倾向于保留dentry和inodecaching。 当vfs_cache_pressure = 0时,由于内存压力,内核永远不会回收dentries和inode,这很容易导致内存不足的情况。 将vfs_cache_pressure增加到100以上会导致内核更喜欢回收dentries和inode。

将vfs_cache_pressure显着增加到100以上可能会对性能产生负面影响。 回收代码需要采取各种locking来查找可释放的目录和inode对象。 在vfs_cache_pressure = 1000的情况下,它会查找比可用对象多十倍的可用对象。

你可以使用这两个命令来完成同样的工作。

已更新(更新整个驱动器中文件和文件夹位置的列表)

find/(列出整个操作系统中的所有文件,当它从数据库中select时,这个文件是快速的)