如何查看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

相关推荐

  • Linux点亮开发板的具体步骤和方法是什么?

    在Linux环境下点亮开发板通常指让开发板成功运行Linux系统,并实现基本的输入输出功能(如串口日志显示、HDMI画面输出等),整个过程涉及硬件准备、系统镜像烧录、启动配置及调试等环节,以下是详细步骤说明,硬件准备在开始操作前,需确保以下硬件设备准备就绪:开发板:如树莓派、香橙派、全志T系列、瑞芯微RK系列等……

    2025年10月3日
    5300
  • 华硕FX50JK安装Linux系统的操作步骤是怎样的?

    在开始为华硕FX50JK安装Linux之前,充分的准备工作是确保安装过程顺利的关键,需要选择一款适合该硬件的Linux发行版,华硕FX50JK搭载Intel酷睿i7处理器、NVIDIA GTX 950M显卡,以及可能存在的Intel无线网卡,因此推荐选择对硬件支持较好的发行版,如Ubuntu( LTS版本长期支……

    2025年8月24日
    7400
  • 如何避免数据丢失?

    完整备份数据使用外部硬盘或云存储备份Windows重要文件(文档/照片/下载目录等),创建Windows系统恢复盘(控制面板 > 备份和还原 > 创建系统修复盘),用于修复引导故障,准备Linux安装介质推荐发行版:Ubuntu LTS(易用性强)、Fedora(新硬件支持佳),从官网下载ISO镜像……

    2025年8月9日
    10400
  • Linux系统如何查看当前swap的详细大小信息?

    在Linux系统中,Swap(交换空间)是物理内存的补充,当物理内存不足时,系统会将部分不常用的数据临时写入Swap分区或文件,以释放内存供其他程序使用,合理配置Swap空间对系统稳定性至关重要,而过大的Swap可能导致性能下降,过小则可能引发内存不足问题,掌握查看Swap大小及使用情况的方法是Linux系统管……

    2025年8月23日
    7300
  • 如何用ISO镜像安装Linux系统?

    通过ISO文件安装Linux系统是较为常见的安装方式,尤其适合需要自定义系统配置或离线安装的场景,以下是详细的安装步骤及注意事项,帮助顺利完成系统部署,安装前的准备工作下载ISO镜像:访问Linux发行版官网(如Ubuntu、Fedora、CentOS等),根据系统架构(64位/32位)下载对应的ISO镜像文件……

    2025年9月23日
    6300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信