首页 > 其他分享 >crash —— 获取slub的详细信息

crash —— 获取slub的详细信息

时间:2023-09-24 16:55:24浏览次数:32  
标签:NODE 8k crash kmalloc cache slub PARTIAL 详细信息 CPU

在linux系统中可以通过/proc/slabinfo获取slab的统计数据,crash提供了kmem来实现这个功能。

查看系统每个kmem_cache的概要信息

crash> kmem -s
CACHE             OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME
ffff888141e12000   131072          0         0      0   128k  9p-fcall-cache
ffff888140834f00      312        800       806     31     8k  ext4_groupinfo_4k
ffff888140834e00      216          0       216      6     8k  p9_req_t
ffff888140834d00      304          0         0      0     8k  ip6-frags
ffff888140834c00     1984          0        32      2    32k  UDPv6
ffff888140834b00      312          0         0      0     8k  tw_sock_TCPv6
ffff888140834a00      352          0         0      0     8k  request_sock_TCPv6
ffff888140834900     3176          3        20      2    32k  TCPv6
...
ffff888005842900      256       1348      1696     53     8k  kmalloc-256
ffff888005842800      192       1014      2961    141     4k  kmalloc-192
ffff888005842700      128        883      1184     37     4k  kmalloc-128
ffff888005842600       96        664      1806     43     4k  kmalloc-96
ffff888005842500       64       4175      4992     78     4k  kmalloc-64
ffff888005842400       32       3387      4480     35     4k  kmalloc-32
ffff888005842300       16       2436      3840     15     4k  kmalloc-16
ffff888005842200        8       2283      5120     10     4k  kmalloc-8
ffff888005842100      128        652       864     27     4k  kmem_cache_node
ffff888005842000      224        163       288      9     8k  kmem_cache

查看某个kmem_cache的详细信息

比如想查看kmalloc-8k为例:

crash> kmem -S kmalloc-8k
CACHE             OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME
ffff888005842e00     8192         33        60     15    32k  kmalloc-8k
CPU 0 KMEM_CACHE_CPU:
  ffff88807f802db0
CPU 0 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea000019ba00  ffff8880066e8000     0      4          0     4
  FREE / [ALLOCATED]
   ffff8880066e8000  (cpu 0 cache)
   ffff8880066ea000  (cpu 0 cache)
   ffff8880066ec000  (cpu 0 cache)
   ffff8880066ee000  (cpu 0 cache)
CPU 0 PARTIAL:
  (empty)
CPU 1 KMEM_CACHE_CPU:
  ffff88807fc02db0
CPU 1 SLAB:
  (empty)
CPU 1 PARTIAL:
  (empty)
CPU 2 KMEM_CACHE_CPU:
  ffff88813d802db0
CPU 2 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0004068600  ffff888101a18000     1      4          2     2
  FREE / [ALLOCATED]
  [ffff888101a18000]
  [ffff888101a1a000]
   ffff888101a1c000  (cpu 2 cache)
   ffff888101a1e000  (cpu 2 cache)
CPU 2 PARTIAL:
  (empty)
CPU 3 KMEM_CACHE_CPU:
  ffff88813dc02db0
CPU 3 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0004108200  ffff888104208000     1      4          0     4
  FREE / [ALLOCATED]
   ffff888104208000  (cpu 3 cache)
   ffff88810420a000  (cpu 3 cache)
   ffff88810420c000  (cpu 3 cache)
   ffff88810420e000  (cpu 3 cache)
CPU 3 PARTIAL:
  (empty)
...
KMEM_CACHE_NODE   NODE  SLABS  PARTIAL  PER-CPU
ffff888005840700     0      3        1        1
NODE 0 PARTIAL:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea00001f7e00  ffff888007df8000     0      4          2     2
NODE 0 FULL:
  (not tracked)
KMEM_CACHE_NODE   NODE  SLABS  PARTIAL  PER-CPU
ffff888100000700     1      2        0        2
NODE 1 PARTIAL:
  (empty)
NODE 1 FULL:
  (not tracked)
