SLABINFO - Linux手册页

时间:2019-08-20 18:01:50  来源:igfitidea点击:

Linux程序员手册 第5部分
更新日期: 2017-09-15

名称

slabinfo-内核slab分配器统计信息

语法

猫/ proc / slabinfo

说明

Linux内核中的常用对象(缓冲区头,inode,dentries等)具有自己的缓存。文件/ proc / slabinfo提供有关这些缓存的统计信息。以下(编辑后的)输出显示此文件内容的示例:

$ sudo cat /proc/slabinfo
slabinfo - version: 2.1
# name    <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> ...
sigqueue      100  100  160   25  1 : tunables  0  0  0 : slabdata   4   4  0
sighand_cache 355   405 2112  15  8 : tunables  0  0  0 : slabdata  27  27  0
kmalloc-8192   96   96  8192   4  8 : tunables  0  0  0 : slabdata  24  24  0
...

输出的第一行包括版本号,该版本号允许正在读取文件的应用程序处理文件格式的更改。 (请参见下面的版本。)下一行列出了其余各行中的列名称。

其余各行显示有关指定缓存的信息。在高速缓存名称之后,每行显示的输出显示每个高速缓存的三个组件:

*
统计
*
可调项
*
平板数据

统计信息如下:

active_objs
当前处于活动状态(即正在使用)的对象数。
num_objs
分配的对象总数(即正在使用和未使用的对象)。
objsize
此平板中对象的大小(以字节为单位)。
objperslab
每个平板中存储的对象数。
pagesperslab
为每个平板分配的页面数。

每行中的可调参数条目显示相应高速缓存的可调参数。使用默认的SLUB分配器时,没有可调参数,/ proc / slabinfo文件不可写,并且在这些字段中显示值0。使用较旧的SLAB分配器时,可以通过将以下形式的行写入/ proc / slabinfo来设置特定缓存的可调参数:

# echo 'name limit batchcount sharedfactor' > /proc/slabinfo

在这里,name是缓存名称,limit,batchcount和sharedfactor是整数,为相应的可调参数定义新值。限制值应为正值,批处理计数应为小于或等于限制的正值,共享因子应为非负值。如果任何指定值无效,则高速缓存设置保持不变。

每行中的可调参数条目包含以下字段:

limit
将被缓存的最大对象数。
batchcount
在SMP系统上,这指定了在重新填充可用对象列表时一次要传输的对象数。
sharedfactor
[待记录]

每行中的slabdata条目包含以下字段:

active_slabs
活动平板的数量。
nums_slabs
平板总数。
sharedavail
[待记录]

请注意,由于对象对齐和平板缓存的开销,对象通常不会紧密地打包到页面中。即使只有一个正在使用的对象的页面也被视为正在使用并且无法释放。

配置为CONFIG_DEBUG_SLAB的内核在每一行中还将具有其他统计信息字段,并且文件的第一行将包含字符串"(statistics)"。统计字段包括:活动对象的高水位线;对象已分配的次数;缓存已增长的次数(向该缓存中添加了新页面);获得缓存的次数(从该缓存中删除未使用的页面);以及向该缓存分配新页面时发生错误的次数。

版本

/ proc / slabinfo文件首先出现在Linux 2.1.23中。该文件已版本化,并且随着时间的流逝,已经有许多具有不同布局的版本:

1.0
在整个Linux 2.2.x内核系列中都有介绍。
1.1
出现在Linux 2.4.x内核系列中。
1.2
Linux 2.5开发系列中简要介绍的一种格式。
2.0
在Linux 2.6.x内核(包括Linux 2.6.9)中存在。
2.1
当前格式,最早出现在Linux 2.6.10中。

备注

只有root可以读取和(如果内核配置了CONFIG_SLAB)可以写入/ proc / slabinfo文件。

分配给SLAB / SLUB缓存的内存总量显示在/ proc / meminfo的Slab字段中。

另外参见

平板电脑(1)

内核源文件Documentation / vm / slub.txt和tools / vm / slabinfo.c。

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/