crash —— 获取slub的详细信息

简介: crash —— 获取slub的详细信息

在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)
相关文章
|
8月前
|
存储 Kubernetes C++
Docker、containerd、CRI-O 和 runc 之间的区别
通过理解这些组件的角色和功能,可以更好地选择和配置容器环境,以满足特定的需求和应用场景。
518 25
|
存储 Linux 程序员
【Linux-14】进程地址空间&虚拟空间&页表——原理&知识点详解
【Linux-14】进程地址空间&虚拟空间&页表——原理&知识点详解
|
11月前
|
存储 Linux
服务器数据恢复——使用fsck后Ext4文件系统挂载不上的数据恢复案例
关于Ext4文件系统的几个概念: 块组:Ext4文件系统的全部空间被划分为若干个块组,每个块组结构基本上相同。 块组描述符表:每个块组都对应一个块组描述符,这些块组描述符统一放在文件系统的前部,称为块组描述符表。每个块组描述符大小为32字节,主要描述块位图、i-节点位图及i-节点表的地址等信息。 超级块(Superblock):用于存储文件系统的配置参数(块大小、总块数、i-节点数等)和动态信息(当前空闲块数和i-节点数)。Ext4文件系统的超级块始于1024字节处,即2号扇区。 i节点:描述文件的时间、大小、块指针等信息。
|
11月前
|
数据采集 人工智能 弹性计算
从零到英雄:利用百炼平台打造高效情感分析智能体的全攻略
百炼平台是阿里巴巴推出的面向开发者的AI模型训练和推理平台,提供丰富工具和服务,支持从需求分析到部署上线的全流程。本文以构建情感分析系统为例,详细介绍如何利用百炼平台完成数据准备、模型选择与训练、评估调优及最终部署。
1162 1
|
API 开发者
淘宝官方商品、交易、订单、物流、插旗接口接入说明
这些接口涉及淘宝店铺订单管理的关键方面,包括订单列表、订单详情及订单物流信息的获取。订单列表接口(如`taobao.trades.sold.get`和`taobao.topats.trades.sold.get`)帮助商家快速了解订单概览,进行基本管理和统计。订单详情接口(如`taobao.trade.fullinfo.get`和`taobao.topats.trades.fullinfo.get`)提供单个订单的全面信息,便于发货准备和服务支持。订单物流接口则允许跟踪订单的物流状态,确保配送顺畅。使用这些接口需遵循淘宝开放平台的规定,并关注API调用限制与更新。
|
缓存 Linux 程序员
深入理解Linux内核内存管理机制与实现(上)
深入理解Linux内核内存管理机制与实现
|
监控 物联网 Java
打造高可用系统:深入了解心跳检测机制
本文介绍了分布式系统中**心跳检测**的重要机制,用于监测系统节点的健康状态和通信畅通。心跳检测通过定期发送信号,若节点在预定期限内未响应则视为可能失效。处理机制包括重试、报警和自动修复。文章还提到了**周期检测**和**累计失效检测**两种策略,并给出Java代码示例展示心跳检测实现。此外,列举了心跳检测在分布式数据库、微服务和物联网等场景的应用,以及优化策略如动态调整心跳频率和优化超时机制。最后,强调了心跳检测对系统稳定性和高可用性的关键作用。
1955 2
|
搜索推荐 Linux
Linux系统编程(信号处理 sigacation函数和sigqueue函数 )
Linux系统编程(信号处理 sigacation函数和sigqueue函数 )
426 0
Linux系统编程(信号处理 sigacation函数和sigqueue函数 )
|
Kubernetes 网络协议 Cloud Native
K8s为什么需要calico? calico 原理深入理解.
K8s为什么需要calico? calico 原理深入理解.
2396 0