【系统运维】NUMA介绍与关闭方法
一、什么是NUMA
在当前主流服务器上,通常是多个CPU协同工作,然后每个CPU可以支持多个物理核。应用程序可以在不同的处理器上运行。比如先在CPU1上运行一段时间,然后再被调度到CPU2上运行,这种被调度到其它CPU上的请求属于远端内存访问,和访问单个CPU相比会增加应用程序的延迟。这种允许多个CPU切换的架构也被称为非统一内存访问架构(Non-Uniform Memory Access,NUMA 架构)。
二、什么时候关闭NUMA
当CPU指标数据里出现较多的context switch时就代表线程进行了大量上下文切换,具体表现就是线程先在CPU 1上运行,之后又切换到CPU 2运行。当 context switch 发生后,服务的运行时信息需要被重新加载到另一个 CPU上。重新加载的过程是需要花费一定时间的,每调度一次,部分请求就会受到运行时信息、指令和数据重新加载过程的影响导致延迟变高。如果使用top命令查看CPU状态发现sys占用较高,也有可能是NUMA导致。
三、查看是否开启NUMA
yum install numactl numactl --hardware show #如果available中nodes数量大于1代表numa是开启的
四、关闭NUMA
· 方法1:通过BIOS关闭NUMA
· 方法2:通过配置文件修改
vim /etc/default/grub #GRUB_CMDLINE_LINUX行尾增加numa=off
五、校验
cat /proc/cmdline BOOT_IMAGE=/vmlinuz-3.10.0-327.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet.UTF-8
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论