物理&逻辑CPU信息查看
什么是 CPU
CPU: (Central Processing Unit)也称为中央处理器,主要通过内部总线,建立起芯片内各部件之间的信息传输通路。
如何查看 CPU 详细信息
我们平常在操作 Linux 服务器时,如何能够知道服务器的 CPU 的详细信息呢。
[xxx@xxx ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
- 16: CPU 核心数;
- Intel(R): 服务器 CPU 品牌英特尔;
- Xeon(R): 英特尔微处理器(至强);
- E5-2630 v3: 产品详细型号;
- 2.40GHz: 主频。
查看物理 CPU 个数
物理 CPU 指的是购买组装在电脑或者服务器的实体 CPU。
日常我们所说的 CPU 核数指的是物理 CPU 上存在几个核心处理器或者核心处理单元总和(排除超线程技术)。
[xxx@xxx ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
查看 CPU 详细得知,服务器共有 16个核心,物理 CPU 个数为 4,证明单个物理 CPU 上集成了 4 个核心处理器。
单物理 CPU 核数
单个物理 CPU 我们也可以通过命令查看 Core 个数。
[xxx@xxx ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq
查看逻辑 CPU 的个数
逻辑 CPU 是指用 超线程技术(HT)将物理核虚拟而成的逻辑处理单元。
[xxx@xxx ~]# cat /proc/cpuinfo| grep "processor"| wc -l
举例的服务器并不支持超线程技术,所以无法看到。
超线程技术
超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了 CPU 的闲置时间,提高的 CPU 的运行效率。
超线程技术是在 一颗 CPU 同时执行多个程序而共同分享一颗 CPU 内的资源,理论上要像两颗 CPU 一样在同一时间执行两个线程。
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的 CPU 那样,每个 CPU 都具有独立的资源。
当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续 。因此超线程的性能并不等于两颗 CPU 的性能。
对于 CPU 密集型的数值程序,超线程技术可能会导致整体程序性能下降。Linux 内核支持关闭超线程技术。
小结
关于物理 CPU 个数、核心 CPU 个数、逻辑 CPU 个数之间总结的公式。
总核心数 = 物理 CPU 个数 * 单物理 CPU 核心数。
逻辑 CPU 数量 = 总核心数 * 超线程数。