指定某个cpu只运行指定进程的做法

转载 2011年01月08日 00:13:00

 

 

进程与cpu 绑定需要做四件事:

 

 

一、把指定cpu 从平衡算法剔除。

二、把指定cpu 上所有的中断请求搬到其他cpu

三、把指定cpu 上的所有的进程搬到其他cpu

四、把指定进程到绑定到指定cpu

 

 

一、把指定cpucpu 平衡算法剔除,机器启动后,用户进程自动不会在指定cpu 上运行。 做法如下:

/boot/grub/grub.conf 文件里的root=LABEL=/  后面添加 isolcpus=cpu 号列表

cpu 号从0 开始,多个cpu 号之间用“,” 分隔,例:isolcpus=1

isolcpus=4,5,6


二、把指定cpu 上所有的中断请求搬到其他cpu ,做法如下:

修改/proc/irq/ 中断号/smp_affinity 文件的内容。

内容00000001 表示该中断请求在cpu0 上运行,

内容00000003 表示该中断请求在cpu0cpu1 上运行,

 

三、 把指定cpu 上的所有的进程(指定进程除外)搬到其他cpu ,做法如下:

taskset -pc cpu 列表 pid.

例:taskset -pc 1 pid.

taskset -pc 1,2 pid.

taskset -pc 1-4 pid.

在这个过程中,我们主要把系统进程搬到了其他cpu 上。

查看某个进程绑定在哪个cpu 上可以执行taskset -p pid.

输出的mask 值:1 表示运行在cpu0 上,3 表示运行在cpu0cpu1 上。

 

 

四、把我们的指定进程搬到指定cpu ,做法参考三。

 

 

注:

1 、子进程会继承父进程的cpu 信息,分配到cpu0cpu1 上运行的进程产生的子进程也会被分配到cpu0cpu1.

2taskset  可以用c 函数sched_setaffinity 和 sched_getaffinity 代替

3 、查看进程当前运行在哪个cpu 上,可以执行ps -eo pid,args,psr

4、taskset --help

 

[root@gc13 partitionTLB]# taskset --help
taskset (util-linux 2.13-pre7)
usage: taskset [options] [mask | cpu-list] [pid | cmd [args...] ]
set or get the affinity of a process

  -p, --pid                  operate on existing given pid
  -c, --cpu-list             display and specify cpus in list format
  -h, --help                 display this help
  -v, --version              output version information

The default behavior is to run a new command:
  taskset 03 sshd -b 1024
You can retrieve the mask of an existing task:
  taskset -p 700
Or set it:
  taskset -p 03 700
List format uses a comma-separated list instead of a mask:
  taskset -pc 0,3,7-11 700
Ranges in list format can take a stride argument:
  e.g. 0-31:2 is equivalent to mask 0x55555555

 

isolcpus功能与使用

isolcpus功能与使用介绍 isolcpus功能存在已久,笔者追溯v2.6.11(2005年)那时内核就已经存在了isolcpus功能。根据kernel-parameters.txt 上的解释,”...
  • u014358116
  • u014358116
  • 2014年03月28日 20:09
  • 4183

Linux的CPU资源调优

一)中断的CPU亲和性   我们可以调整中断到某个CPU上,这样可以让CPU更有效的利用起来.   首先关闭掉irqbalance服务,如下: /etc/init.d/irqbalance ...
  • bugouyonggan
  • bugouyonggan
  • 2014年04月23日 10:33
  • 5408

centos 7配置系统调度isolcpus(软中断绑定)

使用isolcpus减少上下文切换。 为了减少上下文切换的可能性,需要提示内核,禁止将其他用户空间任务调度到DPDK应用线程所在核。isolcpus Linux内核参数用于此目的。 例如,...
  • haolipengzhanshen
  • haolipengzhanshen
  • 2017年09月10日 16:17
  • 663

cpu 调优

一)中断的CPU亲和性   我们可以调整中断到某个CPU上,这样可以让CPU更有效的利用起来.   首先关闭掉irqbalance服务,如下: /etc/init.d/irqbalance ...
  • cybertan
  • cybertan
  • 2012年05月24日 22:26
  • 4916

linux CPU隔离和进程调度优先级设置

CPU隔离和进程调度优先级设置的相关知识: 1.  uboot 启动参数中增加 ”isolcpus=1“  , 计数从0开始      表示隔离第2个CPU, 系统启动后,程序不能在第2个CPU上...
  • wdsfup
  • wdsfup
  • 2015年12月30日 11:52
  • 4308

在windows中设置程序运行的cpu

本文的技巧来源于下面的网站 Change the Processor Affinity setting in Windows 7 to gain a performance edge一般来说,如果电...
  • WhoisPo
  • WhoisPo
  • 2016年07月31日 14:49
  • 754

linux下让进程运行在指定的cpu上

最近负责的svr压力比较大,业务逻辑有点复杂,能优化的地方已经全部优化了,目前每秒3k次,cpu负载还是比较高 top看一下,4核的cpu负载不是太均衡,打算考虑一下将业务进程指定到3个cpu上运行,...
  • eroswang
  • eroswang
  • 2009年07月09日 22:15
  • 7557

如何指定GPU运行程序

连服务器有时候会出现outof memory 解决方法: 换用空闲的gpu 1. 查看GPU nvidia-smi -L 2. 查看7号GPU nvidia-smi -q -i...
  • gaoprincess
  • gaoprincess
  • 2017年12月07日 10:38
  • 714

tensorflow在训练模型的时候如何指定GPU进行训练

在用tensorflow训练深度学习模型的时候,假设我们在训练之前没有指定GPU来进行训练,则默认的是选用第0块GPU来训练我们的模型,而且其它几块GPU的也会显示被占用。有些时候,我们更希望可以通过...
  • u010238520
  • u010238520
  • 2017年07月26日 21:20
  • 3894

如何将所有的进程运行在一个指定的CPU上

转载:http://blog.csdn.net/sunvince/article/details/6533016 这是CU上的一个问题...   from: http://bbs.c...
  • caoyahong114
  • caoyahong114
  • 2016年06月22日 17:11
  • 1934
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:指定某个cpu只运行指定进程的做法
举报原因:
原因补充:

(最多只允许输入30个字)