1 .\" Copyright (C) 1994, 1995, Daniel Quinlan <quinlan@yggdrasil.com>
2 .\" Copyright (C) 2002-2008, 2017, Michael Kerrisk <mtk.manpages@gmail.com>
3 .\" Copyright (C) 2023, Alejandro Colomar <alx@kernel.org>
5 .\" SPDX-License-Identifier: GPL-3.0-or-later
7 .TH proc_buddyinfo 5 (date) "Linux man-pages (unreleased)"
9 /proc/buddyinfo \- memory fragmentation
13 This file contains information which is used for diagnosing memory
15 Each line starts with the identification of the node and the name
16 of the zone which together identify a memory region.
18 followed by the count of available chunks of a certain order in
19 which these zones are split.
20 The size in bytes of a certain order is given by the formula:
24 (2\[ha]order)\ *\ PAGE_SIZE
28 The binary buddy allocator algorithm inside the kernel will split
29 one chunk into two chunks of a smaller order (thus with half the
30 size) or combine two contiguous chunks into one larger chunk of
31 a higher order (thus with double the size) to satisfy allocation
32 requests and to counter memory fragmentation.
33 The order matches the column number, when starting to count at zero.
35 For example on an x86-64 system:
38 Node 0, zone DMA 1 1 1 0 2 1 1 0 1 1 3
39 Node 0, zone DMA32 65 47 4 81 52 28 13 10 5 1 404
40 Node 0, zone Normal 216 55 189 101 84 38 37 27 5 3 587
44 In this example, there is one node containing three zones and there
45 are 11 different chunk sizes.
46 If the page size is 4 kilobytes, then the first zone called
48 (on x86 the first 16 megabyte of memory) has 1 chunk of 4 kilobytes
49 (order 0) available and has 3 chunks of 4 megabytes (order 10) available.
51 If the memory is heavily fragmented, the counters for higher
52 order chunks will be zero and allocation of large contiguous areas
55 Further information about the zones can be found in