如何使用命令行查找CPU的内核数量,包括虚拟内核(超线程内核)?

#1 楼

您可以计算的CPU数量

cat /proc/cpuinfo | grep processor | wc -l


输出:

2


检查核数!

cat /proc/cpuinfo | grep 'core id'
core id         : 0
core id         : 1




 $ nproc
 2


或者lscpu将显示所有输出:

lscpu

Architecture:          i686
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            15
Model:                 4
Stepping:              7
CPU MHz:               2792.992
BogoMIPS:              5585.98
L1d cache:             16K
L2 cache:              1024K


评论


grep可以使用-c选项来计算匹配项,而在wc中则不需要。

–俄罗斯
16年1月22日在20:45



即第一个命令等效于grep -c Processor / proc / cpuinfo

–阿伦
17年17月17日23:05

根据脚本可用的内核数量,nproc在脚本中也很有用。例如。使-j $(nproc)。

–远道
18/12/11在19:45

+1表示将lscpu包含在您的答案中,这是迄今为止最容易使用的命令。

–加百利·斯台普斯
19年8月5日在16:34

如何检查特定用户?

– seralouk
19年10月1日在15:09

#2 楼

要添加到现有答案中,您可以通过查看/ proc / cpuinfo中的“兄弟”行来确定有关英特尔超线程的信息。下面的示例来自2插槽计算机。它显示了CPU有6个核心,但有12个“同级”。在Intel CPU上,这意味着启用了超线程功能,并且有6个物理内核。
dmidecode对确定Linux系统在什么硬件上运行也很有用。 >

#3 楼

/proc/cpuinfo包含我的计算机的所有CPU,包括虚拟机。您可以用一些grep来数:

grep -Pc '^processor\t' /proc/cpuinfo


#4 楼

假设您不关闭内核/线程,此命令将回答您的问题:

getconf _NPROCESSORS_ONLN


评论


这将显示在线内核数,该内核数可能与内核总数不同。

–heemayl
16年1月22日在20:23

@heemayl就是为什么我开始这样做的原因。

–俄罗斯
16年1月22日在20:44

很有道理..我忽略了.. +1

–heemayl
16年1月22日在20:45

#5 楼

您还可以安装htoptop的高级版本),它将向您显示所有内核。

sudo apt-get install htop

然后启动它:htop

#6 楼

类型:

 lscpu |grep 'CPU(s)'


您将获得以下几行内容:

CPU(s)                  4


您可以获得1、2 ...代替4,具体取决于您的CPU,即CPU拥有的内核数。

评论


这给出的是CPU的数量,而不是内核的数量。

– kaushalpranav
18年6月28日在8:36