红联Linux门户
Linux帮助

Ubuntu系统进程绑定CPU核

发布时间:2015-08-05 09:45:49来源:blog.csdn.net/chszs作者:chszs

本文讲述如何在Ubuntu系统中,把指定的进程绑定到指定的CPU核运行。而通常是由操作系统负责管理进程和线程的调度,但是这种情况下是不清楚由哪个CPU核运行你的进程,因为操作系统的调度是基于资源的可用性进行判断的。

可以这样,把指定的CPU核绑定到你的进程。

taskset -cp <CPU ID | CPU IDs> <Process ID>

下面用一个简单的例子来说明怎样做到。


1. CPU利用率达100%的样例代码:

class Test {
public static void main(String args[]) {
int i = 0;
while (true) {
i++;
}
}
}


2. 编译并运行上面的样例代码

# javac Test.java
# java Test &
[1] 26531


3. 使用htop命令查看CPU的利用率

如果未安装htop工具,执行下面的命令:

# apt-get install htop
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following NEW packages will be installed:
htop
0 upgraded, 1 newly installed, 0 to remove and 41 not upgraded.
Need to get 66.9 kB of archives.
After this operation, 183 kB of additional disk space will be used.
Get:1 http://mirrors.163.com/ubuntu/ precise/universe htop amd64 1.0.1-1 [66.9 kB]
Fetched 66.9 kB in 0s (163 kB/s)
Selecting previously unselected package htop.
(Reading database ... 57100 files and directories currently installed.)
Unpacking htop (from .../htop_1.0.1-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up htop (1.0.1-1) ...

安装完成后,执行命令:

# htop

Ubuntu系统进程绑定CPU核

上面的视图可以看到,CPU2的利用率达到100%,且这个进程有可能被分配到其它CPU核上运行,这个分配是不定的。


4. 进程绑定CPU核

运行以下命令,把此Java进程(进程ID号为26502)永久的分配给5号CPU核(CPU核号从0开始计算,因此序号4指的是5号CPU核)

# taskset -cp 5 26531
pid 26531's current affinity list: 0-7
pid 26531's new affinity list: 5

Ubuntu系统进程绑定CPU核

从上面的视图中可以看到6号CPU核的利用率为100%。


如何在Ubuntu Kylin中检查笔记本电脑的CPU温度:http://www.linuxdiyf.com/linux/12681.html

Ubuntu 14.04标题栏实时显示上下行网速、CPU及内存使用:http://www.linuxdiyf.com/linux/11875.html

Linux进程或线程绑定到CPU:http://www.linuxdiyf.com/linux/11873.html

Linux下查看内核、CPU、内存及各组件版本的命令和方法:http://www.linuxdiyf.com/linux/8892.html