CPU(Central Processing Unit): 中央处理单元,
物理cpu数:
物理CPU数就是实际Server中插槽上的CPU个数,主板上实际插入的cpu数量
物理cpu数量,在Linux上查看/proc/cpuinfo,其中的physical id就是每个物理CPU的id,有几个不同的physical id就有几个物理CPU。
grep 'physical id' /proc/cpuinfo|sort|uniq|wc -l
cpu核数:
每颗物理CPU可以有1个或者多个物理内核,通常每颗物理CPU的内核数都是固定的,cpu核数就是指单块CPU上面能处理数据的芯片组的数量,如双核、四核等 (cpu cores)
(单核CPU就是有1个物理内核,双核CPU就是有2个物理内核。)
在Linux上查看/proc/cpuinfo,其中的core id就是每颗物理CPU的物理内核id,
有几个不同的core id就有几个物理内核。
总的CPU物理内核数 = 物理CPU数 * 每颗物理CPU的内核数
cat /proc/cpuinfo | grep "cpu cores"| uniq
逻辑cpu数:
操作系统可以使用逻辑CPU来模拟真实CPU。在没有多核处理器的时候,一个物理CPU只能有一个物理内核,而现在有了多核技术,一个物理CPU可以有多个物理内核,可以把一个CPU当作多个CPU使用,为了与物理CPU区分开来,称其为逻辑CPU。
没有开启超线程时,逻辑CPU的个数就是总的CPU物理内核数。然而开启超线程后,逻辑CPU的个数就是总的CPU物理内核数的倍数(倍数为超线程数)。
在Linux上查看/proc/cpuinfo,其中的processor就是逻辑CPU,有几个processor就有几个逻辑CPU。
总的逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
Linux中 /proc/cpuinfo 它是用来存储cpu硬件信息的。信息内容分别列出了processor 0 – n 的规格。
cat /proc/cpuinfo| grep "processor"|wc -l
超线程技术
超线程技术(HT:简单来说,它可使处理器中的1 颗内核如2 颗内核那样在操作系统中发挥作用。这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻辑cpu=物理CPU个数×每颗核数x2)
线程技术就是单个处理器基础上提供两个逻辑处理器,利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,这两个逻辑处理器共享相同的物理执行单元,而从软件的角度来看,操作系统可以象拥有两个物理处理器那样为这两个逻辑处理器分配不同的线程。而对于超线程的处理器来说逻辑处理器中的指令在共享的执行资源上同时运行,进而兼容多线程操作系统和软件,减少了处理器的闲置时间,这样就大幅提高了传统处理器的效率。
几路几核几线程:
基于上面的基本概念,理解一下常说的几核几线程。
如果计算机有一个物理CPU,是双核的,支持超线程。
那么这台计算机就是双核四线程。 实际上几核几线程中的线程数就是逻辑CPU数。
对于两路四核超线程计算机,两路指计算机有2个物理CPU,每颗CPU中有4个物理内核,CPU支持超线程,就有2*4*2=16个逻辑CPU,这就是通常所谓的16核计算机。
实际能看到的2个物理CPU:
总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程
查询全部CPU信息
cat /proc/cpuinfo
# 这一逻辑处理器的唯一标识符
processor : 19
# 处理器为英特尔处理器,则字符串是 GenuineIntel
vendor_id : GenuineIntel
# 产品的系列代号
cpu family : 6
# CPU系列代号
model : 79
# CPU系列的名字、编号、主频
# 应该能大概看得出是虚拟CPU还是真实的CPU
model name : Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
# 更新版本
stepping : 1
microcode : 0xb000038
#实际主频
cpu MHz : 1201.466
#二级缓存
cache size : 25600 KB
# 每个物理封装的唯一标识符。拥有相同 physical id 的所有逻辑处理器共享同一个物理插座,每个 physical id 代表一个唯一的物理封装。如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id不同,则说明这是一个多内核处理器。cpu cores条目也可以表示是否支持多内核。
physical id : 1
# 列出了位于相同物理封装中的逻辑处理器的数量。表示位于这一物理封装上的逻辑处理器的数量,它们可能支持也可能不支持超线程(HT)技术。如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。
siblings : 20
# 保存每个内核的唯一标识符。(为什么这里大于10呢是因为不一定是连续的)。每个 core id 均代表一个唯一的处理器内核,所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。简单的说:“siblings”指的是一个物理CPU有几个逻辑CPU,cpu cores指的是一个物理CPU有几个核。
core id : 12
# 包含位于相同物理封装中的内核数量。
cpu cores : 10
apicid : 56
initial apicid : 56
fpu : yes
fpu_exception : yes
cpuid level : 20
wp : yes
# CPU的功能标识
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 arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single pti intel_ppin ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap intel_pt xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit
# Linux操作系统中衡量计算机处理器运行速度的的一种尺度
bogomips : 4802.16
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
查看所有CPU的总体信息
lscpu
Architecture: x86_64 #架构
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 40 #逻辑cpu颗数是40
On-line CPU(s) list: 0-39
Thread(s) per core: 2 #每个核心线程数是2
Core(s) per socket: 10 #每个cpu插槽核数/每颗物理cpu核数是10
Socket(s): 2 #cpu插槽数是2
NUMA node(s): 2
Vendor ID: GenuineIntel #cpu厂商ID是GenuineIntel
CPU family: 6 #cpu系列是6
Model: 79 #型号79
Model name: Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
Stepping: 1 #步进是1
CPU MHz: 1201.266 #cpu主频是1200MHz
CPU max MHz: 3400.0000
CPU min MHz: 1200.0000
BogoMIPS: 4802.16
Virtualization: VT-x #cpu支持的虚拟化技术VT-x
L1d cache: 32K #一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)
L1i cache: 32K #一级缓存32K(具体为L1指令缓存为32K)
L2 cache: 256K #二级缓存256k
L3 cache: 25600K
NUMA node0 CPU(s): 0-9,20-29
NUMA node1 CPU(s): 10-19,30-39
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 arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single pti intel_ppin ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap intel_pt xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts md_clear flush_l1d
查看物理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
查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
查看各个物理CPU上面封装的逻辑处理器(即超线程后的CPU)个数
cat /proc/cpuinfo | grep siblings
查看内存大小
cat /proc/meminfo | grep -i "memtotal"
查看当前操作系统发行版信息
cat /etc/issue
查看cpu运行模式
getconf LONG_BIT
32 (说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
查看服务器型号(或者是生产厂家)
sudo dmidecode | grep "Product Name"
sudo dmidecode -t system
查看网卡信息
dmesg | grep eth
http://blog.sina.com.cn/s/blog_722279820102z4nf.html
https://blog.csdn.net/Qevery678/article/details/89012474
http://c.biancheng.net/view/1084.html
https://www.cnblogs.com/ilinuxer/p/4559129.html
https://blog.csdn.net/w8y56f/article/details/89816283
https://www.cnblogs.com/xubiao/p/6497533.html