/proc/slabinfo:输入/输出错误

/proc/slabinfo:输入/输出错误

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

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

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

有什么问题?有什么方法可以限制 slab 缓存中的对象数量吗?

答案1

不幸的是,该slabinfo(5)页面已经过时了。如果我理解正确的话,在配置为使用 SLUB 分配器(自 Linux 2.6.22 开始可用,现在是默认的内核内存分配器)的内核中,该文件不可写入。请参阅内核源文件和中/proc/slabinfo的对比定义。在 中,只会失败并显示错误。slabinfo_write()mm/slub.cmm/slab.cmm/slub.cslabinfo_write()EIO

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

相关内容