Linux如何将进程绑定运行在指定CPU上?
绑定cpu方式:c语言:sched_setaffinity(0, sizeof(mask), &mask)shell命令:在grup启动时传给内核参数: isolcpus=2-15, 这里表示隔离第3到16个CPU, Linux程序只跑在第一和第二个CPU上, 空闲的CPU我们可以指定跑进程了.这是内核文档里对内核参数的解释:isolcpus= Isolate CPUs from the general scheduler. Format:
linux中线程如何指定内核?
Linux线程指定内核的第一步就是就要先查查到内核所在的文件的位置,通过操作系统进行调度。
第二步,指定内核,就是要默认它的内核系统,是通过搜索引擎文件查找CPU的信息,然后通过指定的内核的进项文件进行调度,最终再进行定位,找到指定内核。
第三步,平时应用程序在运行时,都是由操作系统管理的。操作系统对应用进程进行调度,使其在不同的核上轮番运行。过程中就会使用到县城所包含的文件了。
第四步,对于普通的应用,操作系统的默认调度机制是没有问题的。
第五步,但是,当某个进程需要较高的运行效率时,就有必要考虑将其绑定到单独的核上运行,以减小由于在不同的核上调度造成的开销,就需要指定固定的内核了。
第六步,随后,把某个进程/线程绑定到特定的cpu核上后,该进程就会一直在此核上运行,不会再被操作系统调度到其他核上。
但绑定的这个核上还是可能会被调度运行其他应用程序的。
第七步 具体的操作方法是使用cat /proc/cpuinfo查看cpu信息。
随后,指定程序运行,比如-> % taskset -pc 1 2726,pid 2726's current affinity list: 0,1,pid 2726's new affinity list: 1,采用固定的循环运行方式,这样就能够指定程序内核了。