Back to home page

OSCL-LXR

 
 

    


0001 ===============================
0002 Numa policy hit/miss statistics
0003 ===============================
0004 
0005 /sys/devices/system/node/node*/numastat
0006 
0007 All units are pages. Hugepages have separate counters.
0008 
0009 The numa_hit, numa_miss and numa_foreign counters reflect how well processes
0010 are able to allocate memory from nodes they prefer. If they succeed, numa_hit
0011 is incremented on the preferred node, otherwise numa_foreign is incremented on
0012 the preferred node and numa_miss on the node where allocation succeeded.
0013 
0014 Usually preferred node is the one local to the CPU where the process executes,
0015 but restrictions such as mempolicies can change that, so there are also two
0016 counters based on CPU local node. local_node is similar to numa_hit and is
0017 incremented on allocation from a node by CPU on the same node. other_node is
0018 similar to numa_miss and is incremented on the node where allocation succeeds
0019 from a CPU from a different node. Note there is no counter analogical to
0020 numa_foreign.
0021 
0022 In more detail:
0023 
0024 =============== ============================================================
0025 numa_hit        A process wanted to allocate memory from this node,
0026                 and succeeded.
0027 
0028 numa_miss       A process wanted to allocate memory from another node,
0029                 but ended up with memory from this node.
0030 
0031 numa_foreign    A process wanted to allocate on this node,
0032                 but ended up with memory from another node.
0033 
0034 local_node      A process ran on this node's CPU,
0035                 and got memory from this node.
0036 
0037 other_node      A process ran on a different node's CPU
0038                 and got memory from this node.
0039 
0040 interleave_hit  Interleaving wanted to allocate from this node
0041                 and succeeded.
0042 =============== ============================================================
0043 
0044 For easier reading you can use the numastat utility from the numactl package
0045 (http://oss.sgi.com/projects/libnuma/). Note that it only works
0046 well right now on machines with a small number of CPUs.
0047 
0048 Note that on systems with memoryless nodes (where a node has CPUs but no
0049 memory) the numa_hit, numa_miss and numa_foreign statistics can be skewed
0050 heavily. In the current kernel implementation, if a process prefers a
0051 memoryless node (i.e.  because it is running on one of its local CPU), the
0052 implementation actually treats one of the nearest nodes with memory as the
0053 preferred node. As a result, such allocation will not increase the numa_foreign
0054 counter on the memoryless node, and will skew the numa_hit, numa_miss and
0055 numa_foreign statistics of the nearest node.