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:
...
以下是less命令输出内容的解释:
processor - 每个处理器的唯一标识号,从0开始。
型号名称 - 处理器的全名,包括处理器品牌。一旦了解了所具有的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系统上。
如果您有任何疑问,请随时发表评论。