基本概念html
如何知道Linux系統有多少核心和處理器node
1.使用nproc命令api
使用nproc命令能夠查看所擁有的CPU邏輯核總數。此種方法爲最簡單和最短的方法,由於它是coreutils 的一部分而被普遍擴展:緩存
~$ nproc --all 48
2.使用lscpu命令服務器
lscpu從sysfs和/proc/cpuinfo中收集cpu體系結構信息,命令的輸出比較易讀 。該命令顯示的信息包括,插槽數、CPU數量、線程數 (thread)、物理核心數(core),還有 Non-Uniform Memory Access (NUMA) 節點數、緩存等。架構
命令輸出結果中,存在以下計算公式: CPU(s)=socket*Core*Threadsocket
以下爲四路24核48線程示例,其中CPU爲AMD Opteron 6234 ,標準主頻爲2.4GHZ。CPU插槽個數爲4;單個CPU物理核數爲6;單個CPU邏輯核心數爲12。ide
~$ lscpu Architecture: x86_64 #架構,這裏指64位處理器 CPU op-mode(s): 32-bit, 64-bit #運行方式 Byte Order: Little Endian #字節順序,這裏指小端法 CPU(s): 48 #服務器上CPU的邏輯核總數 On-line CPU(s) list: 0-47 #服務器上在線的CPU邏輯核總數(有時由於CPU過熱可能會暫停某些CPU) Thread(s) per core: 2 #每一個物理核超線程數(大於1則爲超線程) Core(s) per socket: 6 #每一個插槽的物理核數(每顆CPU物理核數) Socket(s): 4 #服務器上CPU插槽數 (通常爲CPU總數) NUMA node(s): 8 #非統一內存訪問節點 Vendor ID: AuthenticAMD #cpu廠商ID CPU family: 21 #CPU系列 Model: 1 #CPU型號編號 Model name: AMD Opteron 6234 @ 2.40GHz #CPU型號名稱 Stepping: 2 #步進 CPU MHz: 2400.66 #cpu主頻 BogoMIPS: 4799.42 Hypervisor vendor: AMD-V #虛擬化架構 Virtualization type: full #cpu支持的虛擬化技術 L1d cache: 16K #一級緩存,dcahce用於緩存數據 L1i cache: 64K #一級緩存,icahce用於緩存指令 L2 cache: 2408K #二級緩存 L3 cache: 6144K #三級緩存,緩存速度上 L1 > L2 > L3 > DDR(內存,理論速度幾十g每秒)
NUMA node0 CPU(s): 0,4,8,12,16,20 #邏輯CPU和NUMA節點映射
NUMA node1 CPU(s): 24,18,32,36,40,44
NUMA node2 CPU(s): 1,5,9,13,17,21
NUMA node3 CPU(s): 25,29,33,37,41,45
NUMA node4 CPU(s): 2,6,10,14,18,22
NUMA node5 CPU(s): 26,30,34,38,42,46
NUMA node6 CPU(s): 27,31,35,39,43,47
NUMA node7 CPU(s): 3,7,11,15,19,23
以下爲單路12核24線程示例,以下爲至強處理器E5系列CPU,型號爲Xeon E5-2680 v3 ,標準主頻爲2.5GHZ。CPU插槽個數爲1;單個CPU物理核數爲12,單個CPU邏輯核心數爲24。工具
~$ lscpu Architecture: x86_64 #架構,這裏指64位處理器 CPU op-mode(s): 32-bit, 64-bit #運行方式 Byte Order: Little Endian #字節順序,這裏指小端法 CPU(s): 24 #服務器上CPU的邏輯核總數 On-line CPU(s) list: 0-23 #服務器上在線的CPU邏輯核總數(有時由於CPU過熱可能會暫停某些CPU) Thread(s) per core: 2 #每一個物理核超線程數(大於1則爲超線程) Core(s) per socket: 12 #每一個插槽的物理核數(每顆CPU物理核數) Socket(s): 1 #服務器上CPU插槽數 (CPU總數) NUMA node(s): 1 #非統一內存訪問節點 Vendor ID: GenuineIntel #cpu廠商ID CPU family: 6 #CPU系列 Model: 63 #CPU型號編號 Model name: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz #CPU型號名稱 Stepping: 2 #步進 CPU MHz: 2494.222 #cpu主頻 BogoMIPS: 4988.44 Hypervisor vendor: KVM #虛擬化架構 Virtualization type: full #cpu支持的虛擬化技術 L1d cache: 32K #一級緩存,dcahce用於緩存數據 L1i cache: 32K #一級緩存,icahce用於緩存指令 L2 cache: 256K #二級緩存 L3 cache: 30720K #三級緩存,緩存速度上 L1 > L2 > L3 > DDR(內存,理論速度幾十g每秒) NUMA node0 CPU(s): 0,......(省略)
3.查看/proc/cpuinfo文件ui
在Linux系統中,提供了proc文件系統顯示系統的軟硬件信息。若是想了解系統中CPU的提供商和相關配置信息,則能夠經過/proc/cpuinfo文件獲得。
基於不一樣指令集的CPU產生的/proc/cpuinfo文件不同,基於X86指令集CPU的/proc/cpuinfo文件包含關鍵內容以下:
以以下雙路16核32線程爲例,其中CPU爲Intel(R) Xeon(R) E5-2697 v3,標準主頻2.6GHz。CPU個數爲2;單個CPU物理核數爲8;單個CPU邏輯核數爲16;支持超頻且已開啓。
查看當前系統邏輯核總數 ~$ cat /proc/cpuinfo| grep -i "processor"| wc -l 32 查看當前系統CPU數量(必須先sort後uniq) ~$ cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 2 查看單個CPU的物理核數量 ~$ cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores : 8 查看單個CPU的邏輯核數量(線程數) cat /proc/cpuinfo | grep -i "siblings"| uniq siblings : 16 查看是否支持超線程(顯示ht則表示支持超線程) cat /proc/cpuinfo | grep -i "flag" |grep -wo "ht"|uniq ht 查看是否開啓超線程(cpu cores和siblings一致表示沒有超線程) cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq cpu cores :8 siblings :16 查看CPU型號 cat /proc/cpuinfo|grep -i "model name"| uniq Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
以下爲雙路8核8線程系統示例,其中CPU爲Intel(R) Xeon(R) X5355,標準主頻2.66GHz。CPU個數爲2;單個CPU物理核數爲4;單個CPU邏輯核數爲4;支持超頻但未開啓。
processor : 0 #系統中邏輯核的惟一標識。 vendor_id : GenuineIntel #CPU製造商 cpu famil : 6 #CPU產品系列代號 model : 15 #CPU屬於其系列中的哪一代的代號 model name : Intel(R) Xeon(R) CPU X5355 @ 2.66GHz #當前邏輯核所屬CPU型號和標準主頻。 stepping : 7 #CPU屬於製做更新版本 cpu MHz : 2666.766 #CPU的實際使用主頻 cache size : 4096 KB #CPU二級緩存大小 physical id : 0 #當前邏輯核所屬CPU惟一標識。系統中一個CPU對應惟一一個physical id。 siblings : 4 #當前邏輯核所屬CPU的邏輯核數量 core id : 0 #當前邏輯核所屬的物理核在CPU中的標識ID。同一個CPU的同一個物理核模擬的邏輯核core id相同。 cpu cores : 4 #當前邏輯核所屬CPU的物理核數量 fpu : yes #是否具備浮點運算單元(Floating Point Unit) fpu_exception: yes #是否支持浮點計算異常 cpuid level : 10 #執行cpuid指令前,eax寄存器中的值,根據不一樣的值cpuid指令會返回不一樣的內容 wp : yes #代表當前CPU是否在內核態支持對用戶空間的寫保護(Write Protection) 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 syscall lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr dca lahf_lm #當前CPU支持的功能(若是含有ht表示支持超頻) bogomips : 5338.26 #在系統內核啓動時粗略測算的CPU速度(Million Instructions Per Second) clflush size : 64 #每次刷新緩存的大小單位 cache_alignment : 64 #緩存地址對齊單位 address sizes : 36 bits physical, 48 bits virtual #可訪問地址空間位數 power management: #對能源管理的支持
processor : 1
...(省略)
參考:/proc/cpuinfo 文件分析(查看CPU信息)
4.使用dmidecode工具
dmidecode 用於獲取主機的硬件信息,一般是在不打開計算機機箱的狀況下使用該命令來查找硬件詳細信息,可是咱們須要root權限。關鍵信息以下:
以下爲雙路16核32線程系統示例,其中CPU爲Intel(R) Xeon(R) E5-2620 v4,標準主頻2.10GHz。CPU個數爲2;單個CPU物理核數爲8;單個CPU邏輯核數爲16;支持超頻且已經開啓。
[root@localhost ~]$ dmidecode -t 4 # dmidecode 2.12-dmifs SMBIOS 3.0 present. # SMBIOS implementations newer than version 2.8 are not # fully supported by this version of dmidecode. Handle 0x006C, DMI type 4, 48 bytes Processor Information Socket Designation: SOCKET 0 Flags: FPU (Floating-point unit on-chip) ...(省略) HTT (Multi-threading) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz Current Speed: 2100 MHz Core Count: 8 Core Enabled: 8 Thread Count: 16 Handle 0x0070, DMI type 4, 48 bytes Processor Information Socket Designation: SOCKET 1 Flags: FPU (Floating-point unit on-chip) ...(省略) HTT (Multi-threading) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz Current Speed: 2100 MHz Core Count: 8 Core Enabled: 8 Thread Count: 16