您可以通过多种方式获取有关 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 op-mods 是 32 位和 64 位的,这意味着它可以作为 32 位和 64 位处理器运行。 换句话说,您可以在其上安装 32 位和 64 位操作系统。
字节顺序为小尾数。 意思就是 字节按 Little Endian 顺序排列.
接下来的 4 行告诉您处理器、CPU/内核和线程的数量。 我建议阅读这篇文章以了解 关于处理器的一点. 这张来自英特尔的图片还有助于可视化套接字、CPU、内核、线程的含义。
我们必须在这里以相反的顺序进行。 我的系统在这里有 1 个插槽,这意味着它有一个用于 CPU 的单芯片。
那一个插座有2个核心。 这意味着单芯片上有两个物理CPU。 这会告诉您实际内核的数量,即实际的物理 CPU。
如您所见,每个内核都有两个线程。 线程基本上是逻辑 CPU。 线程共享物理内核的物理执行资源,但操作系统将它们视为单独的内核。 阅读有关超线程的更多信息 这里.
简而言之,我的系统有一个芯片,其中包含两个物理 CPU,每个 CPU 分为两个逻辑 CPU。 因此,我的双核系统被操作系统视为具有 4 个 CPU。
有一个 NUMA 节点,供应商是英特尔,而 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 中的目录结构,您就已经知道 过程 是 Linux 中的一个特殊目录。 它实际上是一个虚拟文件系统,包含运行时系统信息,例如系统内存、已安装的设备、硬件配置等。
如果需要 CPU 信息,可以读取 proc 目录下的 cpuinfo 文件的内容。
您会注意到 cpuinfo 文件包含有关处理器每个内核的详细信息。
为了 example,我的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: [email protected]
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 中检查磁盘信息的内容。
我希望你喜欢这个教程。 如果您有任何问题或建议,请在下方发表评论。