---
name: "proc_buddyinfo"
section: "5"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/proc_buddyinfo"
---

# proc\_buddyinfo(5)

memory fragmentation

## NAME

/proc/buddyinfo - memory fragmentation

## DESCRIPTION

- */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 the formula:

-

  ```
  (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 an x86-64 system:

  ```
  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
  ```

-

  In this example, there is one node containing three zones and there are 11 different chunk sizes. If the page size is 4 kilobytes, then the first zone called *DMA* (on x86 the first 16 megabyte of memory) has 1 chunk of 4 kilobytes (order 0) available and has 3 chunks of 4 megabytes (order 10) available.

-

  If the memory is heavily fragmented, 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 */proc/zoneinfo*.

## SEE ALSO

[**proc**(5)](/proc/5.md)
