taskset

taskset 是 Linux 系統當中,用於查看、設定 CPU 核使用情況的命令。

他屬於 util-linux-ng 包,若您的系統中沒有這個命令,可以通過安裝這個包來增加這個命令。

命令定義

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

相關詞條

熱門詞條

聯絡我們