统信uos启用numa支持需五步:一、bios中启用numa并禁用内存交错;二、通过dmesg和lscpu验证内核识别numa节点;三、安装numactl并配置运行时策略;四、在grub中添加numa=on参数;五、检查并移除numa=off等冲突内核参数。

如果您在统信UOS系统中运行高性能计算任务,但观察到内存访问延迟偏高或跨节点通信频繁,则可能是由于NUMA支持未启用或配置不当。以下是启用NUMA支持的具体操作步骤:
一、确认BIOS层NUMA已启用
NUMA功能必须首先在硬件固件层启用,否则操作系统无法识别和管理NUMA拓扑。UOS作为Linux发行版,依赖底层BIOS/UEFI提供的ACPI NUMA表来构建节点信息。
1、重启统信UOS计算机,在启动自检画面出现时连续按Del键(部分机型为F2或Esc)进入BIOS设置界面。
2、使用方向键导航至Advanced(高级)或Chipset Configuration(芯片组配置)菜单。
3、查找名为NUMA、Node Interleaving或Memory Interleaving的选项。
4、将该选项设置为Enabled;若存在Node Interleaving,请确保其为Disabled(启用NUMA时必须禁用内存交错)。
5、按F10保存设置并退出,系统自动重启。
二、验证UOS内核是否识别NUMA节点
BIOS启用后,需确认UOS内核已正确解析NUMA拓扑结构。若内核未加载NUMA支持或检测失败,/sys/devices/system/node/目录将为空或仅含node0。
1、打开终端,执行命令:grep -i numa /var/log/dmesg。
2、若输出中包含类似NUMA: Using 30 for the hash shift或Detected 2 NUMA nodes的内容,表明NUMA已被识别。
3、若输出为No NUMA configuration found,说明BIOS设置未生效或硬件不支持,需返回步骤一重新检查。
4、进一步执行lscpu | grep -i numa,确认NUMA node(s)数量非零且与物理CPU插槽数一致。
三、安装并使用numactl工具进行运行时控制
numactl是Linux下管理NUMA策略的核心工具,可绑定进程、内存分配策略及CPU亲和性,对HPC应用性能影响显著。
1、在终端中执行:sudo apt update && sudo apt install numactl -y(UOS V20及以上基于Debian系)。
2、执行numactl --hardware,列出所有NUMA节点编号、CPU列表、内存大小及距离矩阵。
3、执行numactl --show,查看当前shell默认的NUMA策略(通常为preferred或default)。
4、对计算密集型程序启动时强制绑定:例如运行MPI作业,使用numactl --cpunodebind=0 --membind=0 ./my_hpc_app限定在节点0执行与分配内存。
四、修改内核启动参数强制启用NUMA
某些UOS定制内核可能默认禁用NUMA探测,需通过GRUB参数显式激活。
1、编辑GRUB配置文件:sudo nano /etc/default/grub。
2、找到GRUB_CMDLINE_LINUX行,在引号内添加numa=on,例如:GRUB_CMDLINE_LINUX="quiet splash numa=on"。
3、保存文件后执行:sudo update-grub(UOS V20)或sudo grub-mkconfig -o /boot/grub/grub.cfg(UOS Server)。
4、重启系统,再次运行dmesg | grep -i numa验证参数已生效。
五、检查并禁用可能导致NUMA失效的内核参数
部分UOS预装内核可能携带numa=off、acpi=off或noirqbalance等干扰参数,会覆盖BIOS NUMA信息。
1、执行cat /proc/cmdline,检查当前启动参数是否含numa=off或acpi=off。
2、若存在上述禁用项,需回到步骤四修改/etc/default/grub,移除对应参数。
3、特别注意intel_idle.max_cstate=1等节能参数,在飞腾平台可能引发ACPI解析异常,应一并核查。
4、完成修改后务必执行sudo update-grub并重启。










