linux内核 快速分片,技术|Linux slabtop命令——显示内核片缓存信息

发布时间 2023-11-10 11:53:54作者: yooooooo

Linux内核需要为临时对象如任务或者设备结构和节点分配内存,缓存分配器管理着这些类型对象的缓存。现代Linux内核部署了该缓存分配器以持有缓存,称之为片。不同类型的片缓存由片分配器维护。本文集中讨论slabtop命令,该命令显示了实时内核片缓存信息。

1.命令用法:

该命令用起来很简单,默认执行时不要求任何参数。但是它要求root特权来读取内核片信息。以普通用户执行该命令会出现以下错误:

你可以在前面设置“sudo”来运行该命令,默认输出见下图:

要退出slabtop,只需敲‘q’,就像在top命令中那样。

 OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME
96000  91833  95%    1.00K   6000       16     96000K xfs_inode 

共 6000个slab

每个slab包含16个对象

共 96000个对象

对象的size是1K

所以CACHE SIZE是96000K

ACTIVE #:指对象中活跃的数量

CACHE SIZE #:是占用的内存大小

NAME #:内存项的名字

汇总信息中:

Active / Total Size (% used) : 390763.29K / 406922.94K (96.0%)

这一项是slab活跃项占用内存的大小/总的内存使用的大小

2.Slabtop选项:

2.1 显示间隔:

默认情况下,slabtop每隔3秒刷新一次。但是,如果你想要调整,可以使用-d或者--delay=N选项来调整刷新间隔,以秒为单位:

2.2 排序标准:

在slabtop输出中有很多字段,-s或--sort=S选项可以根据指定的排序标准对这些字段排序。该选项将在下一节中详细讲述。

2.3 输出一次:

-o或--once选项不会刷新输出,它仅仅将一次输出结果丢给STDOUT,然后退出。

2.4 版本信息:

-V或--version选项显示命令的版本并退出。

2.5 帮助:

常见选项,-h或--help显示命令的使用帮助。

3.排序标准:

排序标准确定了哪个片缓存显示在顶部,下面是slabtop的排序标准:

3.1 活跃:

缓存可以通过‘a’来对活跃对象编号进行排序。

3.2 对象/分片:

每分片对象数可以使用“b”来选择。

3.3 缓存大小:

要选择缓存大小,你需要提供“c”选项。

3.4 分片:

分片数量,使用“l”来选择。

3.5 活跃分片:

活跃分片数量。(注意:这不同于上面讲得活跃对象数量。)使用“v”来根据该标准排序。

3.6 名称:

缓存名称。相关字符是“n”。

3.7 对象:

要根据对象数量排序,使用“o”。

3.8 每分片页面数:

“p”将根据每分片页面数排序。

3.9 对象大小:

对象大小排序由“s”来指定。

3.10 使用:

“u”选项根据缓存使用量排序。