1 .. SPDX-License-Identifier: GPL-2.0 1 .. SPDX-License-Identifier: GPL-2.0 2 .. include:: ../disclaimer-zh_CN.rst 2 .. include:: ../disclaimer-zh_CN.rst 3 3 4 :Original: Documentation/admin-guide/numastat. 4 :Original: Documentation/admin-guide/numastat.rst 5 :Translator: Tao Zou <wodemia@linux.alibaba.com 5 :Translator: Tao Zou <wodemia@linux.alibaba.com> 6 6 7 7 8 ======================= 8 ======================= 9 Numa策略命中/未命中统计 9 Numa策略命中/未命中统计 10 ======================= 10 ======================= 11 11 12 /sys/devices/system/node/node*/numastat 12 /sys/devices/system/node/node*/numastat 13 13 14 所有数据的单位都是页面。巨页有 14 所有数据的单位都是页面。巨页有独立的计数器。 15 15 16 numa_hit、numa_miss和numa_foreign计数器 16 numa_hit、numa_miss和numa_foreign计数器反映了进程是否能够在他们偏好的节点上分配内存。 17 如果进程成功在偏好的节点上分配 17 如果进程成功在偏好的节点上分配内存则在偏好的节点上增加numa_hit计数,否则在偏好的节点上增 18 加numa_foreign计数同时在实际内存分 18 加numa_foreign计数同时在实际内存分配的节点上增加numa_miss计数。 19 19 20 通常,偏好的节点是进程运行所在 20 通常,偏好的节点是进程运行所在的CPU的本地节点,但是一些限制可以改变这一行为,比如内存策略, 21 因此同样有两个基于CPU本地节点的 21 因此同样有两个基于CPU本地节点的计数器。local_node和numa_hit类似,当在CPU所在的节点上分 22 配内存时增加local_node计数,other_nod 22 配内存时增加local_node计数,other_node和numa_miss类似,当在CPU所在节点之外的其他节点 23 上成功分配内存时增加other_node计数 23 上成功分配内存时增加other_node计数。需要注意,没有和numa_foreign对应的计数器。 24 24 25 更多细节内容: 25 更多细节内容: 26 26 27 =============== ============================== 27 =============== ============================================================ 28 numa_hit 一个进程想要从本节点 28 numa_hit 一个进程想要从本节点分配内存并且成功。 29 29 30 numa_miss 一个进程想要从其他节 30 numa_miss 一个进程想要从其他节点分配内存但是最终在本节点完成内存分配。 31 31 32 numa_foreign 一个进程想要在本节点 32 numa_foreign 一个进程想要在本节点分配内存但是最终在其他节点完成内存分配。 33 33 34 local_node 一个进程运行在本节点 34 local_node 一个进程运行在本节点的CPU上并且从本节点上获得了内存。 35 35 36 other_node 一个进程运行在其他节 36 other_node 一个进程运行在其他节点的CPU上但是在本节点上获得了内存。 37 37 38 interleave_hit 内存交叉分配策略下想 38 interleave_hit 内存交叉分配策略下想要从本节点分配内存并且成功。 39 =============== ============================== 39 =============== ============================================================ 40 40 41 你可以使用numactl软件包(http://oss.s 41 你可以使用numactl软件包(http://oss.sgi.com/projects/libnuma/)中的numastat工具 42 来辅助阅读。需要注意,numastat工 42 来辅助阅读。需要注意,numastat工具目前只在有少量CPU的机器上运行良好。 43 43 44 需要注意,在包含无内存节点(一 44 需要注意,在包含无内存节点(一个节点有CPUs但是没有内存)的系统中numa_hit、numa_miss和 45 numa_foreign统计数据会被严重曲解。 45 numa_foreign统计数据会被严重曲解。在当前的内核实现中,如果一个进程偏好一个无内存节点(即 46 进程正在该节点的一个本地CPU上运 46 进程正在该节点的一个本地CPU上运行),实际上会从距离最近的有内存节点中挑选一个作为偏好节点。 47 结果会导致相应的内存分配不会增 47 结果会导致相应的内存分配不会增加无内存节点上的numa_foreign计数器,并且会扭曲最近节点上的 48 numa_hit、numa_miss和numa_foreign统计数 48 numa_hit、numa_miss和numa_foreign统计数据。
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.