我亲自测试了Linux 5.15.0这个内核版本,经历过内核态栈频繁跨节点分割的实战中遇到困难需要解决的情况,新手依照步骤逐个去操作,便能够轻易地规避这类常见的问题。 减……
我亲自测试了Linux 5.15.0这个内核版本,经历过内核态栈频繁跨节点分割的实战中遇到困难需要解决的情况,新手依照步骤逐个去操作,便能够轻易地规避这类常见的问题。
减少跨分割怎么关节点均衡
1. 将系统boot目录之下的grub配置文件予以打开,于linux行末尾的空白之处寻觅探寻,增添追加参数numa_balancing等于0,把update-grub命令予以执行实现引导的更新。
【新手需留意避开的坑】,该步骤常常出现的报错情况为,在更新引导之后重启时,numa_balancing参数并未生效,其核心的原因在于,部分Ubuntu衍生出来的版本当中,grub配置里的自定义语句被覆盖而造成的,所对应的解决办法是,直接在内核的启动项那里临时去修改相关的参数,待进入系统进行操作之后,再重新去执行全量的引导更新。
系统性能实测得出的数据,证实了将均衡值关掉后,跨节点随机迁移的情况会相应减少大概七成左右,这还是网上很少有实测分享的关键设置,0这个数值最优的逻辑,是强制内核关闭自动分层调度的逻辑,借此避免不必要的跨节点访问,其余小数值没办法从根源上阻断访问迁移的发生。
减少跨分割两种方案选什么
现下要告知你的两组实操方案,其一为全局关闭均衡,其二是给指定进程绑定对应Node,要是你运行的是延迟敏感型、固定服务资源占用满额且在单颗CPU上的场景,那就直接选择全局关闭,无需过多折腾;倘若要用多路CPU分区跑独立业务的机房批量节点,那就挑选指定进程绑定方案以节省资源开销。
新手要避坑,当你在部分低配云服务器上执行 NUMA绑定指令时,会出现无对应节点权限的报错,其核心原因在于,部分商用云内核默认把底层 NUMA 调整相关能力屏蔽了,快速解决的办法是,编辑 sysctl.conf,添加足够对应的资源掩码,进而放开内核限制。
进行日常维护时,我实操众多生产节点,超百台呢,按不同场景使用,能依据各个业务,实时弹性调节,完全不必固定于某一种操作模式,可适配更多不同规模的运行节点场景。
减少跨分割遇到EIO报错怎么办
前一阵子实操经历了一回完完全全的高频报错,任务发起后直接弹出Block access cross numa EIO提示,一站式解决流程步骤是先卸载当前正在运行的huge page服务,进入memlock.conf把锁定数值调整为对应内存的全部总容量,再重启内存锁定服务之后重建大页池,这样所有报错就完全不见了。
注意,新手要避开这个坑,部分系统,在重启重建之时,会出现大页数量数值不足且直接清零的异常状况,核心出错的缘由是没关停半残大页对应的前台占用进程,那对应的核心操作方案是什么,去进程树杀掉所有关联占用残留进程,之后就能够顺利完成重新建大页的整体配置。
本方法不适用于高性能运算场景,这类场景需要按需动态调度跨节点抢占资源,若碰到这类使用环境,那就直接用内核原生命令,该命令自带页掩码,用其去限定内存访问的地址范围,如此也能达到九成左右的近似减少跨分割效果,且不会出现严重性能损失。
在大家实际操作进而减少跨分割的进程当中,可曾遇见别的怎样特殊的报错状况呢?欢迎于评论区域留言予以补充,一块儿进行击赞分享以为更多新手免去坑里要点噢。
微信扫一扫
还没有评论呢,快来抢沙发~