Ubuntu 22.04 LTS CPU亲和性设置不生效

CPU/显卡/打印机/USB设备等硬件问题
回复
jacky_chenlong7789
帖子: 6
注册时间: 2022-05-13 10:42
系统: windows10

Ubuntu 22.04 LTS CPU亲和性设置不生效

#1

帖子 jacky_chenlong7789 » 2022-05-18 17:39

Hi All,
我在 Ubuntu 22.04 LTS按照下面的文档做CPU设置后,在安装K8S后,为什么孤立CPU还是有K8S的进程?


GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=3"
GRUB_CMDLINE_LINUX=" systemd.unified_cgroup_hierarchy=1 "

一、孤立CPU
1、孤立CPU简介
针对CPU密集型的任务,CPU负载较高,推荐设置CPU Affinity,以提高任务执行效率,避免CPU进行上下文切换,提高CPU Cache命中率。
默认情况下,Linux内核调度器可以使用任意CPU核心,如果特定任务(进程/线程)需要独占一个CPU核心并且不想让其它任务(进程/线程)使用时,可以把指定CPU孤立出来,不让其它进程使用。

2、孤立CPU的特点
孤立CPU可以有效地提高孤立CPU上任务运行的实时性,在保证孤立CPU上任务运行的同时会减少了其它任务可以运行的CPU资源,因此需要对计算机CPU资源进行规划。

3、孤立CPU设置
Linux Kernel中isolcpus启动参数用于在SMP均衡调度算法中将一个或多个CPU孤立出来,通过CPU Affinity设置将指定进程置于孤立CPU运行。
isolcpus= cpu_number [, cpu_number ,...]
(1)修改grub配置文件
默认grub配置为/etc/default/grub,GRUB_CMDLINE_LINUX值中加入isolcpus=11,12,13,14,15,所有CPU核心必须用逗号进行分隔,不支持区域范围。
GRUB_CMDLINE_LINUX="isolcpus=1,2 crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet"
(2)更新grub
重新生成grub引导文件/boot/grub/grub.cfg,重启系统生效。

update-grub
update-grub2
grub-mkconfig -o /boot/grub/grub.cfg
1.
2.
3.
一旦Linux Kernel使用isolcpus参数启动,Linux Kernel任务均衡调度器不会再将进程调度给指定CPU核心,用户通常需要使用taskset或cset命令将进程绑定到CPU核心。
-----------------------------------
©著作权归作者所有:来自51CTO博客作者天山老妖S的原创作品,请联系作者获取转载授权,否则将追究法律责任
Linux性能优化(十五)——CPU绑定
https://blog.51cto.com/quantfabric/2594336
头像
astolia
论坛版主
帖子: 6542
注册时间: 2008-09-18 13:11

Re: Ubuntu 22.04 LTS CPU亲和性设置不生效

#2

帖子 astolia » 2022-05-18 21:30

jacky_chenlong7789 写了: 2022-05-18 17:39 重新生成grub引导文件/boot/grub/grub.cfg,重启系统生效。
首先你重启了吗?
jacky_chenlong7789 写了: 2022-05-18 17:39 在安装K8S后,为什么孤立CPU还是有K8S的进程?
其次你是怎么安装k8s的?又是用什么命令看到cpu 3上有k8s进程的?

最后,isolcpus参数已经是不推荐使用了 https://www.kernel.org/doc/html/latest/ ... eters.html

代码: 全选

        isolcpus=       [KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
                        [Deprecated - use cpusets instead]
                        Format: [flag-list,]<cpu-list>
jacky_chenlong7789
帖子: 6
注册时间: 2022-05-13 10:42
系统: windows10

Re: Ubuntu 22.04 LTS CPU亲和性设置不生效

#3

帖子 jacky_chenlong7789 » 2022-05-19 9:31

有reboot过了,就是不生效。
jacky_chenlong7789
帖子: 6
注册时间: 2022-05-13 10:42
系统: windows10

Re: Ubuntu 22.04 LTS CPU亲和性设置不生效

#4

帖子 jacky_chenlong7789 » 2022-05-19 9:40

K8S就是正常安装。用这个ps -eLo ruser,pid,ppid,lwp,psr,args | awk '{if($5==3)print $0}'可以查到CPU3上的全部进程。
jacky_chenlong7789
帖子: 6
注册时间: 2022-05-13 10:42
系统: windows10

Re: Ubuntu 22.04 LTS CPU亲和性设置不生效

#5

帖子 jacky_chenlong7789 » 2022-05-19 9:44

isolcpus参数已经是不推荐使用了,
那有新别的好方法吗?
jacky_chenlong7789
帖子: 6
注册时间: 2022-05-13 10:42
系统: windows10

Re: Ubuntu 22.04 LTS CPU亲和性设置不生效

#6

帖子 jacky_chenlong7789 » 2022-05-19 13:54

补充:我在Ubuntu 20.04 LTS中测试是有效果的,在Ubuntu 22.04 LTS测试是没有效果,是不是22.04的引导文件已经更改?
回复