CPU核数
计算机系统架构
SMP, NUMA, MPP是目前主流得计算机系统架构
SMP
对称多处理架构。在这样得系统中,多个CPU对称工作,无主从关系。所有的CPU共享全部资源,如总线,内存和I/O系统等,多个CPU之间没有区别,平等地访问内存、外设。每个CPU访问内存任何地址所需时间是相同地,因此SMP也被称为一致性存储器访问架构(UMA: Uniform Memory Access)。操作系统管理着一个队列,每个处理器依次处理队列中的进程。如果两个处理器同时请求访问一个资源,由硬件、软件的锁机制去解决资源争用的问题
SMP 服务器的主要特征是共享,系统中所有资源 (CPU 、内存、 I/O 等 ) 都是共享的。也正是由于这种特征,导致了 SMP 服务器的主要问题,那就是它的扩展能力非常有限。对于 SMP 服务器而言,每一个共享的环节都可能造成 SMP 服务器扩展时的瓶颈,而最受限制的则是内存。由于每个 CPU 必须通过相同的内存总线访问相同的内存资源,因此随着 CPU 数量的增加,内存访问冲突将迅速增加,最终会造成 CPU 资源的浪费,使 CPU 性能的有效性大大降低。实验证明, SMP 服务器 CPU 利用率最好的情况是 2 至 4 个 CPU 。
NUMA
Non-Uniform Memory Access。非一致性存储访问结构.NUMA服务器的基本特征是具有多个CPU模块,每个CPU模块由多个CPU组成,并且具有独立的本地内存、I/O槽口等。其节点之间通过互联模块(crossbar switch)进行连接和信息交互,因此每个CPU可以访问整个系统的内存(这是NUMA系统和MPP系统的重要差别)。显然,访问本地内存的速度将远远高于访问remote memory的速度.为了更好的发挥系统性能,开发应用程序时需要尽量减少不同CPU模块之间的信息交互
NUMA 技术同样有一定缺陷,由于访问远地内存的延时远远超过本地内存,因此当 CPU 数量增加时,系统性能无法线性增加。
MPP
海量并行处理架构(Massive Parallel Processing).MPP提供了另外一种进行系统扩展的方式,它由多个SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。MPP的节点互联机制是在不同的SMP服务器外部通过I/O实现的,每个节点只访问本地内存和存储,节点之间的信息交互与节点本身的处理是并行进行的。其基本特征是由多个SMP服务器通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种完全无共享结构,因扩展能力最好,理论上扩展无限制
查看CPU参数
超线程: Hyper-threading就是在一个CPU Core上集成了两个逻辑处理器单元,即Logical Processor
NUMA node包括一个或多个Socket,以及与之相连的local memory
一个多核的socket有多个Core
如果CPU支持HT, OS还会把这个Core看成2个Logical Processor
lscpu
lscpu Architecture: x86_64 #处理器架构 CPU op-mode(s): 32-bit, 64-bit #CPU工作模式 Byte Order: Little Endian CPU(s): 1 #逻辑CPU核数 On-line CPU(s) list: 0 Thread(s) per core: 1 #每个逻辑核上的超线程数 Core(s) per socket: 1 #一个物理核上的逻辑核数 Socket(s): 1 #物理CPU个数 NUMA node(s): 1 #NUMA节点个数 Vendor ID: GenuineIntel CPU family: 6 Model: 85 Model name: Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz Stepping: 5 CPU MHz: 2494.140 BogoMIPS: 4988.28 Hypervisor vendor: KVM Virtualization type: full #虚拟化类型支持 L1d cache: 32K #1级数据缓存 L1i cache: 32K #1级指令缓存 L2 cache: 4096K L3 cache: 36608K NUMA node0 CPU(s): 0 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl 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 invpcid_single fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512_vnni
查看物理CPU个数
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
查看逻辑CPU个数
cat /proc/cpuinfo| grep "processor"| wc -l
查看linux系统内存信息
cat /proc/meminfo free -h
Resources
- NUMA技术以及uumactl命令: https://www.codenong.com/cs109360467/
- lscpu命令详解: https://www.cnblogs.com/machangwei-8/p/10398902.html
- linux查看机器cpu核数: https://www.cnblogs.com/hurry-up/p/9564064.html
- cpu性能逻辑优化: https://blog.csdn.net/Blues1021/article/details/44248027