新闻动态
当前位置:首页 > 新闻动态
Linux工具系列: Numa观测工具NumaTOP
2025-04-09

Linux工具系列】专栏是为开发者提供Linux工具在内存管理、调度优化、CPU等方面的优质清单。本期是带来NumaTOP工具,通过对基础概念和使用方法的介绍和分享,让您全方位了解NumaTOP的特性及使用场景。

1 什么是NumaTOP?

1.1 概念

进程性能分析的过程中,非一致性内存访问(NUMA)是一个很重要的指标。并且NUMA性能分析具有很大挑战性。

Linux提供了一个NUMA观察工具:numastat,能够显示本地远端节点内存使用比例、命中情况、远程内存分配等信息。numastat仅关注内存分配,无法给出CPU的实时内存流量。numastat虽然能从进程的角度查看内存在不同节点上的分配,但效果并不直观,无法定位到性能差的具体位置。

NumaTOP是一个观察工具,用于对NUMA系统上进程/线程运行时内存访问的跟踪和分析,来描述当前进程与线程的NUMA行为,并确定与NUMA相关的性能瓶颈所在的位置。

1.2 工具对比

1.jpg

基本使用

2.1 NUMA分析中的典型步骤

1) 查找内存局部性最差的进程,即访问远端NUMA节点内存占比最高的进程。

2)确定当前进程运行在哪个NUMA节点。

3) 在当前进程虚拟地址空间中的找到最高延迟的热内存。

4)确定这些热内存的位置。

5)在进程中找到热内存的位置,获取访问这些热内存的代码调用链列表。

2.2 NumaTop使用实录

运行一个测试程序mgen,该进程动作就是不断产生从某一个CPU到某一个NUMA节点的内存访问。

mgen程序启动后,在当前环境中执行NumaTOP,进入NumaTOP交互页面。具体显示如下图:

1.png

以下字段分别代表各列的解释和基本使用方法:

PID:进程号

PROC:进程名

RMA:远程内存访问

LMA:本地内存访问

CPI:每条指令的CPU周期数

CPU%:CPU使用占比

可以使用1/2/3/4/5来按照不同指标排列进程顺序。

从上图中可以得出结论:id号为3644572的进程mgen产生了大量的RMA,延迟为55.92,故mgen即是当前Numa内存访问中局部性最差的进程。

所谓 RMA,即 NUMA 架构下的远程内存访问,是指当前处理器访问远端 NUMA 区域的行为。LMA 与 RMA 的原理如下图所示。

2.png

选中某一条进程(上图中光标选中了mgen),键入Enter可以查看该进程的详细NUMA访问信息。如下图:

3.png

从该页面中可以得出结论:mgen进程正运行在当前环境的numa-0节点上。

在当前页面按下“L”键,NumaTOP将跳转到该进程的虚拟地址空间,以便进一步寻找RMA访问集中在哪一段虚拟内存地址。页面显示如下:

4.png

上图描述了进程mgen(pid: 3644572)的虚拟地址空间,其内容与/proc/3644572/maps文件相对应。其中,每一行代表进程的一个vma,ADDR代表虚拟内存地址,SIZE为vma大小,ACCESS%%为vma在当前进程中访问的百分比,LAT代表延迟(ns),DESC代表vma的描述(文件映射或匿名映射)。

该页面可支持的用户操作指令为:

Q:退出NumaTOP;

H:回到主页面;

B:返回上一级;

R:刷新内容和数据;

C:显示某个vma的调用链;

D:显示当前系统的numa分布。

基于该页面,能够确定热内存的位置(光标显示位置)。键入Enter后,可以看到某个vma的具体信息,如下:

5.png

上图表示,256M大小的起始地址为7FC5E5200000的vma在节点1上,且在当前进程vma中访问占比100%,延迟为167ns。

为进一步获取访问这些内存的代码调用链,可以在进程的虚拟地址空间列表页按下“C”键,如下图:

6.png

上图可以看到进程mgen产生RMA时的调用链函数。

此时,arch__dependent_read()函数证访问远端内存。

在NumaTOP首页点击N可以查看NUMA节点信息。

7.png

可以进入对应节点查看详细信息。

8.png

特性及使用场景分析

在非一致性内存访问(NUMA)架构日益普及的现代计算场景中,系统级调优已成为释放多核处理器性能潜力的关键环节。NumaTOP工具以其强大的实时监控、交互式界面以及对进程级别NUMA行为的深度分析能力,为开发者和系统管理员提供了一个高效且直观的性能优化利器。NumaTOP具备以下几个特性:

■ 实时监控、可交互性

提供了 GUI,能够实时打印当前进程状态,并支持按照特定指标进行排序。

■ 进程级别的NUMA节点内存访问

关注RMA访问情况,定位问题进程更加直观。

■ 进程级别的热点内存检测

以vma为粒度,提供RMA的具体节点位置。

■ 进程级别的热内存访问调用链跟踪

给出执行RMA的问题调用链,为进一步分析提供支持。

凭借上述特性,NumaTOP在实际应用中的优势和效果显著。在AI领域,NumaTOP借助其强大的实时观测功能,能够精准定位大模型推理时推理服务的NUMA分布。例如在CPU+GPU混合算力推理场景下,通过这种精准定位,NumaTOP可以有效识别跨节点内存访问瓶颈,并针对性地进行优化。在实际应用中,这种优化大幅提升了大模型推理性能,特别是在Decode阶段,推理延迟降低了20%以上。这不仅提高了推理效率,还为大规模AI模型的部署和应用提供了有力支持。

通过本文的介绍,我们已经了解到NumaTOP如何帮助我们快速定位NUMA架构下应用的性能瓶颈,从查找内存局部性最差的进程到获取具体的热内存访问调用链,每一步都清晰且高效。希望广大读者能够充分利用NumaTOP的特性,在实际工作中优化系统性能,提升资源利用率。未来,随着技术的不断进步,我们期待NumaTOP能够进一步扩展其功能,为NUMA系统的性能优化提供更加全面和深入的支持。

关注我们

Copyright © 2024 浪潮信息 鲁ICP备13028953号-12

售前咨询

售后服务

回到顶部

回到顶部

售前咨询
售后服务