1、查看 Linux 服务器的 物理 CPU 个数
:~> cat /proc/cpuinfo | grep "physical id"| sort| uniq| wc -l
2
物理 CPU 之间,通过总线进行通信:
2、查看物理 CPU 中 core 的个数 ( 即核心数 )
:~> cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores : 6
物理 CPU 中不同的 core 核心,是通过 L2 cache 进行通信的:
3、查看每个 core 中的逻辑处理单元(即逻辑CPU)的个数
:~> cat /proc/cpuinfo| grep "processor"| wc -l
24
每个 core 中有两个逻辑处理单元(即逻辑CPU),
这两个逻辑处理单元共享一个 core 的资源。
这就是 超线程 HT(Hyper-Threading)技术了;
一般在每个单位时间内,CPU 只能处理一个线程(Thread),
而超线程 HT(Hyper-Threading)技术是在单个核心处理单元中集成了两个逻辑处理单元,
也就是一个实体内核配两个逻辑内核(有各自独立的处理器状态),
从而实现可以在一颗 CPU 上同时执行多个线程 (Thread) ;
虽然采用超线程技术能同时执行两个线程(Thread),
但它并不象两个真正的 CPU 那样具备独立的资源;
因此,当两个线程都同时需要某一个资源时,其中一个还是要暂时停止让出资源,
直到资源闲置后才能继续。因此超线程的性能并不等同于两颗 CPU 的性能。
但如果双 Thread 共用 cache 且程序设计合理的话,性能有可能比双 core 好。