KMEM_CACHE_NODE   NODE  SLABS  PARTIAL  PER-CPU
ffff888140000700     2      3        0        2
NODE 2 PARTIAL:
  (empty)
NODE 2 FULL:
  (not tracked)
KMEM_CACHE_NODE   NODE  SLABS  PARTIAL  PER-CPU
ffff8881c0000700     3      7        0        2
NODE 3 PARTIAL:
  (empty)
NODE 3 FULL:
  (not tracked)

标签:NODE,8k,crash,kmalloc,cache,slub,PARTIAL,详细信息,CPU
From: https://www.cnblogs.com/pengdonglin137/p/17726197.html

相关文章

  • crash —— 将flags转换成可读的字符
    将page的flags转换为可读字符串crash>kmem-g01fffe00000a001cFLAGS:1fffe00000a001cPAGE-FLAGBITVALUEPG_referenced20000004PG_uptodate30000008PG_dirty40000010PG_reclaim170020000PG_unevictable19......
  • crash —— 查看当前系统每个page的信息
    linux中page数据结构可以通过mem_map数组访问,下面的方法可以输出每个page的相关成员。通用版本下面这个命令可以显示每个page的一些关键成员的值。crash>kmem-pPAGEPHYSICALMAPPINGINDEXCNTFLAGSffffea000000000000......
  • crash —— 获取系统NODE、ZONE、SECTION、MEMBLOCK等信息
    crash>kmem-nNODESIZEPGLIST_DATABOOTMEM_DATANODE_ZONES0100925439ffff88e03ffc1000----ffff88e03ffc1000ffff88e03ffc5000......
  • crash —— 获取vmalloc分配信息
    crash>kmem-vVMAP_AREAVM_STRUCTADDRESSRANGESIZEffff88debf51c900ffff88debf53bd00ffffc90000000000-ffffc900000020008192ffff88debf51cf60ffff88debf53bd40ffffc90000002000-ffffc90000004000......
  • crash —— 获取系统内存使用统计数据
    crash>kmem-iPAGESTOTALPERCENTAGETOTALMEM197646761754GB----FREE33983015129.6GB17%ofTOTALMEMUSED163663746624.3GB82%ofTOTALMEMSHARED139137......
  • crash —— 获取物理内存布局信息
    crash>mach-mPHYSICALADDRESSRANGETYPE0000000000000000-0000000000001000E820_RESERVED0000000000001000-000000000006e000E820_RAM000000000006e000-0000000000070000E820_RESERVED0000000000070000-00000000000a0000E820_RAM0......
  • crash —— 获取cpuinfo信息
    crash>mach-cCPU0:structcpuinfo_x86{x86=6'\006',x86_vendor=0'\000',x86_model=85'U',x86_stepping=7'\a',x86_tlbsize=0,x86_virt_bits=48'0',x86_phys_bits=46......
  • crash —— 内核符号和地址直接相互转换
    通过sym可以将内核地址转换成内核符号,或者将内核符号转换成内核地址。根据地址转换为符号函数地址crash>symffffffff8166f300ffffffff8166f300(T)blk_update_request+16/home/pengdl/x86_64/linux-6.2/block/blk-mq.c:896全局变量crash>sym-qpanic_on_offfff......
  • crash —— 获取所有内核符号
    查看所有的内核符号以及地址crash>sym-l0(D)__per_cpu_start0(D)irq_stack_union4000(D)cpu_debug_store5000(D)cpu_tss_rw8000(D)gdt_page9000(d)exception_stackse000(d)entry_stack_storagef000(D)espfix_waddrf008(D)espfix_stackf010(D)cpu......
  • crash —— 如何知道哪些数据结构内嵌了指定的数据结构或者内嵌了指向指定数据结构的
    需求有时我们有这样的需求,比如我们知道了结构体task_struct,然后我们又想知道内核中有哪些数据结构中包含了task_struct,或者包含了指向task_struct的指针。做法用whatis-m可以做到:crash>whatis-mtask_structSIZETYPE8rcuwait16core_thread16io_......