numastat(8) | Administration | numastat(8) |
numastat - Show per-NUMA-node memory statistics for processes and the operating system
numastat
numastat [-V]
numastat [<PID>|<pattern>...]
numastat [-c] [-m] [-n] [-p
<PID>|<pattern>] [-s[<node>]] [-v]
[-z] [<PID>|<pattern>...]
numastat with no command options or arguments at all, displays per-node NUMA hit and miss system statistics from the kernel memory allocator. This default numastat behavior is strictly compatible with the previous long-standing numastat perl script, written by Andi Kleen. The default numastat statistics shows per-node numbers (in units of pages of memory) in these categories:
numa_hit is memory successfully allocated on this node as intended.
numa_miss is memory allocated on this node despite the process preferring some different node. Each numa_miss has a numa_foreign on another node.
numa_foreign is memory intended for this node, but actually allocated on some different node. Each numa_foreign has a numa_miss on another node.
interleave_hit is interleaved memory successfully allocated on this node as intended.
local_node is memory allocated on this node while a process was running on it.
other_node is memory allocated on this node while a process was running on some other node.
Any supplied options or arguments with the numastat command will significantly change both the content and the format of the display. Specified options will cause display units to change to megabytes of memory, and will change other specific behaviors of numastat as described below.
numastat attempts to fold each table display so it will be conveniently readable on the output terminal. Normally a terminal width of 80 characters is assumed. When the resize command is available, numastat attempts to dynamically determine and fine tune the output tty width from resize output. If numastat output is not to a tty, very long output lines can be produced, depending on how many NUMA nodes are present. In all cases, output width can be explicitly specified via the NUMASTAT_WIDTH environment variable. For example, NUMASTAT_WIDTH=100 numastat. On systems with many NUMA nodes, numastat -c -z .... can be very helpful to selectively reduce the amount of displayed information.
/proc/*/numa_maps
/sys/devices/system/node/node*/meminfo
/sys/devices/system/node/node*/numastat
numastat -c -z -m -n
numastat -czs libvirt kvm qemu
watch -n1 numastat
watch -n1 --differences=cumulative numastat
The original numastat perl script was written circa 2003 by Andi Kleen <andi.kleen@intel.com>. The current numastat program was written in 2012 by Bill Gray <bgray@redhat.com> to be compatible by default with the original, and to add options to display per-node system memory usage and per-node process memory allocation.
numactl(8), set_mempolicy(2), numa(3)
1.0.0 | Bill Gray |