在谈到服务器的性能指标时,我们常提到CPU是双核、四核、八核等,按照我们的理解,肯定是核数越高性能越好,但到底怎么理解CPU的核数那?
1、CPU的核数的概念
通俗意义上讲,CPU单核就是一个人做同一件事,多核就是多个人同时做同一件事情。
- CPU:CPU即中央处理器,是电脑中一个最重要,最核心的东西。CPU主要的工作就是处理和运算数据,所以,CPU运算速度、主频、缓存、核心数,这几个参数决定了CPU的好坏,CPU的主频越高、缓存越大、核心数越多,这样的CPU运转速度就很快,处理图形图像文件起来,速度就越快,价格就会越贵。
- 多核心: CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
接下来,我们来看一下CPU的基本架构。
多个物理CPU,CPU通过总线进行通信,效率比较低,如下:
多核CPU,不同的核通过L2 cache进行通信,存储和外设通过总线与CPU通信,如下:
多核超线程,每个核有两个逻辑的处理单元,两个核共同分享一个核的资源,如下:
2、在Linux系统中查看CPU的各项参数
下面就以笔者的linuxi服务器为例输出的各项参数,其中CPU是四核的:
#查看CPU信息(型号) [root@AAA ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 4 Intel(R) Xeon(R) CPU E5-2403 v2 @ 1.80GHz # 查看物理CPU个数 [root@AAA ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 1 # 查看每个物理CPU中core的个数(即核数) [root@AAA ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores : 4 # 查看逻辑CPU的个数 [root@AAA ~]# cat /proc/cpuinfo| grep "processor"| wc -l 4 #查看CPU的各项指标 [root@AAA ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 62 Stepping: 4 CPU MHz: 1800.057 BogoMIPS: 3600.11 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 10240K NUMA node0 CPU(s): 0-3