Chapter 28. Profiling memory allocation with numastat

With the numastat tool, you can display statistics over memory allocations in a system.

The numastat tool displays data for each NUMA node separately. You can use this information to investigate memory performance of your system or the effectiveness of different memory policies on your system.

28.1. Default numastat statistics

By default, the numastat tool displays statistics over these categories of data for each NUMA node:

The number of pages that were successfully allocated to this node.
The number of pages that were allocated on this node because of low memory on the intended node. Each numa_miss event has a corresponding numa_foreign event on another node.
The number of pages initially intended for this node that were allocated to another node instead. Each numa_foreign event has a corresponding numa_miss event on another node.
The number of interleave policy pages successfully allocated to this node.
The number of pages successfully allocated on this node by a process on this node.
The number of pages allocated on this node by a process on another node.

High numa_hit values and low numa_miss values (relative to each other) indicate optimal performance.

28.2. Viewing memory allocation with numastat

You can view the memory allocation of the system by using the numastat tool.


  • Install the numactl package:

    # dnf install numactl


  • View the memory allocation of your system:

    $ numastat
                                 node0         node1
    numa_hit                  76557759      92126519
    numa_miss                 30772308      30827638
    numa_foreign              30827638      30772308
    interleave_hit              106507        103832
    local_node                76502227      92086995
    other_node                30827840      30867162

Additional resources

  • numastat(8) man page