众所周知 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
两者nproc
和CPU(s)
中的行lscpu
都是线程总数。
因此,您需要获取线程总数:
num_cpus=$(nproc)