在 Linux 中检查 CPU 信息的 5 种方法
有多种方法可以获取有关 Linux 系统处理器的信息。我将向您展示我最喜欢的执行此任务的工具以及在 Linux 中检查 CPU 的几种其他方法。
使用 lscpu 命令获取 CPU 信息
这是最简单的命令,以简单简洁的输出显示 CPU 信息。
您可以看到系统架构、处理器数量、供应商信息、缓存信息、处理器速度等。
它也更容易记住,因为它类似于ls 命令。您可以将其视为“list cpu”。
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 142
Model name: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
Stepping: 9
CPU MHz: 900.054
CPU max MHz: 3100.0000
CPU min MHz: 400.0000
BogoMIPS: 5424.00
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
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 pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d
嗯...这是我的系统的处理器信息,它对于你的 Linux 系统来说应该也看起来有些类似。
如您所见,最重要的信息是我的系统配备了 Intel i5-7200U 处理器。我可以在网上搜索这个型号以获取更多信息。
但是输出中的其他字段是什么意思?你在这里真正掌握了有关处理器的哪些信息?让我来向你解释一下。这些信息太技术性了,所以你应该对这里的术语有一些基本的了解。
lscpu 命令输出解释
我的系统架构是 64 位。这意味着它是一个 64 位处理器。
CPU 操作模式为 32 位和 64 位,这意味着它既可以作为 32 位处理器运行,也可以作为 64 位处理器运行。换句话说,您可以在其上安装 32 位和 64 位操作系统。
字节顺序为 Little Endian。这意味着字节按照 Little Endian 顺序排列。
接下来的 4 行告诉您处理器、CPU/核心和线程的数量。我建议阅读这篇文章以了解一些有关处理器的信息。英特尔的这张图也有助于直观地了解插槽、CPU、核心、线程的含义。
我们必须按相反的顺序进行操作。我的系统在这里有 1 个插槽,这意味着它有一个用于 CPU 的芯片。
一个插槽有 2 个核心。这意味着单个芯片上有两个物理 CPU。这会告诉您实际核心的数量,即实际物理 CPU。
如您所见,每个核心都有两个线程。线程基本上是逻辑 CPU。线程共享物理核心的物理执行资源,但操作系统将它们视为单独的核心。在此处阅读有关超线程的更多信息。
简而言之,我的系统有一个芯片,其中包含两个物理 CPU,每个 CPU 被分成两个逻辑 CPU。因此,我的双核系统在操作系统中被视为有 4 个 CPU。
有一个NUMA 节点,供应商是 Intel,CPU 系列是 6。
CPU 型号为 142(我认为不相关),型号名称为 Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz(最重要的信息)。
步进是英特尔使用的数字,用来识别微处理器的设计变化级别。
我的 CPU 的当前时钟速度为 900.054 MHz,而其最大容量为 3100 MHz 和 400 MHz。
BogoMIPS是“处理器每秒无法执行任何操作的百万次数”。
虚拟化是 VT-x,用于“帮助加速在 VirtualBox、VMware、Hyper-V 和其他应用程序中创建的虚拟机”。
接下来的四条是关于缓存的。它有 32K 的 L1D(数据缓存)、32K 的 L1I(指令缓存)、256K 的 L2 缓存和 3072K 的 L3 缓存。阅读此 wiki 页面可快速获取有关 CPU 缓存的信息。
接下来是每个 CPU(逻辑 CPU 和物理 CPU)的 NUMA 节点。
最后一行是制造商特定的功能标记列表。您可以在此处阅读更多相关信息。
该图总结了您从 lscpu 命令获取的最重要的处理器信息。
在我看来,lscpu 命令足以为您提供所需的所有信息。
Linux 中检查 CPU 信息的其他命令
在 Linux 命令行中还有其他获取 CPU 信息的方法。让我一一介绍。不过,我不会详细解释它们的输出。
1.检查/proc/cpuinfo的内容
如果你了解Linux 中的目录结构,那么你已经知道proc是 Linux 中的特殊目录。它实际上是一个虚拟文件系统,包含运行时系统信息,例如系统内存、已安装的设备、硬件配置等。
如果您想要CPU信息,您可以读取proc目录中的cpuinfo文件的内容。
您会注意到 cpuinfo 文件包含有关处理器每个核心的详细信息。
例如我的CPU第一个核心有以下信息:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
stepping : 9
microcode : 0x8e
cpu MHz : 800.026
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
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 pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf
bogomips : 5424.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
如果您只想知道 CPU 核心的数量(包括物理和逻辑核心),您可以将grep 命令与wc 命令结合使用。
cat /proc/cpuinfo | grep processor | wc -l
4
2.使用 lshw 命令
lshw 是 list hardware 的缩写,很明显是列出硬件信息。
由于 lshw 命令提供了有关系统上所有硬件的信息,因此很难找到您正在寻找的内容。
这就是为什么 lshw 命令提供选项来缩小您的搜索范围。
要仅显示处理器信息,可以按以下方式使用 lshw 命令:
sudo lshw -class CPU
这将显示如下输出:
*-cpu
description: CPU
product: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
vendor: Intel Corp.
physical id: 3f
bus info: cpu@0
version: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
serial: To Be Filled By O.E.M.
slot: U3E1
size: 2964MHz
capacity: 3100MHz
width: 64 bits
clock: 100MHz
capabilities: x86-64 fpu fpu_exception wp 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 pbe syscall nx pdpe1gb rdtscp constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d cpufreq
configuration: cores=2 enabledcores=2 threads=4
3. 使用 hwinfo
hwinfo 是另一个用于获取 Linux 系统硬件信息的命令行工具。
您可能需要先安装 hwinfo 工具。在 Debian 和 Ubuntu 上,您可以使用 apt 命令来安装它。
sudo apt install hwinfo
安装后,您可以通过以下方式获取 CPU 详细信息:
hwinfo --cpu
您将看到 CPU 每个核心的类似输出:
01: None 00.0: 10103 CPU
[Created at cpu.460]
Unique ID: rdCR.j8NaKXDZtZ6
Hardware Class: cpu
Arch: X86-64
Vendor: "GenuineIntel"
Model: 6.142.9 "Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz"
Features: 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,pbe,syscall,nx,pdpe1gb,rdtscp,lm,constant_tsc,art,arch_perfmon,pebs,bts,rep_good,nopl,xtopology,nonstop_tsc,cpuid,aperfmperf,tsc_known_freq,pni,pclmulqdq,dtes64,monitor,ds_cpl,vmx,est,tm2,ssse3,sdbg,fma,cx16,xtpr,pdcm,pcid,sse4_1,sse4_2,x2apic,movbe,popcnt,tsc_deadline_timer,aes,xsave,avx,f16c,rdrand,lahf_lm,abm,3dnowprefetch,cpuid_fault,epb,invpcid_single,pti,ssbd,ibrs,ibpb,stibp,tpr_shadow,vnmi,flexpriority,ept,vpid,fsgsbase,tsc_adjust,bmi1,avx2,smep,bmi2,erms,invpcid,mpx,rdseed,adx,smap,clflushopt,intel_pt,xsaveopt,xsavec,xgetbv1,xsaves,dtherm,ida,arat,pln,pts,hwp,hwp_notify,hwp_act_window,hwp_epp,flush_l1d
Clock: 3050 MHz
BogoMips: 5424.00
Cache: 3072 kb
Units/Processor: 16
Config Status: cfg=new, avail=yes, need=no, active=unknown
4. dmidecode 命令
dmidecode是另一个用于检索 Linux 系统各种硬件信息的命令。您可以使用它检查 Linux 中的内存使用情况。您还可以使用它来仅获取处理器信息。
sudo dmidecode --type processor
此命令也需要sudo 访问权限。您将看到如下输出:
dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.
Handle 0x003F, DMI type 4, 48 bytes
Processor Information
Socket Designation: U3E1
Type: Central Processor
Family: Core i5
Manufacturer: Intel(R) Corporation
ID: E9 06 08 00 FF FB EB BF
Signature: Type 0, Family 6, Model 142, Stepping 9
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
Voltage: 0.8 V
External Clock: 100 MHz
Max Speed: 2500 MHz
Current Speed: 2400 MHz
Status: Populated, Enabled
Upgrade: Other
L1 Cache Handle: 0x003C
L2 Cache Handle: 0x003D
L3 Cache Handle: 0x003E
Serial Number: To Be Filled By O.E.M.
Asset Tag: To Be Filled By O.E.M.
Part Number: To Be Filled By O.E.M.
Core Count: 2
Core Enabled: 2
Thread Count: 4
Characteristics:
64-bit capable
Multi-Core
Hardware Thread
Execute Protection
Enhanced Virtualization
Power/Performance Control
结论
当然,Linux 中还有许多其他工具可以为您提供硬件信息。您也可以利用它们来获取 CPU 信息。
我认为,如果你不想记住任何东西,lscpu 是最好的命令。你也可以依赖 /proc/cpuinfo 文件。只需使用这两个,你就可以了。
既然您学会了检查 CPU 信息,也许您也想了解在 Linux 中检查磁盘信息。
希望你喜欢本教程。如果你有任何问题或建议,请在下面留言。