mirror of https://github.com/mkerrisk/man-pages
proc.5: Document /proc/buddyinfo
This patch adds a short description about the contents of /proc/buddyinfo and how this file can be used to assist in checking for memory fragmentation issues. Signed-off-by: Elie De Brauwer <eliedebrauwer@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
1f63d3ec81
commit
eb7097c2c4
39
man5/proc.5
39
man5/proc.5
|
@ -1925,6 +1925,45 @@ Advanced power management version and battery information when
|
|||
.B CONFIG_APM
|
||||
is defined at kernel compilation time.
|
||||
.TP
|
||||
.I /proc/buddyinfo
|
||||
This file contains information which is used for diagnosing memory
|
||||
fragmentation issues.
|
||||
Each line starts with the identification of the node and the name
|
||||
of the zone which together identify a memory region, this is then
|
||||
followed by the count of available chunks of a certain order in
|
||||
which these zones are split.
|
||||
The size in bytes of a certain order is given by:
|
||||
.IR "(2^order)\ *\ PAGE_SIZE" .
|
||||
The binary buddy allocator algorithm inside the kernel will split
|
||||
one chunk into two chunks of a smaller order (thus with half the
|
||||
size) or combine two contiguous chunks into one larger chunk of
|
||||
a higher order (thus with double the size) to satisfy allocation
|
||||
requests and to counter memory fragmentation.
|
||||
The order matches the column number, when starting to count at zero.
|
||||
|
||||
For example on a x86_64 system:
|
||||
.in +4n
|
||||
.nf
|
||||
Node 0, zone DMA 1 1 1 0 2 1 1 0 1 1 3
|
||||
Node 0, zone DMA32 65 47 4 81 52 28 13 10 5 1 404
|
||||
Node 0, zone Normal 216 55 189 101 84 38 37 27 5 3 587
|
||||
.fi
|
||||
.in
|
||||
|
||||
In this example there is one node containing three zones and there
|
||||
are 11 different chunk sizes.
|
||||
If the page size is 4 kilobyte, then the first zone called
|
||||
.I DMA
|
||||
(on x86 the first 16 megabyte of memory) has 1 chunk of 4 kilobyte
|
||||
(order 0) available and has 3 chunks of 4 megabyte (order 10) available.
|
||||
|
||||
If the memory is heavily fragmentated, the counters for higher
|
||||
order chunks will be zero and allocation of large contiguous areas
|
||||
will fail.
|
||||
|
||||
Further information about the zones can be found in
|
||||
.IR /proc/zoneinfo .
|
||||
.TP
|
||||
.I /proc/bus
|
||||
Contains subdirectories for installed busses.
|
||||
.TP
|
||||
|
|
Loading…
Reference in New Issue