版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/47278019
Ubuntu系統程序綁定CPU核
作者:chszs,版權所有,未經同意,不得轉載。部落客首頁: http://blog.csdn.net/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
上面的視圖可以看到,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
從上面的視圖中可以看到6号CPU核的使用率為100%。