首先,看看什么是超线程概念
超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。
超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
其次,看看物理CPU个数,核数以及线程数的关系
总核数 = 物理CPU个数 * 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
上述公式中,逻辑CPU数即线程数
如何查看CPU物理个数
grep ‘physical id’ /proc/cpuinfo | sort -u
physical id : 0
physical id : 1
如何查看每个物理CPU的核数
grep ‘core id’ /proc/cpuinfo | sort -u | wc -l
8
如何查看总的逻辑CPU个数
grep ‘processor’ /proc/cpuinfo | sort -u | wc -l
32
32/8/2=2,可见该CPU支持并已打开超线程。
如何查看CPU的型号
dmidecode -s processor-version
Intel® Xeon® CPU E5-2658 @ 2.10GHz
Intel® Xeon® CPU E5-2658 @ 2.10GHz