如何查看NUMA当前状态?

在Linux系统中,NUMA(Non-Uniform Memory Access,非统一内存访问)是提升多处理器服务器性能的关键技术,它通过将CPU和内存划分为多个”节点”,让每个CPU优先访问本地内存,减少跨节点延迟,以下是详细配置指南:
在配置前,先检查系统NUMA支持情况:

  1. 查看硬件支持
    执行命令:

    lscpu | grep -i numa

    若输出包含NUMA node(s)且数量大于1(如NUMA node(s): 2),说明硬件已支持NUMA。

  2. 检查NUMA是否启用

    dmesg | grep -i numa

    若显示NUMA: Using hardware configuration或类似信息,表示内核已启用NUMA。


开启NUMA的核心步骤

BIOS/UEFI 中启用NUMA(必需)

NUMA是硬件级功能,必须先在BIOS中开启

  • 重启服务器,进入BIOS/UEFI设置(通常按DelF2F12)。
  • Advanced Settings > CPU/Memory Configuration 中找到选项:
    • 名称可能为 NUMA SupportNode InterleavingMemory Interleaving
  • 关闭内存交错(Disable Memory Interleaving)
    此选项开启时内存均匀分布(模拟UMA),需关闭以启用NUMA。
  • 保存设置并重启。

⚠️ 注意:不同厂商(如Dell、HP、联想)路径略有差异,请参考服务器手册。

Linux内核参数调整

若BIOS已启用NUMA但系统未识别,需配置内核:

  • 编辑GRUB配置
     sudo vim /etc/default/grub
  • 修改内核启动参数
    GRUB_CMDLINE_LINUX行添加:

     GRUB_CMDLINE_LINUX="... numa=on"

    某些系统(如VMware虚拟机)需额外添加:

     GRUB_CMDLINE_LINUX="... numa=on transparent_hugepage=never"
  • 更新GRUB并重启
     sudo grub2-mkconfig -o /boot/grub2/grub.cfg  # CentOS/RHEL
     sudo update-grub                             # Ubuntu/Debian
     sudo reboot

验证NUMA状态

重启后确认配置生效:

  1. 检查NUMA节点

    numactl --hardware

    输出示例:

    available: 2 nodes (0-1)  # 表示2个NUMA节点已激活
    node 0 size: 32768 MB
    node 1 size: 32768 MB
  2. 查看内存分配策略

    numastat  # 显示各节点内存使用统计

高级配置工具

numactl:进程级NUMA控制

  • 指定进程运行在节点0,并使用本地内存
     numactl --cpunodebind=0 --membind=0 <command>
  • 示例:运行MySQL在节点0
     numactl --cpunodebind=0 --membind=0 /usr/sbin/mysqld

numad:自动NUMA优化

  • 安装并启用服务
     sudo yum install numad    # CentOS/RHEL
     sudo systemctl start numad

    numad 自动调整进程与内存的绑定,适合动态负载场景。

内核参数调优

  • 禁用区域回收策略(避免内存溢出)
     echo 0 > /proc/sys/vm/zone_reclaim_mode
  • 调整内存分配策略/proc/sys/kernel/numa_balancing):
    • 1:启用自动负载均衡(默认)
    • 0:关闭(需手动绑定)

注意事项

  1. 性能权衡
    • 数据库(如MySQL、Oracle)开启NUMA通常提升性能。
    • 部分应用(如高吞吐网络服务)可能因跨节点访问导致延迟,需测试后决定。
  2. 虚拟机场景
    VMware/KVM需同时开启虚拟NUMA(vNUMA)并匹配Guest OS配置。
  3. 内存不足处理
    若某节点内存耗尽,可通过numactl --interleave=all启用交错分配,但会牺牲性能。

开启NUMA需三步:BIOS启用 → 内核参数确认 → 系统工具优化,正确配置后,多路服务器性能可提升20%~50%,建议结合numastatperf工具监控效果,根据应用负载调整策略。

引用说明

  • 内核参数文档:https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
  • Red Hat NUMA优化指南:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/performance_tuning_guide/sect-red_hat_enterprise_linux-performance_tuning_guide-numa
  • Ubuntu服务器配置:https://ubuntu.com/server/docs/performance-numa

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7176.html

(0)
酷番叔酷番叔
上一篇 2025年7月13日 05:19
下一篇 2025年7月13日 05:37

相关推荐

  • 如何从U盘安装Linux系统盘?

    从U盘安装Linux系统是许多用户选择的方式,它既能保留原系统数据,又能体验Linux的强大功能,整个过程可分为准备工作、制作启动盘、BIOS设置、系统安装及后续配置几个关键环节,下面将详细说明每一步的操作方法和注意事项,准备工作在开始安装前,需确保以下工具和资料就绪,这是顺利完成安装的基础:U盘选择:准备一个……

    2025年9月16日
    9500
  • Linux程序是如何被系统执行的呢?

    Linux程序的执行是一个涉及编译、链接、加载和运行的多阶段过程,从源代码到最终执行,需要操作系统、编译器和加载器的协同工作,下面将详细拆解这一流程,从源码到可执行文件:编译与链接Linux程序通常以高级语言(如C、C++)源码形式存在,需通过编译器转换为机器可识别的二进制指令,这一过程分为四个阶段,以C语言为……

    2025年9月17日
    10700
  • Linux如何导入文件并打开?

    在Linux系统中,文件的导入与打开是日常操作中的核心环节,无论是系统管理、开发工作还是日常办公,都离不开对文件的有效处理,本文将详细讲解Linux系统中文件的导入方法、不同类型文件的打开方式,以及相关注意事项,帮助用户全面掌握文件操作技能,Linux文件系统基础与文件类型认知在讨论文件导入与打开前,需先了解L……

    2025年9月16日
    10500
  • 在Linux操作系统中,如何查看网卡接口的名称、状态及详细配置信息?

    在Linux系统中,网卡接口(简称“网卡口”)是设备与外部网络通信的核心硬件,查看其状态、配置及硬件信息是系统管理和网络排错的日常操作,本文将详细介绍通过不同命令查看网卡口信息的方法,涵盖基本信息、硬件参数、流量统计等实用场景,帮助用户高效掌握Linux网卡管理技巧,使用ip命令查看网络接口基本信息ip命令是现……

    2025年10月8日
    9800
  • linux虚拟机如何退出

    Linux虚拟机中,可使用命令exit或按Ctrl + D来退出当前

    2025年8月17日
    9700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信