1.超线程概念
”超线程(Hyper-Threading,简称“HT”)”技术。超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。
超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
2.查看是否开启超线程
判读是否开启超线程,需要确认总核数与总逻辑核数是否相同。
总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
方法一:lscpu命令查看cpu的状态,超线程状态下threads per core数值为2,禁用时为1.
threads per core为每个核有几个线程。
方法二:cat /proc/cpuinfo查看cpu信息,具有方法如下。
CPU物理个数:cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l
或者 grep ‘physical id’ /proc/cpuinfo |sort -u|wc -l
逻辑CPU个数:cat /proc/cpuinfo| grep processor|sort|uniq|wc -l
或者 grep -c processor /proc/cpuinfo
siblings数量:grep “siblings” /proc/cpuinfo|uniq
cpu cores数量:grep “cpu cores” /proc/cpuinfo|uniq
* processor 条目包括这一逻辑处理器的唯一标识符。
* physical id 条目包括每个物理封装的唯一标识符。
* core id 条目保存每个内核的唯一标识符。
* siblings 条目列出了位于相同物理封装中的逻辑处理器的数量。
* cpu cores 条目包含位于相同物理封装中的内核数量。
* 如果处理器为英特尔处理器,则 vendor id 条目中的字符串是 GenuineIntel
如果“siblings”和“cpu cores”一致,则说明不支持超线程,或者超线程未打开。如果“siblings”是“cpu cores”的两倍,则说明支持超线程,并且超线程已打开。如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。