2014-07-04 81 views
1

我正在AMD阿布扎比架構上執行多線程程序,它有8個NUMA域。我正在使用numactl在不同核心中分配線程,並嘗試使用不同的內存策略。我想測量由NUMA域安排的緩存未命中/命中,但是使用像perf這樣的工具獲得了總計數器。我已經瀏覽過numastat,likwid和hpctoolkit等工具。你知道有哪些工具可以獲得由NUMA域隔開的標準性能計數器嗎?測量Linux中NUMA節點緩存未命中/命中的工具?

+0

在perf stat中使用--per-socket參數允許我獲得所需的計數器。儘管不是我想要的,因爲在AMD架構中每個插座有2個NUMA節點。 – Jofe

回答

1

numastat不足以滿足您的需求嗎?

>numastat 
          node0   node1   node2   node3 
numa_hit    2511148413  2668024472  2541805396  2631938751 
numa_miss     687767   186973   510852   79546 
numa_foreign    544853   1772504   1306738   1461626 
interleave_hit    14268   14291   14281   14309 
local_node   2509822983  2667700745  2541325673  2631417570 
other_node    2013197   510700   990575   600727 

          node4   node5   node6   node7 
numa_hit    2551615375  2287945142  2199394273  2506262343 
numa_miss    1178554   1863536   2037710   1278384 
numa_foreign    1709984   541463   241266   244888 
interleave_hit    14287   14274   14291   14294 
local_node   2551212630  2278515165  2198877939  2505436756 
other_node    1581299  11293513   2554044   2103971 
+0

嗨,謝謝你的回答。 Numastat沒有提供足夠的信息,因爲只顯示請求的頁面是否在特定節點中,而沒有考慮哪個節點請求該頁面。我想知道有多少請求在其域和特定節點之外創建了特定節點。你明白我的意思嗎? – Jofe

0

Intel PCM軟件包帶有一個名爲pcm-numa.x的工具。它會告訴您每個核心訪問本地NUMA節點的數據的次數,以及遠程節點的訪問次數。