逻辑CPU的数量就是Socket
*
Core*
ThreadLinux下top按1后 查看的CPU也是逻辑CPU个数
核心(core)
一开始,每个物理 cpu 上只有一个核心(a single core),对操作系统而言,也就是同一时刻只能运行一个进程/线程。 为了提高性能,cpu 厂商开始在单个物理 cpu 上增加核心(实实在在的硬件存在),也就出现了双核心 cpu(dual-core cpu)以及多核心 cpu(multiple cores),这样一个双核心 cpu 就是同一时刻能够运行两个进程/线程的。
-
物理CPU
-
实际服务器中插槽上的CPU个数 是指物理上,也就是硬件上存在着几颗物理cpu,指的是真实存在是cpu处理器的个数,1个代表一颗,2个代表2颗cpu处理器。 物理cpu数量,可以数不重复的 physical id 有几个,一个不重复的physical代表是一个物理cpu
-
拥有相同 physical id 的所有逻辑处理器共享同一个物理插座,每个 physical id 代表一个唯一的物理封装。
-
-
逻辑CPU
-
Linux下top按1后 查看的CPU也是逻辑CPU个数
cpuinfo文件里的信息内容分别列出了processor 0 – n 的规格,这表示的也是逻辑cpu的个数
-
lscpu
# Socket(s):主板上面的物理 CPU 插槽。物理cpu个数
# Thread(s) per core:每个核对应的超线程数
# Core(s) per socket:Core就是平时说的核,双核、四核等,就是每个CPU上的核数
# 逻辑CPU的数量就是Socket*Core*Thread
[root@test01 ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l # 查看物理cpu个数
[root@test01 ~]# cat /proc/cpuinfo |grep "processor"|wc -l # 查看逻辑cpu个数
# 如18.127的逻辑核数是28c,但实际只有7个cpu物理核数,每个cpu是4核;所以查到的就是28C
root@localhost:~# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
# CPU(s): 28
On-line CPU(s) list: 0-27
Thread(s) per core: 1
# Core(s) per socket: 4
Socket(s): 7
[root@test01 ~]# cat /proc/cpuinfo |grep "cores"|uniq # 查看cpu核数
cpu缓存
cpu是与内存直接交互的,内存是与磁盘进行交互的
/*
CPU缓存是CPU重要的参数,缓存是介于内存与CPU之间的存储器,容量虽小,但是速度比内存更快,用于缓解CPU的运算速度与内存条读写速度不匹配的矛盾,因此缓存越高越好。缓存的原理是,
如果CPU需要读取一个数据,首先会从缓存中查找,如果找到会立即读取并发送给CPU进行处理,大大减少了CPU访问内存的时间。
如果CPU没有在缓存中找到这个数据,就需要从较慢速度的内存中读取并发送给CPU,同时也会将这个数据调入高速缓存中,以便CPU再次读取这个数据,可以直接从缓存中读取,无需从内存调用。
CPU缓存细分为一级缓存,二级缓存,三级缓存,CPU在实际数据读取中重要的却是一级缓存,因为一级缓存速度最快,二级缓存其次,三级缓存属于最慢的,但是三级缓存的容量最大,CPU读取缓存时会先从一级缓存开始,然是二级缓存,而读取二级缓存有时会出现数据未命中的情况,这时候就需要从三级缓存读取。
*/
标签:缓存,读取,知识,个数,CPU,cpu,物理
From: https://www.cnblogs.com/xiaomengniu/p/17426268.html