1 =============================== 1 =============================== 2 Numa policy hit/miss statistics 2 Numa policy hit/miss statistics 3 =============================== 3 =============================== 4 4 5 /sys/devices/system/node/node*/numastat 5 /sys/devices/system/node/node*/numastat 6 6 7 All units are pages. Hugepages have separate c 7 All units are pages. Hugepages have separate counters. 8 8 9 The numa_hit, numa_miss and numa_foreign count << 10 are able to allocate memory from nodes they pr << 11 is incremented on the preferred node, otherwis << 12 the preferred node and numa_miss on the node w << 13 << 14 Usually preferred node is the one local to the << 15 but restrictions such as mempolicies can chang << 16 counters based on CPU local node. local_node i << 17 incremented on allocation from a node by CPU o << 18 similar to numa_miss and is incremented on the << 19 from a CPU from a different node. Note there i << 20 numa_foreign. << 21 << 22 In more detail: << 23 << 24 =============== ============================== 9 =============== ============================================================ 25 numa_hit A process wanted to allocate m 10 numa_hit A process wanted to allocate memory from this node, 26 and succeeded. 11 and succeeded. 27 12 28 numa_miss A process wanted to allocate m 13 numa_miss A process wanted to allocate memory from another node, 29 but ended up with memory from 14 but ended up with memory from this node. 30 15 31 numa_foreign A process wanted to allocate o 16 numa_foreign A process wanted to allocate on this node, 32 but ended up with memory from !! 17 but ended up with memory from another one. 33 18 34 local_node A process ran on this node's C !! 19 local_node A process ran on this node and got memory from it. 35 and got memory from this node. << 36 20 37 other_node A process ran on a different n !! 21 other_node A process ran on this node and got memory from another node. 38 and got memory from this node. << 39 22 40 interleave_hit Interleaving wanted to allocat 23 interleave_hit Interleaving wanted to allocate from this node 41 and succeeded. 24 and succeeded. 42 =============== ============================== 25 =============== ============================================================ 43 26 44 For easier reading you can use the numastat ut 27 For easier reading you can use the numastat utility from the numactl package 45 (http://oss.sgi.com/projects/libnuma/). Note t 28 (http://oss.sgi.com/projects/libnuma/). Note that it only works 46 well right now on machines with a small number 29 well right now on machines with a small number of CPUs. 47 30 48 Note that on systems with memoryless nodes (wh << 49 memory) the numa_hit, numa_miss and numa_forei << 50 heavily. In the current kernel implementation, << 51 memoryless node (i.e. because it is running o << 52 implementation actually treats one of the near << 53 preferred node. As a result, such allocation w << 54 counter on the memoryless node, and will skew << 55 numa_foreign statistics of the nearest node. <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.