如何查看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服务器是企业IT基础设施建设的核心环节,需结合硬件环境、业务需求及安全规范逐步操作,以下是详细安装流程,涵盖从准备到配置的全过程,安装前的准备工作硬件选择与检查根据服务器用途(如Web服务、数据库、虚拟化)选择硬件:CPU需满足性能要求,内存建议至少4GB(生产环境推荐8GB以上),硬盘建议使用S……

    2025年8月28日
    8000
  • 如何正确创建挂载点目录?

    在Linux系统中安装ISO文件是常见需求,无论是安装操作系统、运行工具盘还是挂载软件镜像,以下是专业、安全且详细的操作指南,涵盖命令行与图形界面方法,适用于Ubuntu、Fedora、CentOS等主流发行版,ISO文件是什么?ISO是光盘镜像的标准化格式,包含完整的文件系统结构,Linux中处理ISO的典型……

    2025年7月23日
    9600
  • kail linux如何安装

    li Linux可通过官网下载安装镜像,用U盘等介质制作启动盘,然后从启动盘

    2025年8月15日
    8500
  • 图形界面设置适合新手吗?

    在Linux系统中设置自动登录可以省去每次启动时输入密码的步骤,适用于家庭电脑、信息亭或测试环境等低安全风险场景,但请注意:自动登录会显著降低系统安全性,请勿在公共设备、服务器或存有敏感数据的设备上使用,以下是不同桌面环境和配置方法的详细指南:GNOME 桌面(Ubuntu/Fedora等)打开 设置 (Set……

    2025年8月7日
    8700
  • linux系统如何配置网络打印机

    Linux系统中配置网络打印机,通常可安装相应驱动,通过系统设置或命令行添加打印机

    2025年8月16日
    10000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信