linux孤立cpu,linux系统设置cpu孤立

#介绍python

针对cpu密集型的任务,消耗cpu较高,最好设置cpu亲和度,以提升任务执行效率,避免cpu进行上下文切换,浪费没必要要的性能。

特定任务(进程/线程)须要独占一个cpu核心而且不想让其余任务(进程/线程)使用该核心。linux

默认状况下,linux系统任务(进程/线程)可使用任意一颗核心,要想把指定的cpu孤立出来,不让普通进程使用,须要修改grub参数docker

修改grub配置文件

以debian为例,默认grub参数配置文件为/etc/default/grub,函数

找到GRUB_CMDLINE_LINUX行,性能

我这里这一行默认为spa

GRUB_CMDLINE_LINUX="text console=tty0 console=ttyS0,115200n8"

想要孤立11-23号cpu,能够这么写命令行

GRUB_CMDLINE_LINUX="text isolcpus=11,12,13,14,15,16,17,18,19,20,21,22,23 nohz_full=11,12,13,14,15,16,17,18,19,20,21,22,23 rcu_nocbs=11,12,13,14,15,16,17,18,19,20,21,22,23 console=tty0 console=ttyS0,115200n8"

全部的核心必须用逗号分隔开来写11,12,13,14,15,16,17,18,19,20,21,22,23,不能写为11-23线程

生成新的grub引导文件

修改/etc/default/grub文件后,须要从新生成grub引导文件code

使用命令进程

update-grub

或者

update-grub2

或者

grub-mkconfig -o /boot/grub/grub.cfg

上面3个命令均可以,其实就是从新生成了/boot/grub/grub.cfg文件, 重启系统生效,系统默认就不会再使用11-23号cpu了

使用孤立cpu

咱们要想使用这些cpu,能够在命令行中使用taskset命令

好比:

正常的命令运行为

python xx.py

这样运行,必定不会使用11-23号cpu,

若是想使用11-15号cpu运行该进程,能够写为

taskset -c 11,12,13,14,15 python xx.py

或者

taskset -c 11-15 python xx.py

除了在命令行中用taskset命令,也可使用库函数在代码中设置cpu亲和度来使用这些cpu

注意

在docker容器中,这些已经被孤立的cpu仍然能够被使用, 好比上面咱们孤立了11-23号cpu,在docker容器中运行命令默认也是可使用这些cpu的

固然,咱们确定不但愿docker也可使用这些cpu,由于这些cpu是供特定服务(进程)使用的, 在建立docker容器时,经过参数--cpuset-cpus指定容器只能使用哪些cpu,能够达到将11-23号cpu孤立的目的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值