如何确定 Windows 和 Linux 下的物理 CPU 数量

如何确定 Windows 和 Linux 下的物理 CPU 数量

在Linux下运行时cat /proc/cpuinfo,会返回各种信息。例如:

> cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 15
model name  : Intel(R) Xeon(R) CPU            5130  @ 2.00GHz
stepping    : 6
cpu MHz     : 1995.069
cache size  : 4096 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx tm2 cx16 xtpr lahf_lm
bogomips    : 3991.76
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 15
model name  : Intel(R) Xeon(R) CPU            5130  @ 2.00GHz
stepping    : 6
cpu MHz     : 1995.069
cache size  : 4096 KB
physical id : 3
siblings    : 2
core id     : 0
cpu cores   : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx tm2 cx16 xtpr lahf_lm
bogomips    : 3989.46
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

首先,这一切意味着什么实际上是什么意思?我看到我有处理器 0 和处理器 1。这是否意味着 Linux 正在报告两者核心CPU,或者,因为它是一个虚拟机,所以我发生现在拥有什么(即使它们位于物理上不同的 CPU 上)?

其次,如何从 Windows 的命令行获取类似的信息转储?

第三,有没有办法使用任一平台来确定身体的CPU 与全部的CPU 核心?

答案1

回答你的第一个问题:http://www.richweb.com/cpu_info详细描述了所有 cpuinfo 输出,并在文章后面进行了一些有趣的讨论。

就您而言,它报告称您的虚拟机已配置为向操作系统显示为双物理核虚拟机。虚拟机下的裸机可能是 1 个核心或 100 个核心,但就虚拟机中的操作系统而言,您拥有一台可以使用两个物理处理器的机器。它不知道分配给这些处理器的线程实际上是如何在虚拟机下的物理硬件上运行的。

要从 Windows CMD shell 获取类似的信息,您可以尝试systeminfoCMD shell 中的命令。它显示的内容比 Linux 中的内容多得多/proc/cpuinfo,但关于实际处理器本身的详细信息也不那么多。

我不知道你第三个问题的答案,抱歉。

答案2

关于第三个问题:

在 cpuinfo 中,有一个字段“物理 ID”,每个物理 CPU 都有唯一的字段。同一 CPU 的内核被报告为具有相同物理 ID 的不同处理器,而物理上独立的处理器将具有不同的物理 ID。

请注意,如果您使用的是虚拟机,那么您无法了解实际硬件(CPU 等)的任何信息,您所知道的只是虚拟机告诉您的信息。因此,例如,如果您的物理机器有 1 个四核 CPU,并且您的虚拟机配置为报告 2 个单核 CPU,那么您将在 cpuinfo 中看到 2 个单核 CPU(即 2 个具有不同物理 ID 的处理器)。

答案3

一句话:

dmidecode | grep CPU | grep -i 'socket designation' | wc -l

此命令解析 dmidecode 提供的大量信息,根据分配给每个物理 CPU 的唯一“插槽名称”值确定物理处理器的数量。您可以使用它来获取给定主机上的物理 CPU 数量。尝试 cat /proc/cpuinfo 并不总是有效。在具有 2x6C 2.4GHz 服务器的 PowerEdge R420 上,cpuinfo 错误地报告了一个处理器。

相关内容