Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Ubuntu 進程 CPU 綁定實戰:使用 taskset 指令將進程釘選到指定 CPU 核心

編輯:關於 Linux

在多核 CPU 系統中,作業系統預設會根據負載均衡演算法自動排程進程在不同核心間執行。但某些場景(如高效能運算、即時系統、基準測試、避免快取失效)需要將特定進程「釘選」到固定 CPU 核心。本文以 Ubuntu 為例,詳細說明如何使用 taskset 指令實現進程 CPU 親和性設定。

一、核心概念:CPU 親和性

  • CPU 親和性:進程與 CPU 核心的綁定關係,限制進程只能在指定核心集合上執行
  • 親和性遮罩:位元遮罩表示允許的核心集合,例如 0x0F (二進位 1111) 代表核心 0-3
  • 繼承性:子進程預設繼承父進程的親和性設定

二、taskset 指令語法

# 設定/查看現有進程親和性
taskset -cp  

# 啟動新進程並設定親和性
taskset -c  指令 [參數...]

參數說明

CPU 核心清單格式

  • 單一核心:5
  • 多個核心:0,2,4
  • 範圍:0-3(核心 0,1,2,3)
  • 組合:0,2,4-7,10

三、實戰演示:將 Java 計算密集型進程綁定到核心 5

1. 建立測試程式(佔滿單核 CPU)

cat > Test.java << 'EOF'
public class Test {
    public static void main(String[] args) {
        int i = 0;
        while (true) { i++; }
    }
}
EOF

2. 編譯並背景執行

javac Test.java
java Test &
# 輸出範例:[1] 26531  (PID = 26531)

3. 安裝 htop 觀察 CPU 使用率

apt-get update && apt-get install -y htop
htop

htop 顯示 CPU2 100%
未綁定時,進程可能在核心 0-7 間漂移,圖中核心 2 滿載

4. 綁定進程到核心 5(編號從 0 開始,故 5 代表第 6 顆核心)

taskset -cp 5 26531

輸出:

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

htop 顯示核心 6 (索引 5) 100%
綁定後,核心 5(htop 顯示為第 6 顆)達到 100%,其他核心閒置

四、驗證與查看親和性

# 查看指定進程親和性
taskset -cp 26531

# 查看自身 Shell 親和性
taskset -cp $$

# 以位元遮罩顯示(十六進位)
taskset -p 26531

五、進階應用場景

參數說明
-c, --cpu-list以核心編號清單指定(而非位元遮罩),如 0,2,4-7
-p, --pid操作現有進程(PID),而非啟動新進程
-a, --all-tasks對進程所有執行緒生效
場景指令範例說明
啟動時直接綁定taskset -c 0,1 ./myapp限制在核心 0、1 執行
綁定多核心提升吞吐taskset -cp 0-3 允許使用核心 0-3,平衡效能與隔離
隔離核心給關鍵服務taskset -cp 8-15 將資料庫釘選到核心 8-15,避免干擾
NUMA 架構優化numactl --cpunodebind=0 --membind=0 ./app搭配 numactl 綁定 CPU 與記憶體節點

六、注意事項

  • 核心編號從 0 開始,nproc 或 lscpu 可查看總核心數
  • 綁定後進程不會自動遷移,即使目標核心 100% 滿載也會排隊等待
  • 過度綁定可能導致負載不均,建議搭配監控觀察
  • 容器環境下需注意 cpuset cgroup 限制與 host 核心映射關係
  • 即時進程(chrt -f 99)結合 CPU 綁定可構建硬即時系統

善用 taskset 進行 CPU 親和性管理,能在高效能運算、低延遲服務、基準測試標準化等場景發揮關鍵作用,是 Linux 系統調優工具箱中的利器。

Copyright © Windows教程網 All Rights Reserved