使用vfs_cache_pressure将文件系统元数据保存在caching中

我的Ubuntu Linux(虚拟)服务器每天运行rdiff-backup,它会查看所有文件元数据以确定需要备份的内容,从而减慢速度。 它每天都这样做,尽pipe大多数文件不会改变。 我想将这些数据保存在caching中。 为此,我一直在试验/proc/sys/vm/vfs_cache_pressure ,目前设置为20。

例如,一个虚拟服务器有35%的inode正在使用中:

在这里输入图像说明

这相当于1057350.Inode大小是256.这是否意味着我需要(1057350 * 256)= 258 MB? 编辑:显然不是,见下文。

而对于dentries? 这个服务器有225510个dirs,其中大部分是4k大的。 这是否意味着我需要225510 * 4096 = 880 MB的caching?

这是否意味着当我将vfs_cache_pressure设置为1并且具有2 GB的可用内存时,它将保留所有元数据caching?

我怎样才能看到我目前的caching是如何使用的; 什么是元数据和什么是数据?

编辑:我刚刚find了slabtop工具。 最上面的几行是:

  OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME 1656144 1655632 99% 0.19K 78864 21 315456K dentry 1207269 1207269 100% 0.76K 57489 21 919824K ext3_inode_cache 246909 246909 100% 0.10K 6331 39 25324K buffer_head 232640 232400 99% 0.06K 3635 64 14540K kmalloc-64 69776 60491 86% 0.55K 2492 28 39872K radix_tree_node 51896 49740 95% 0.61K 1996 26 31936K proc_inode_cache 37376 21915 58% 0.01K 73 512 292K kmalloc-8 

所以已经有1GB的inodecaching。 目录caching比我小很多。

不过,我仍然无法推断出使用了多less页caching。