slabtop
实时显示内核slab内存缓存信息
补充说明
slabtop命令 以实时的方式显示内核“slab”缓冲区的细节信息。
语法
1 | slabtop(选项) |
选项
1 | --delay=n, -d n:每n秒更新一次显示的信息,默认是每3秒; |
排序标准:
- 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。
实例
1 | slabtop |