mirror of https://github.com/mkerrisk/man-pages
135 lines
4.9 KiB
Groff
135 lines
4.9 KiB
Groff
.\" Copyright (c) 2001 Andreas Dilger (adilger@turbolinux.com)
|
|
.\"
|
|
.\" %%%LICENSE_START(VERBATIM)
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
.\" preserved on all copies.
|
|
.\"
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
.\" permission notice identical to this one.
|
|
.\"
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
.\" have taken the same level of care in the production of this manual,
|
|
.\" which is licensed free of charge, as they might when working
|
|
.\" professionally.
|
|
.\"
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
.\" %%%LICENSE_END
|
|
.\"
|
|
.\" FIXME Over time, the slabinfo format has gone through
|
|
.\" version changes. These should be documented:
|
|
.\"
|
|
.\" slabinfo 1.0 - Linux 2.2 (precisely: 2.1.23)
|
|
.\" slabinfo 1.1 - Linux 2.4 (precisely: 2.4.0-test3)
|
|
.\" slabinfo 1.2 - Linux 2.5.45
|
|
.\" slabinfo 2.0 - Linux 2.6 (precisely: 2.5.71)
|
|
.\" slabinfo 2.1 - Linux 2.6.10
|
|
.\"
|
|
.TH SLABINFO 5 2007-09-30 "" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
/proc/slabinfo \- kernel slab allocator statistics
|
|
.SH SYNOPSIS
|
|
.B cat /proc/slabinfo
|
|
.SH DESCRIPTION
|
|
Frequently used objects in the Linux kernel
|
|
(buffer heads, inodes, dentries, etc.)
|
|
have their own cache.
|
|
The file
|
|
.I /proc/slabinfo
|
|
gives statistics.
|
|
For example:
|
|
.LP
|
|
.in +4n
|
|
.nf
|
|
% cat /proc/slabinfo
|
|
slabinfo \- version: 1.1
|
|
kmem_cache 60 78 100 2 2 1
|
|
blkdev_requests 5120 5120 96 128 128 1
|
|
mnt_cache 20 40 96 1 1 1
|
|
inode_cache 7005 14792 480 1598 1849 1
|
|
dentry_cache 5469 5880 128 183 196 1
|
|
filp 726 760 96 19 19 1
|
|
buffer_head 67131 71240 96 1776 1781 1
|
|
vm_area_struct 1204 1652 64 23 28 1
|
|
\&...
|
|
size-8192 1 17 8192 1 17 2
|
|
size-4096 41 73 4096 41 73 1
|
|
\&...
|
|
.fi
|
|
.in
|
|
.LP
|
|
For each slab cache, the cache name, the number of currently
|
|
active objects, the total number of available objects, the
|
|
size of each object in bytes, the number of pages with at
|
|
least one active object, the total number of allocated pages,
|
|
and the number of pages per slab are given.
|
|
|
|
Note that because of object alignment and slab cache overhead,
|
|
objects are not normally packed tightly into pages.
|
|
Pages with even one in-use object are considered in-use and cannot be
|
|
freed.
|
|
|
|
Kernels compiled with slab cache statistics will also have
|
|
"(statistics)" in the first line of output, and will have 5
|
|
additional columns, namely: the high water mark of active
|
|
objects; the number of times objects have been allocated;
|
|
the number of times the cache has grown (new pages added
|
|
to this cache); the number of times the cache has been
|
|
reaped (unused pages removed from this cache); and the
|
|
number of times there was an error allocating new pages
|
|
to this cache.
|
|
If slab cache statistics are not enabled
|
|
for this kernel, these columns will not be shown.
|
|
|
|
SMP systems will also have "(SMP)" in the first line of
|
|
output, and will have two additional columns for each slab,
|
|
reporting the slab allocation policy for the CPU-local
|
|
cache (to reduce the need for inter-CPU synchronization
|
|
when allocating objects from the cache).
|
|
The first column is the per-CPU limit: the maximum number of objects that
|
|
will be cached for each CPU.
|
|
The second column is the
|
|
batchcount: the maximum number of free objects in the
|
|
global cache that will be transferred to the per-CPU cache
|
|
if it is empty, or the number of objects to be returned
|
|
to the global cache if the per-CPU cache is full.
|
|
|
|
If both slab cache statistics and SMP are defined, there
|
|
will be four additional columns, reporting the per-CPU
|
|
cache statistics.
|
|
The first two are the per-CPU cache
|
|
allocation hit and miss counts: the number of times an
|
|
object was or was not available in the per-CPU cache
|
|
for allocation.
|
|
The next two are the per-CPU cache free
|
|
hit and miss counts: the number of times a freed object
|
|
could or could not fit within the per-CPU cache limit,
|
|
before flushing objects to the global cache.
|
|
|
|
It is possible to tune the SMP per-CPU slab cache limit
|
|
and batchcount via:
|
|
|
|
.in +4n
|
|
.nf
|
|
echo "\fIcache_name limit batchcount\fP" > /proc/slabinfo
|
|
.fi
|
|
.in
|
|
.SH FILES
|
|
.I <linux/slab.h>
|
|
.SH VERSIONS
|
|
.I /proc/slabinfo
|
|
exists since Linux 2.1.23.
|
|
SMP per-CPU caches exist since Linux 2.4.0-test3.
|
|
.SH NOTES
|
|
Since Linux 2.6.16 the file
|
|
.I /proc/slabinfo
|
|
is present only if the
|
|
.B CONFIG_SLAB
|
|
kernel configuration option is enabled.
|