Linux

如何獲得總核心數包括執行緒

  • August 13, 2019

眾所周知,lscpu 提供有關 CORE 數量和執行緒數量的資訊

lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                48
On-line CPU(s) list:   0-47
Thread(s) per core:    2

我正在搜尋可以給出總數的命令

(核心數)X(執行緒數)= 96

所以輸出將如上所示 = 96 CPU

我們可以這樣做

CORE=` nproc --all `
THREAD=`  lscpu | grep -i Thread | awk '{print $NF}' `

echo "$(( $CORE*$THREAD ))"

但這不是優雅的方式

或者其他優雅的方法?

我們也試試這個(但沒有得到總共 96 個核心)

num_cpus=$(nproc)
# echo $num_cpus
48

nproc和中的行CPU(s)都是執行緒總數lscpu

所以你需要得到的執行緒總數是:

num_cpus=$(nproc)

引用自:https://unix.stackexchange.com/questions/535264