在Linux中检查CPU信息的5种方法

时间:2020-03-05 15:26:06  来源:igfitidea点击:

我们可以在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位操作系统。

字节命令是小endian。
这意味着字节按小endian顺序排列。

接下来的4行告诉我们有关处理器,CPU/CORES和线程的数量。
我建议阅读这篇文章来了解处理器的一点。

来自英特尔的这张照片还有助于可视化套接字,CPU,核心,线程的意思。

我们必须在这里以相反的顺序进行。
我的系统有1个套接字,这意味着它有一个用于CPU的单个芯片。

一个插座有2个核心。
这意味着单片机有两个物理CPU。
这告诉了你的真实核心的数量:实际的物理CPU。

正如我们所看到的,每个核心都有两个线程。
线程基本上是逻辑CPU。
线程共享物理核心的物理执行资源,但操作系统将它们视为单独的核心。
阅读更多关于超线程的内容。

简而言之,我的系统有一个包含两个物理CPU的芯片,每个CPU分为两个逻辑CPU。
因此,我的双核系统被操作系统视为具有4个CPU。

有一个numa节点,供应商是英特尔,CPU系列是6.

CPU型号为142(在我看来不相关),型号名称是英特尔(R)核心(TM)I5-7200U CPU @ 2.50GHz(最重要的信息)。

踩踏是英特尔使用的数字,以确定内置微处理器的设计级别。

CPU的当前时钟速度为900.054 MHz,而其最大容量为3100 MHz,400 MHz。

Bogomips是"每秒百万次,处理器绝对没有"。

虚拟化是VT-X,用于"帮助在VirtualBox,VMware,Hyper-V和其他应用中创建的加速虚拟机"。

接下来的四个条目是关于缓存的。
它具有32k,L1i(指令缓存)的L1D(数据缓存)为32K,L2缓存为256K和L3缓存为3072K。
阅读此Wiki页面以获得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核心(包括物理和逻辑和逻辑)的数量,我们可以使用WC命令使用Grep命令。

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: Hyman@theitroad
        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