slabtop
實時顯示內核slab內存緩存信息
補充說明
slabtop命令 以實時的方式顯示內核“slab”緩衝區的細節信息。
語法
1slabtop(選項)
選項
1--delay=n, -d n:每n秒更新一次顯示的信息,默認是每3秒;
2--sort=S, -s S:指定排序標準進行排序(排序標準,參照下面或者man手冊);
3--once, -o:顯示一次後退出;
4--version, -V:顯示版本;
5--help:顯示幫助信息。
排序標準:
- a: sort by number of active objects
- b: sort by objects per slab
- c: sort by cache size
- l: sort by number of slabs
- v:sort by number of active slabs
- n: sort by name
- o: sort by number of objects
- p: sort by pages per slab
- s: sort by object size
- u: sort by cache utilization
知識擴展
內核的模塊在分配資源的時候,爲了提高效率和資源的利用率,都是透過slab來分配的。通過slab的信息,再配合源碼能粗粗瞭解系統的運行情況,比如說什麼資源有沒有不正常的多,或者什麼資源有沒有泄漏。linux系統透過/proc/slabinfo來向用戶暴露slab的使用情況。
Linux 所使用的 slab 分配器的基礎是 Jeff Bonwick 爲 SunOS 操作系統首次引入的一種算法。Jeff 的分配器是圍繞對象緩存進行的。在內核中,會爲有限的對象集(例如文件描述符和其他常見結構)分配大量內存。Jeff 發現對內核中普通對象進行初始化所需的時間超過了對其進行分配和釋放所需的時間。因此他的結論是不應該將內存釋放回一個全局的內存池,而是將內存保持爲針對特定目而初始化的狀態。Linux slab 分配器使用了這種思想和其他一些思想來構建一個在空間和時間上都具有高效性的內存分配器。
保存着監視系統中所有活動的 slab 緩存的信息的文件爲/proc/slabinfo。
實例
1slabtop
2
3 Active / Total Objects (% used) : 897519 / 1245930 (72.0%)
4 Active / Total Slabs (% used) : 38605 / 38605 (100.0%)
5 Active / Total Caches (% used) : 94 / 145 (64.8%)
6 Active / Total Size (% used) : 129558.22K / 153432.58K (84.4%)
7 Minimum / Average / Maximum Object : 0.01K / 0.12K / 128.00K
8
9 OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
10440136 171471 38% 0.05K 6113 72 24452K buffer_head
11190086 148576 78% 0.05K 2437 78 9748K selinux_inode_security
12151840 146366 96% 0.48K 18980 8 75920K ext3_inode_cache
13144333 144143 99% 0.02K 711 203 2844K avtab_node
14130529 128488 98% 0.13K 4501 29 18004K dentry_cache
15 99214 99071 99% 0.03K 878 113 3512K size-32
16 43834 28475 64% 0.27K 3131 14 12524K radix_tree_node
17 17818 9450 53% 0.06K 302 59 1208K size-64
18 4602 4562 99% 0.05K 59 78 236K sysfs_dir_cache
19 3220 2855 88% 0.08K 70 46 280K vm_area_struct
20 2460 2114 85% 0.12K 82 30 328K size-128
21 1564 1461 93% 0.04K 17 92 68K Acpi-Operand
22 1540 1540 100% 0.33K 140 11 560K inode_cache
23 1524 466 30% 0.01K 6 254 24K anon_vma
24 1440 515 35% 0.05K 20 72 80K avc_node
25 1440 1154 80% 0.19K 72 20 288K filp
26 1170 1023 87% 0.05K 15 78 60K ext3_xattr
27 845 724 85% 0.02K 5 169 20K Acpi-Namespace
28 638 315 49% 0.35K 58 11 232K proc_inode_cache
29 450 434 96% 0.25K 30 15 120K size-256
30 424 386 91% 0.50K 53 8 212K size-512
31 312 107 34% 0.05K 4 78 16K delayacct_cache
32 306 284 92% 0.43K 34 9 136K shmem_inode_cache
33 303 108 35% 0.04K 3 101 12K pid
34 300 261 87% 0.19K 15 20 60K skbuff_head_cache
35 300 300 100% 0.12K 10 30 40K bio
36 260 260 100% 32.00K 260 1 8320K size-32768
37 254 6 2% 0.01K 1 254 4K revoke_table
38 236 55 23% 0.06K 4 59 16K fs_cache
39 216 203 93% 1.00K 54 4 216K size-1024
40 214 214 100% 2.00K 107 2 428K size-2048
41 203 83 40% 0.02K 1 203 4K biovec-1
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。