博客專欄

        EEPW首頁 > 博客 > Linux:taskset 查詢或設置進程(線程)綁定CPU(親和性)

        Linux:taskset 查詢或設置進程(線程)綁定CPU(親和性)

        發布人:電子禪石 時間:2024-07-12 來源:工程師 發布文章

        Linux:taskset 查詢或設置進程(線程)綁定CPU(親和性)

        通過 taskset 命令可將某個進程與某個CPU核心綁定,使得其僅在與之綁定的CPU核心上運行。


        線程是最小的內核執行調度單元,因此,準確地說是將某個線程與某個CPU核心綁定,而非某個進程。

        taskset 是依據 線程PID(TID)查詢或設置線程的CPU親和性(與哪個CPU核心綁定)。

        查詢 PID(TID)= 11498 的線程可用的CPU核心

        [test1280@localhost ~]$ taskset -pc 11498

        pid 11498's current affinity list: 0-3


        由于當前主機僅有4個核心:


        [test1280@localhost ~]$ cat /proc/cpuinfo | grep process

        processor : 0

        processor : 1

        processor : 2

        processor : 3


        默認情況下,TID=11498的線程可以運行在任意的CPU核心上(0-3)。


        -p, --pid operate on an existing PID and not launch a new task

        -c, --cpu-list specify  a  numerical  list  of  processors instead of a bitmask. 

                       The list may contain multiple items, separated by comma, and ranges.

                       For example, 0,5,7,9-11.


        查詢 PID(TID)= 11498 的線程可用的CPU核心,掩碼形式表示

        [test1280@localhost ~]$ taskset -p 11498

        pid 11498's current affinity mask: f


        0x0F(十六進制) => 1111(二進制),最右起第一個1表示CPU核心#0,第二個1表示CPU核心#1…


        設置 PID(TID)= 11498 的線程可用的CPU核心到#0、#2上

        [test1280@localhost ~]$ taskset -pc 0,2 11498

        pid 11498's current affinity list: 2

        pid 11498's new affinity list: 0,2


        設置 PID(TID)= 11498 的線程可用的CPU核心到除#0之外的核心上,掩碼形式表示

        [test1280@localhost ~]$ taskset -p 7 11498

        pid 11498's current affinity mask: 5

        pid 11498's new affinity mask: 7


        原來的是0、2,即0101(掩碼十進制5),現在的是0111,即掩碼十進制7。


        taskset 不僅可通過PID查詢運行中的線程的CPU親和性,也可以運行一個新的進程。


        可參考 man taskset 或執行 taskset -h。

        ————————————————


                                

        原文鏈接:https://blog.csdn.net/test1280/article/details/87991302


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: taskset

        技術專區

        關閉
        主站蜘蛛池模板: 兰西县| 周宁县| 克什克腾旗| 武穴市| 五寨县| 泾阳县| 大洼县| 民权县| 潮安县| 南阳市| 龙里县| 屯门区| 南涧| 台东县| 泗阳县| 盱眙县| 靖江市| 怀来县| 宁陕县| 台江县| 耒阳市| 仪征市| 龙泉市| 峨山| 牟定县| 德安县| 玛多县| 大安市| 遂宁市| 涟水县| 衡南县| 嘉兴市| 阿克陶县| 宁波市| 从化市| 永平县| 桑日县| 申扎县| 思南县| 宜宾市| 长沙县|