taskset的簡單用法 程序綁核

2021-09-25 17:09:36 字數 1276 閱讀 1064

所謂綁核,其實就是設定某個程序/執行緒與某個cpu核的親和力(affinity)。設定以後,linux排程器就會讓這個程序/執行緒只在所繫結的核上面去執行。但並不是說該程序/執行緒就獨佔這個cpu的核,其他的程序/執行緒還是可以在這個核上面執行的。如果想要實現某個程序/執行緒獨佔某個核,就要使用cpuset命令去實現。

其實,很多情況下,為了提高效能,linux排程器會自動實現盡量讓某個程序/執行緒在同樣的cpu上去執行。所以,除非必須,我們沒有必要顯式的去進行程序綁核操作。

taskset用於將某個程序/執行緒繫結到cpu的某個或某幾個核上面,其用法如下:

taskset -p pid
可以查出程序pid現在的綁核情況。

設定綁核有兩種方法:

下面分別介紹。

將掩碼轉換為二進位制形式,從最低位到最高位代表物理cpu的#0、#1、……、#n號核。某位的值為0表示不綁該核,1表示綁。比如:0x00000001的二進位制為0000...0001,只有第0號核的位置是1,所以表示只綁0號核;0x00000003的二進位制為0000...0011,第0和1號核的位置是1,所以表示綁cpu的0號和1號核;再比如0xffffffff的二進位制為1111...1111,所有32個核的位置都為1,所以表示綁cpu的0~31核。

需要注意的是,並非掩碼中給出的cpu核就一定會存在,比如0x00000400理論上代表cpu的第10號核,但是該核在真正的計算機上面並不一定是存在的。而且,如果我們試圖將物理上並不存的核繫結給某個程序時,會返回錯誤。掩碼形式的綁核命令為:

taskset -p mask pid
列表形式指直接指定要綁的cpu核的列表,列表中可以有乙個或多個核。具體語法如下:

taskset -cp cpu-list pid
其中cpu-list是數位化的cpu列表,從0開始。多個不連續的cpu可用逗號連線,連續的可用短現連線,比如0,2,5-11等。

比如taskset -cp 0,2,5-11 9865命令表示將程序9865繫結到#0#2#5~#11號核上面。

最後要說的是:只要taskset成功返回了,那就表示綁核一定成功了,即該程序已被綁到指定的核上面,而且taskset命令會顯示原來的綁核(原來的可能是系統預設分配的核)情況,以及新的綁核情況。

taskset的簡單用法 程序綁核

1.taskset taskset用來檢視和設定 cpu親和力 說白了就是檢視或者配置程序和cpu的繫結關係,讓某程序在指定的cpu核上執行,即是 綁核 2.taskset的用法 1 顯示程序執行的cpu taskset p pid 注意,此命令返回的是十六進製制的,轉換成二進位制後,每一位對應乙個...

mysql的簡單用法 mysql簡單用法

刪除使用者 drop user jack drop比delete刪除的優勢在於drop可以刪除使用者的許可權,更加徹底 更改使用者名稱 rename user jack to jacknew 使用者的都存在與user表中,更改名稱,許可權不變 更改使用者密碼 update mysql.user se...

sudo的簡單用法

sudo 的簡單用法 sudo 是linux 下一種能讓普通使用者執行 root 使用者或者其他使用者的命令 在 linux 中為了能方便的作業系統,同事也為了減輕管理員的負擔,這裡就有了 sudo 這個工具,讓普通使用者能執行 root 使用者的一部分權利。在 linux unix 下專門為 su...