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



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.


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 /proc/meminfo.


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


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 shown.


Display numastat version information and exit.


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)

More Linux Commands

XtWindow(3) - obtain window information about a widget......
XtDisplay returns the display pointer for the specified widget. XtDisplayOfObject returns the display pointer for the specified object. XtScreen returns the scr

XTestSetGContextOfGC(3) - XTest extension functions.........
This extension is a minimal set of client and server extensions required to completely test the X11 server with no user intervention. This extension is not inte

XFreeColormap(3) - create, copy, or destroy colormaps and co
The XCreateColormap function creates a colormap of the specified visual type for the screen on which the specified window resides and returns the colormap ID as

XScreenSaverSuspend(3) - X11 Screen Saver extension client l
The X Window System provides support for changing the image on a display screen after a user-settable period of inactivity to avoid burning the cathode ray tube

gitrepository-layout(5) - Git Repository Layout (Man Page)
A Git repository comes in two different flavours: * a .git directory at the root of the working tree; * a &lt;project&gt;.git directory that is a bare repository (i.e

glTranslate(3gl) - multiply the current matrix by a translat
glTranslate produces a translation by $(x,y,z)$. The current matrix (see glMatrixMode) is multiplied by this translation matrix, with the product replacing the

eventfd2(2) - create a file descriptor for event notificatio
eventfd() creates an eventfd object that can be used as an event wait/notify mechanism by user-space applications, and by the kernel to notify user-space applic

Tcl_Finalize(3) - end the application or thread (and invoke
The procedures described here provide a graceful mechanism to end the execution of a Tcl application. Exit handlers are invoked to cleanup the applications stat

asn1_parser2tree(3) - function used to start the parse algor
Function used to start the parse algorithm. Creates the structures needed to manage the definitions included in file file. RETURNS ASN1_SUCCESS if the file has

gnutls_openpgp_crt_get_creation_time(3) - API function......
Get key creation time. RETURNS the timestamp when the OpenPGP key was created. REPORTING BUGS Report bugs to &lt;;. GnuTLS home page: http://www.

isspace_l(3) character classification functions (Man Page)
These functions check whether c, which must have the value of an unsigned char or EOF, falls into a certain character class according to the specified locale. T

canonical(5) - Postfix canonical table format (Man Page)....
The optional canonical(5) table specifies an address mapping for local and non-local addresses. The mapping is used by the cleanup(8) daemon, before mail is sto

We can't live, work or learn in freedom unless the software we use is free.