如何获取总核心数和线程数

如何获取总核心数和线程数

众所周知 lscpu 给出有关核心数和线程数的信息

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

答案1

两者nprocCPU(s)中的行lscpu都是线程总数

因此,您需要获取线程总数:

num_cpus=$(nproc)

相关内容