CPU

How to Check CPU number

$(cat /proc/cpuinfo | grep -i processor | wc -l)

For some purpose, we can tune CPU setting to let LINUX proccess run effectively

(Processor Affinity,or CPU pinning)

若將process 限定在特定的CPU 上, 可以減少shared memory 的消耗

  1. 修改Bootloader 參數保留CPU (完全讓其他process無法使用)

    • isolcpus=cpu_id (ex isolcpus=0.1 保留0,1 兩顆)

  2. taskset command (無法保證其他process 無法使用)

    • 查閱process 可以拿來做事的CPU有哪些 by affinity mask

$(taskset -p $PID)

affinity mask: 16進位數值代表此process 可用哪幾顆processor來作事

ex: 8 core CPU

ff = 11111111 (8 顆[0-7]都可以拿來做事 - 最左bit 代表 第0號core)

  • 查閱process 可以拿來做事的CPU有哪些 by processor number

$(taskset -cp $PID)

  • 設定特定的cpu作特定的事 (必須開啟CAP_SYS_NICE的權限)

taskset -p $COREMASK $PID
taskset -cp $CORELIST $PID

CORELIST 可以下 0-7 or 0,2,3,7

  • By program

taskset $COREMASK $EXECUTABLE_PROGRAM

Last updated

Was this helpful?