Provided by: numactl_2.0.12-1_amd64 bug


       numastat - Show per-NUMA-node memory statistics for processes and the operating system



       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

       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.


       -c     Minimize  table  display width by dynamically shrinking column widths based on data
              contents.  With this option, amounts of memory  will  be  rounded  to  the  nearest
              megabyte (rather than the usual display with two decimal places).  Column width and
              inter-column spacing will be somewhat unpredictable with this option, but the  more
              dense display will be very useful on systems with many NUMA nodes.

       -m     Show the meminfo-like system-wide memory usage information.  This option produces a
              per-node  breakdown  of  memory  usage  information  similar  to  that   found   in

       -n     Show the original numastat statistics info.  This will show the same information as
              the default numastat behavior but the units will be megabytes of memory, and  there
              will be other formatting and layout changes versus the original numastat behavior.

       -p <PID> or <pattern>
              Show  per-node  memory allocation information for the specified PID or pattern.  If
              the -p argument is only digits, it is assumed  to  be  a  numerical  PID.   If  the
              argument  characters  are  not  only  digits,  it  is assumed to be a text fragment
              pattern to search for in process command lines.  For example, numastat -p qemu will
              attempt to find and show information for processes with "qemu" in the command line.
              Any command line arguments remaining  after  numastat  option  flag  processing  is
              completed,  are assumed to be additional <PID> or <pattern> process specifiers.  In
              this sense, the -p option flag is optional: numastat qemu is equivalent to numastat
              -p qemu

              Sort the table data in descending order before displaying it, so the biggest memory
              consumers are listed first.  With no specified <node>, the table will be sorted  by
              the  total  column.   If the optional <node> argument is supplied, the data will be
              sorted by the <node> column.  Note that <node> must follow the -s immediately  with
              no  intermediate white space (e.g., numastat -s2). Because -s can allow an optional
              argument, it must always  be  the  last  option  character  in  a  compound  option
              character  string.  For  example, instead of numastat -msc (which probably will not
              work as you expect), use numastat -mcs

       -v     Make some reports more verbose.  In particular, process  information  for  multiple
              processes  will  display detailed information for each process.  Normally when per-
              node information for multiple processes is displayed,  only  the  total  lines  are

       -V     Display numastat version information and exit.

       -z     Skip  display  of table rows and columns of only zero valuess.  This can be used to
              greatly reduce the amount of uninteresting zero data  on  systems  with  many  NUMA
              nodes.   Note  that  when  rows  or  columns of zeros are still displayed with this
              option, that probably means there is at least one value in the row or  column  that
              is actually non-zero, but rounded to zero for display.


       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.






       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
       <>.   The  current  numastat  program was written in 2012 by Bill Gray
       <> 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)