获取Linux上的CPU信息
CPU(中央处理器),通常简称为处理器,是计算机的重要组成部分之一。它执行所有类型的数据处理操作,它通常被称为计算机的大脑。
你有没有想过你的系统中的CPU是什么类型,CPU的速度是多少?你可能需要知道你的机器里有什么CPU,这有各种原因。也许你正在加载一个内核模块或调试一个与硬件有关的问题。不管是什么原因,在Linux上,从命令行中确定处理器的类型和速度是非常容易的。
在Linux中获取CPU的信息
最简单的方法是通过显示/proc/cpuinfo
虚拟文件的内容来确定你的CPU类型。
使用proc/cpuinfo
文件来识别处理器的类型不需要安装任何额外的程序。无论你使用什么Linux发行版,它都能发挥作用。
打开你的终端,使用less
或cat
来显示/proc/cpuinfo
中的内容:
less /proc/cpuinfo
该命令将打印每个逻辑CPU的识别号。例如,如果你有8个内核的处理器,你将看到一个从0到7的所有内核的列表。 下面是一个输出的例子:
输出
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
stepping : 10
microcode : 0x96
cpu MHz : 700.120
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
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 : 3600.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
...
下面是对最有趣的几行的解释:
- processor - 每个处理器的唯一识别号码,从0开始。
- model name - 处理器的全称,包括处理器品牌。一旦你知道你的CPU的确切类型,你可以检查关于你的处理器的规格的产品文档。
- flags - CPU特性。你可以在这里找到所有功能的列表。
如果你想过滤输出,你可以使用grep
命令 。例如,如果只显示处理器的名称,你可以使用:
grep -m 1 'model name' /proc/cpuinfo
输出
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
要打印CPU的数量:
grep -c 'model name' /proc/cpuinfo
输出
8
当你需要从源代码编译软件时,知道CPU的数量会很方便,你想知道有多少个并行进程可以同时执行。另一种查找CPU数量的方法是使用nproc
命令:
nproc
输出
8
用lscpu
检查CPU的信息
lscpu
是一个命令行工具,用于显示有关CPU架构的信息。lscpu
是util-linux软件包的一部分,该软件包已安装在所有Linux发行版上。
在shell提示符下,键入lscpu
:
lscpu
输出结果将如下所示,包括有关CPU数量、架构、供应商、系列、型号、速度、缓存、标志等信息。
输出
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 142
Model name: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
Stepping: 10
CPU MHz: 593.577
CPU max MHz: 3400.0000
CPU min MHz: 400.0000
BogoMIPS: 3600.00
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
NUMA node0 CPU(s): 0-7
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
与/proc/cpuinfo
文件的内容不同,lscpu的输出并不显示所有逻辑CPU的列表。
总结
在本指南中,我们已经向你展示了如何查找你的系统CPU的信息。还有其他一些工具可以用来确定你的CPU名称和供应商,如dmidecode
、hardinfo
和lshw
,但大多数工具在Linux系统中都没有默认安装。
如果您有任何问题,请随时留言咨询。