如何获取物理/逻辑核心的数量?

如何获取物理/逻辑核心的数量?

关于核心数量有很多疑问,例如,但据我所知,没有一个能提供正确的逻辑核心。

我能想到的最好的办法就是使用以下公式来计算自己:

Physical cores = <Cores per socket> * <sockets>
Logical cores = <Threads per core> * Physical cores

我可以通过以下方式获得:

threads=$(lscpu | awk '/^Thread/{print $NF}')
cores=$(lscpu | awk '/^Core\(/{print $NF}')
sockets=$(lscpu | awk '/^Socket/{print $NF}')
phy=$(( $sockets * $cores ))
logi=$(( $phy * $threads ))

有没有更好的办法?

编辑:

  • 基于通用工具,即无需安装新的软件包
  • 我需要逻辑和物理。我看到的大多数答案只给出了其中之一

答案1

物理核心:

egrep '^core id' /proc/cpuinfo | sort -u | wc -l

逻辑核心:

egrep '^processor' /proc/cpuinfo | sort -u | wc -l

物理 CPU(独立芯片):

egrep '^physical id' /proc/cpuinfo | sort -u | wc -l

答案2

有一个包 inxi。

sudo apt install inxi

然后尝试

inxi --cpu

答案3

你不能只使用

cat /proc/cpuinfo | grep processor 

0为基础,所以这台机器有56个逻辑核心。

processor       : 55
vendor_id       : GenuineIntel
cpu family      : 6
model           : 79
model name      : Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz

相关内容