linux下讓程序執行在指定的cpu上(二)

2021-05-22 21:40:33 字數 509 閱讀 8536

在smp情況下,linux排程器有負載均衡機制,將乙個程序在不同cpu之間進行遷移。因此,乙個程序執行在哪個cpu上是不確定的,但有時候為了測試資料方便,卻有這樣的需求,就是將某個程序繫結到乙個cpu上執行。

沒關係,我們有秘密**,那就是taskset命令。

該命令最簡單的用法是:

taskset [mask] [command]

mask是cpu掩碼,用16進製制數表示,從低位起,為1的位表示該cpu上可以執行該程序。command是要執行的命令。

如taskset 0x00000033 /usr/bin/aaa表示執行/usr/bin/aaa這個程序,並且繫結在0,1,4,5號cpu上。

也許你覺得掩碼不直觀,沒關係,可以使用-c引數,指定cpu的id列表:

taskset -c 0,1,4,5 /usr/bin/aaa

那麼,如果是乙個已經在執行的程式呢?也有辦法,請出-p引數:

taskset -pc 0,1,4,5 `pidof /usr/bin/aaa`

linux下讓程序執行在指定的cpu上

最近負責的svr壓力比較大,業務邏輯有點複雜,能優化的地方已經全部優化了,目前每秒3k次,cpu負載還是比較高 top看一下,4核的cpu負載不是太均衡,打算考慮一下將業務程序指定到3個cpu上執行,另外乙個cpu專門負責處理網路收發包 打算嘗試一下,如果還是不行,再過段時間,訪問量再增加的話,就要...

linux下讓程序執行在指定的cpu上

最近負責的svr壓力比較大,業務邏輯有點複雜,能優化的地方已經全部優化了,目前每秒3k次,cpu負載還是比較高 top看一下,4核的cpu負載不是太均衡,打算考慮一下將業務程序指定到3個cpu上執行,另外乙個cpu專門負責處理網路收發包 打算嘗試一下,如果還是不行,再過段時間,訪問量再增加的話,就要...

linux下讓程序執行在指定的cpu上

收藏 最近負責的svr壓力比較大,業務邏輯有點複雜,能優化的地方已經全部優化了,目前每秒3k次,cpu負載還是比較高 top看一下,4核的cpu負載不是太均衡,打算考慮一下將業務程序指定到3個cpu上執行,另外乙個cpu專門負責處理網路收發包 打算嘗試一下,如果還是不行,再過段時間,訪問量再增加的話...