UNPKG

4.52 kBMarkdownView Raw
1slabtop
2===
3
4实时显示内核slab内存缓存信息
5
6## 补充说明
7
8**slabtop命令** 以实时的方式显示内核“slab”缓冲区的细节信息。
9
10### 语法
11
12```shell
13slabtop(选项)
14```
15
16### 选项
17
18```shell
19--delay=n, -d n:每n秒更新一次显示的信息,默认是每3秒;
20--sort=S, -s S:指定排序标准进行排序(排序标准,参照下面或者man手册);
21--once, -o:显示一次后退出;
22--version, -V:显示版本;
23--help:显示帮助信息。
24```
25
26排序标准:
27
28* a: sort by number of active objects
29* b: sort by objects per slab
30* c: sort by cache size
31* l: sort by number of slabs
32* v:sort by number of active slabs
33* n: sort by name
34* o: sort by number of objects
35* p: sort by pages per slab
36* s: sort by object size
37* u: sort by cache utilization
38
39### 知识扩展
40
41内核的模块在分配资源的时候,为了提高效率和资源的利用率,都是透过slab来分配的。通过slab的信息,再配合源码能粗粗了解系统的运行情况,比如说什么资源有没有不正常的多,或者什么资源有没有泄漏。linux系统透过/proc/slabinfo来向用户暴露slab的使用情况。
42
43Linux 所使用的 slab 分配器的基础是 Jeff Bonwick 为 SunOS 操作系统首次引入的一种算法。Jeff 的分配器是围绕对象缓存进行的。在内核中,会为有限的对象集(例如文件描述符和其他常见结构)分配大量内存。Jeff 发现对内核中普通对象进行初始化所需的时间超过了对其进行分配和释放所需的时间。因此他的结论是不应该将内存释放回一个全局的内存池,而是将内存保持为针对特定目而初始化的状态。Linux slab 分配器使用了这种思想和其他一些思想来构建一个在空间和时间上都具有高效性的内存分配器。
44
45保存着监视系统中所有活动的 slab 缓存的信息的文件为/proc/slabinfo。
46
47### 实例
48
49```shell
50slabtop
51
52 Active / Total Objects (% used) : 897519 / 1245930 (72.0%)
53 Active / Total Slabs (% used) : 38605 / 38605 (100.0%)
54 Active / Total Caches (% used) : 94 / 145 (64.8%)
55 Active / Total Size (% used) : 129558.22K / 153432.58K (84.4%)
56 Minimum / Average / Maximum Object : 0.01K / 0.12K / 128.00K
57
58 OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
59440136 171471 38% 0.05K 6113 72 24452K buffer_head
60190086 148576 78% 0.05K 2437 78 9748K selinux_inode_security
61151840 146366 96% 0.48K 18980 8 75920K ext3_inode_cache
62144333 144143 99% 0.02K 711 203 2844K avtab_node
63130529 128488 98% 0.13K 4501 29 18004K dentry_cache
64 99214 99071 99% 0.03K 878 113 3512K size-32
65 43834 28475 64% 0.27K 3131 14 12524K radix_tree_node
66 17818 9450 53% 0.06K 302 59 1208K size-64
67 4602 4562 99% 0.05K 59 78 236K sysfs_dir_cache
68 3220 2855 88% 0.08K 70 46 280K vm_area_struct
69 2460 2114 85% 0.12K 82 30 328K size-128
70 1564 1461 93% 0.04K 17 92 68K Acpi-Operand
71 1540 1540 100% 0.33K 140 11 560K inode_cache
72 1524 466 30% 0.01K 6 254 24K anon_vma
73 1440 515 35% 0.05K 20 72 80K avc_node
74 1440 1154 80% 0.19K 72 20 288K filp
75 1170 1023 87% 0.05K 15 78 60K ext3_xattr
76 845 724 85% 0.02K 5 169 20K Acpi-Namespace
77 638 315 49% 0.35K 58 11 232K proc_inode_cache
78 450 434 96% 0.25K 30 15 120K size-256
79 424 386 91% 0.50K 53 8 212K size-512
80 312 107 34% 0.05K 4 78 16K delayacct_cache
81 306 284 92% 0.43K 34 9 136K shmem_inode_cache
82 303 108 35% 0.04K 3 101 12K pid
83 300 261 87% 0.19K 15 20 60K skbuff_head_cache
84 300 300 100% 0.12K 10 30 40K bio
85 260 260 100% 32.00K 260 1 8320K size-32768
86 254 6 2% 0.01K 1 254 4K revoke_table
87 236 55 23% 0.06K 4 59 16K fs_cache
88 216 203 93% 1.00K 54 4 216K size-1024
89 214 214 100% 2.00K 107 2 428K size-2048
90 203 83 40% 0.02K 1 203 4K biovec-1
91```
92
93