查看Linux中的CPU信息【5种简单方法】
您可以通过多种方式在 Linux 命令行中获取 CPU 信息。您可以获得处理器信息,例如实际核心数、逻辑核心数、超线程、CPU 频率等。
您可以通过多种方式获取有关 Linux 系统上的处理器的信息。我将向您展示我最喜欢的执行此任务的工具,以及检查 Linux 中 CPU 的一些其他方法。
使用 lscpu 命令获取 CPU 信息
这是最简单的命令,以简单简洁的输出显示 CPU 信息。
您可以查看系统的架构、处理器数量、供应商信息、缓存信息、处理器速度等。
它也更容易记住,因为它类似于 ls 命令。您可以将其视为“列出 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 op-mod 分为 32 位和 64 位,这意味着它既可以作为 32 位处理器也可以作为 64 位处理器运行。换句话说,您可以在其上安装32位和64位操作系统。
字节顺序为 Little Endian。这意味着字节按照 Little Endian 顺序排列。
接下来的 4 行告诉您有关处理器、CPU/核心和线程的数量。我建议阅读这篇文章来了解一些有关处理器的知识。英特尔的这张图片还有助于直观地了解套接字、CPU、核心、线程的含义。
这里我们必须以相反的顺序进行。我的系统这里有 1 个插槽,这意味着它有一个用于 CPU 的单芯片。
那个插座有 2 个核心。这意味着单芯片上有两个物理CPU。这告诉您真实核心的数量,即实际的物理 CPU。
正如您所看到的,每个核心都有两个线程。线程基本上是逻辑CPU。线程共享物理核心的物理执行资源,但操作系统将它们视为单独的核心。请在此处阅读有关超线程的更多信息。
简而言之,我的系统有一个芯片,包含两个物理CPU,每个CPU又分为两个逻辑CPU。因此我的双核系统被操作系统视为有 4 个 CPU。
有 1 个 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 代表“列出硬件”。很明显,就是列出硬件信息。
由于 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 中检查磁盘信息的内容。
我希望您喜欢本教程。如果您有疑问或建议,请在下方留言。