原理比较简单,检查/proc/cpuinfo文件即可:
例如我的CPU
- # cat /proc/cpuinfo
- processor : 0
- vendor_id : AuthenticAMD
- cpu family : 16
- model : 5
- model name : AMD Athlon(tm) II X4 640 Processor
- stepping : 3
- cpu MHz : 3480.119
- cache size : 512 KB
- physical id : 0
- siblings : 4
- core id : 0
- cpu cores : 4
- apicid : 0
- fpu : yes
- fpu_exception : yes
- cpuid level : 5
- 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 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc pni cx16 popcnt lahf_lm extapic altmovcr8 abm sse4a misalignsse
- bogomips : 6960.23
- TLB size : 1024 4K pages
- clflush size : 64
- cache_alignment : 64
- address sizes : 40 bits physical, 48 bits virtual
- power management: ts ttp tm stc 100mhzsteps hwpstate [8]
- processor : 1
- vendor_id : AuthenticAMD
- cpu family : 16
- model : 5
- model name : AMD Athlon(tm) II X4 640 Processor
- stepping : 3
- cpu MHz : 3480.119
- cache size : 512 KB
- physical id : 0
- siblings : 4
- core id : 1
- cpu cores : 4
- apicid : 1
- fpu : yes
- fpu_exception : yes
- cpuid level : 5
- 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 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc pni cx16 popcnt lahf_lm extapic altmovcr8 abm sse4a misalignsse
- bogomips : 6969.48
- TLB size : 1024 4K pages
- clflush size : 64
- cache_alignment : 64
- address sizes : 40 bits physical, 48 bits virtual
- power management: ts ttp tm stc 100mhzsteps hwpstate [8]
- processor : 2
- vendor_id : AuthenticAMD
- cpu family : 16
- model : 5
- model name : AMD Athlon(tm) II X4 640 Processor
- stepping : 3
- cpu MHz : 3480.119
- cache size : 512 KB
- physical id : 0
- siblings : 4
- core id : 2
- cpu cores : 4
- apicid : 2
- fpu : yes
- fpu_exception : yes
- cpuid level : 5
- 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 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc pni cx16 popcnt lahf_lm extapic altmovcr8 abm sse4a misalignsse
- bogomips : 6973.84
- TLB size : 1024 4K pages
- clflush size : 64
- cache_alignment : 64
- address sizes : 40 bits physical, 48 bits virtual
- power management: ts ttp tm stc 100mhzsteps hwpstate [8]
- processor : 3
- vendor_id : AuthenticAMD
- cpu family : 16
- model : 5
- model name : AMD Athlon(tm) II X4 640 Processor
- stepping : 3
- cpu MHz : 3480.119
- cache size : 512 KB
- physical id : 0
- siblings : 4
- core id : 3
- cpu cores : 4
- apicid : 3
- fpu : yes
- fpu_exception : yes
- cpuid level : 5
- 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 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc pni cx16 popcnt lahf_lm extapic altmovcr8 abm sse4a misalignsse
- bogomips : 6967.36
- TLB size : 1024 4K pages
- clflush size : 64
- cache_alignment : 64
- address sizes : 40 bits physical, 48 bits virtual
- power management: ts ttp tm stc 100mhzsteps hwpstate [8]
其中:
processor行表示的CPU核的ID,该行的总数便是CPU核数
physical id行表示的则是物理CPU的ID,该行的ID号有哪几种,便有几颗物理CPU
如果是批量查询可以这样做:
- # cat /proc/cpuinfo |grep '^physical'|sort |uniq
- physical id : 0
- # cat /proc/cpuinfo |grep processor
- processor : 0
- processor : 1
- processor : 2
- processor : 3