命令定義
taskset [options] mask command [arg]...
taskset [options] -p [mask] pid
命令描述
taskset 命令用於設定或者獲取一直指定的 PID 對於 CPU 核的運行依賴關係。也可以用 taskset 啟動一個命令,直接設定它的 CPU 核的運行依賴關係。
CPU 核依賴關係是指,命令會被在指定的 CPU 核中運行,而不會再其他 CPU 核中運行的一種調度關係。需要說明的是,在正常情況下,為了系統性能的原因,調度器會儘可能的在一個 CPU 核中維持一個進程的執行。強制指定特殊的 CPU 核依賴關係對於特殊的套用是有意義的。
CPU 核的定義採用位定義的方式進行,最低位代表 CPU0,然後依次排序。這種位定義可以超過系統實際的 CPU 總數,並不會存在問題。通過命令獲得的這種 CPU 位標記,只會包含系統實際 CPU 的數目。如果設定的位標記少於系統 CPU 的實際數目,那么命令會產生一個錯誤。當然這種給定的和獲取的位標記採用 16 進制標識。
0x00000001 | 代表 #0 CPU |
0x00000003 | 代表 #0 和 #1 CPU |
0xFFFFFFFF | 代表 #0 到 #31 CPU |
參數描述
-p, --pid | 對一個現有的進程進行操作,而不是啟動一個新的進程 |
-c, --cpu-list | 使用 CPU 編號替代位標記,這可以是一個列表,列表中可以使用逗號分隔,或者使用 "-" 進行範圍標記,例如:0,5,7,9-11 |
-h, --help | 列印幫助信息 |
-V, --version | 列印版本信息 |
使用幫助
•使用默認的行為,用給定的 CPU 核運行位標記運行一個進程
•taskset mask command [arguments]
•獲取一個指定進程的 CPU 核運行位標記
•taskset -p pid
•設定一個指定進程的 CPU 核運行位標記
•taskset -p mask pid
許可權要求
如果需要設定,那么需要擁有 CAP_SYS_NICE 的許可權;如果要獲取設定信息,沒有任何許可權要求。
獲取軟體
taskset 命令屬於 util-linux-ng 包,可以使用 yum 直接安裝。
參考命令
chrt, nice, renice, sched_setaffinity, sched_getaffinity