/ proc / slabinfo:input/输出错误

我正在使用Ubuntu 12.04和XFS(内核3.2.0-38-generic)。 由于XFS inodecaching使用的内存太多,因此我想限制用于cachingXFS inode的对象数量。

根据手册,我可以通过写限制/ proc / slabinfo来限制数量。 但是即使拥有超级用户权限,我也无法写入/ proc / slabinfo。

 $ echo“xfs_inode 1024 0 0”|  sudo tee / proc / slabinfo
 xfs_inode 1024 0 0
 tee:/ proc / slabinfo:input/输出错误

问题是什么? 有没有办法限制slabcaching中的对象数量?

slabinfo(5)页面不幸的是过时了。 如果我理解正确,在configuration为使用SLUB分配器的内核(从Linux 2.6.22开始可用,现在是默认的内核内存分配器)下, /proc/slabinfo文件是不可写的。 查看内核源文件mm/slub.cmm/slab.cslabinfo_write()的对比定义。 在mm/slub.cslabinfo_write()只是因为错误EIO失败。

编辑:只需确认我的理解,编译内核使用SLAB分配器,而不是默认的SLUB分配器。 在这种情况下, /proc/slabinfo可以以原始问题中提出的方式写入。 使用CONFIG_SLUB ,文件不可写,可调参数显示为0。