英語

Numa策略命中/未命中統計

/sys/devices/system/node/node*/numastat

所有單位都是頁。Hugepages有單獨的計數器。

numa_hit,numa_miss和numa_foreign計數器反映了程序從它們首選的節點分配記憶體的能力。如果它們成功,則首選節點上的numa_hit會遞增,否則首選節點上的numa_foreign會遞增,而分配成功的節點上的numa_miss會遞增。

通常,首選節點是程序執行的CPU的本地節點,但是諸如記憶體策略之類的限制可能會改變這一點,因此還有兩個基於CPU本地節點的計數器。local_node類似於numa_hit,並且在同一節點上的CPU從節點分配時遞增。other_node類似於numa_miss,並且在來自不同節點的CPU成功分配時遞增。請注意,沒有類似於numa_foreign的計數器。

更詳細地說明

numa_hit

一個程序想要從此節點分配記憶體,並且成功了。

numa_miss

一個程序想要從另一個節點分配記憶體,但最終從此節點獲取了記憶體。

numa_foreign

一個程序想要在此節點上分配,但最終從另一個節點獲取了記憶體。

local_node

一個程序在此節點的CPU上執行,並從此節點獲取了記憶體。

other_node

一個程序在不同節點的CPU上執行,並從此節點獲取了記憶體。

interleave_hit

交錯想要從此節點分配並且成功了。

為了更易於閱讀,您可以使用numactl軟體包中的numastat實用程式 (http://oss.sgi.com/projects/libnuma/)。請注意,它目前僅在具有少量CPU的計算機上執行良好。

請注意,在具有無記憶體節點的系統上(其中一個節點具有CPU但沒有記憶體),numa_hit,numa_miss和numa_foreign統計資訊可能會嚴重傾斜。在當前的核心實現中,如果一個程序首選一個無記憶體節點(即,因為它執行在其本地CPU之一上),則該實現實際上將具有記憶體的最近節點之一視為首選節點。結果,這種分配不會增加無記憶體節點上的numa_foreign計數器,並且會使最近節點的numa_hit,numa_miss和numa_foreign統計資訊傾斜。