labtop 报告的不同缓存有哪些?

labtop 报告的不同缓存有哪些?

有谁知道我可以在哪里获得Linux上slabtop报告的不同内核对象的内存缓存的描述?例如什么是filpradix_tree_node等?

答案1

背景

报告的板slabtop很难量化为特定的内核模块,因为它们被合并为单一类型,这些类型根据它们所持有的对象与其他模块的相似性而重叠。

摘录-/proc/slabinfo 并没有完全告诉你它是什么样子

具体来说,在现代 Linux 上,slabinfo 中显示的名称基本上是一个提示,因为内核中当前的slab分配器如果多个板类型足够相似,则将它们合并在一起。如果五个不同的子系统都想要分配(不同的)没有特殊属性的 128 字节对象,那么它们不会分别获得具有单独的labinfo条目的单独的slab类型;相反,它们全部合并为一种slab类型,从而形成一个slabinfo条目。该slabinfo条目通常显示其中一个的名称,可能是第一个被设置的,没有直接暗示它还包括所有其他条目的使用。

(其他的根本不会出现在slabinfo中。)

本文继续讨论,由于上述合并,很多时候,slab 缓存类型根本不会出现在/proc/slabinfo.您可以通过查看此处看到一些这种效果:/sys/kernel/slab。该目录显示了哪些slab缓存正在以符号链接的形式与其他缓存合并。

 SS1  s2

左侧的图像显示了目录中/sys/kernel/slab正在合并到其他板中的链接(浅蓝色)。右图显示了所有合并到:t-0000256slab中的缓存。

跟踪板

如果我们继续查看/sys/kernel/slab目录:

$ ls -l /sys/kernel/slab/  | grep filp
lrwxrwxrwx 1 root root 0 Aug  5 21:23 filp -> :t-0000256

这是filp您所询问的。要了解更多信息,您可能需要尝试安装slabinfoCLI。

板信息

我没有这个 CLI 可以在 CentOS 7.x 上进一步分类,但您可能想研究一下。编译此 CLI 使您可以访问slabinfo -a其中显示与下面的板关联的别名的信息/sys/kernel/slab。我相信您正在寻找的这些别名将有助于关联slabtop.

参考:Linux 内核中的 Slab 分配器:SLAB、SLOB、SLUB

SS3

参考

相关内容