Andrew Mercer
on this page

    On multi-socket servers (and some big single-socket ones), memory is attached to specific CPUs. Access to a CPU's own memory ("local") is faster than to another node's ("remote"). numastat shows how well allocations are placed.

    numactl --hardware                     # nodes, CPUs, memory sizes, distances
    numastat                               # per-node numa_hit, numa_miss, numa_foreign, local_node, other_node
    numastat -m                            # /proc/meminfo-style per node
    numastat -p <pid>                      # a process's memory per node
    numastat -c qemu-kvm                   # by process name, compact
    

    A growing numa_miss / other_node suggests processes are running on a different node from their memory. Pin them with numactl --cpunodebind=0 --membind=0 command or fix VM/CPU pinning. numactl is in the numactl package.