目录
前言
在linux操作系统中,CPU的信息在启动的过程中被装载到虚拟目录/proc下的cpuinfo文件中,我们可以通过 cat /proc/cpuinfo 查看一下
概述
了解CPU核数的计算方式
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
##常用命令
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
[root@localhost ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 154
model name : 12th Gen Intel(R) Core(TM) i5-12500H
stepping : 3
microcode : 0x413
cpu MHz : 3110.397
cache size : 18432 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 32
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec arat pku ospke spec_ctrl intel_stibp flush_l1d arch_capabilities
bogomips : 6220.79
clflush size : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 154
model name : 12th Gen Intel(R) Core(TM) i5-12500H
stepping : 3
microcode : 0x413
cpu MHz : 3110.397
cache size : 18432 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 32
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec arat pku ospke spec_ctrl intel_stibp flush_l1d arch_capabilities
bogomips : 6220.79
clflush size : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management:
显示项
- processor:系统中逻辑处理核的编号。对于单核处理器,则可认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核,逻辑处理器的唯一标识符,逻辑处理器可以这样理解,一般情况,一颗cpu可以有多核,利用Intel的HT技术可以在逻辑上再分一倍数量的CPU的核出来。
- vendor_id:CPU制造商
- cpu family:CPU产品系列代号
- model:CPU属于其系列中的哪一代的代号
- model name:CPU属于的名字及其编号、标称主频
- stepping:CPU属于制作更新版本
- cpu MHz:CPU的实际使用主频
- cache size :CPU二级缓存大小
- physical id :单个CPU的标号
- siblings :单个CPU逻辑物理核数
- core id :当前物理核在其所处CPU中的编号,这个编号不一定连续
- cpu cores :该逻辑核所处CPU的物理核数
- apicid :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
- fpu :是否具有浮点运算单元(Floating Point Unit)
- fpu_exception :是否支持浮点计算异常
- cpuid level :执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
- wp :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
- flags :当前CPU支持的功能
- bogomips :在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
- clflush size :每次刷新缓存的大小单位
- cache_alignment :缓存地址对齐单位
- address sizes :可访问地址空间位数
- CPU信息中flags各项含义:
- fpu: Onboard FPU (floating point support)
- vme: Virtual 8086 mode enhancements
- de: Debugging Extensions (CR4.DE)
- pse: Page Size Extensions (4MB memory pages)
- tsc: Time Stamp Counter (RDTSC)
- msr: Model-Specific Registers (RDMSR, WRMSR)
- pae: Physical Address Extensions (support for more than 4GB of RAM)
- mce: Machine Check Exception
- cx8: CMPXCHG8 instruction (64-bit compare-and-swap)
- apic: Onboard APIC
- sep: SYSENTER/SYSEXIT
- mtrr: Memory Type Range Registers
- pge: Page Global Enable (global bit in PDEs and PTEs)
- mca: Machine Check Architecture
- cmov: CMOV instructions (conditional move) (also FCMOV)
- pat: Page Attribute Table
- pse36: 36-bit PSEs (huge pages)
- pn: Processor serial number
- clflush: Cache Line Flush instruction
- dts: Debug Store (buffer for debugging and profiling instructions)
- acpi: ACPI via MSR (temperature monitoring and clock speed modulation)
- mmx: Multimedia Extensions
- fxsr: FXSAVE/FXRSTOR, CR4.OSFXSR
- sse: Intel SSE vector instructions
- sse2: SSE2
- ss: CPU self snoop
- ht: Hyper-Threading and/or multi-core
- tm: Automatic clock control (Thermal Monitor)
- ia64: Intel Itanium Architecture 64-bit (not to be confused with Intel's 64-bit x86 architecture with flag x86-64 or "AMD64" bit indicated by flag lm)
- pbe: Pending Break Enable (PBE# pin) wakeup support
查询信息
查看物理cpu的个数
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
查看cpu核数
cat /proc/cpuinfo| grep "cpu cores" | uniq
查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
查看CPU型号
cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq
查看CPU的主频
cat /proc/cpuinfo | grep MHz | uniq
总结
CPUinfo主要是用于查看CPU的各种信息,单核CPU情况下的cpuinfo文件、多核CPU使用超线程和不使用超线程的cpuinfo文件以及多个多核CPU情况下的cpuinfo文件