Ubuntu 22.04 LTS CPU亲和性设置不生效
发表于 : 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
我在 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