在 Linux 下判断系统当前是否开启了超线程

转载 2017年07月06日 10:21:22

转自: http://www.cnblogs.com/wjoyxt/p/4804293.html


#lscpu

Thread(s) per core: 2
Core(s) per socket: 6
Socket(s): 2

 

-----------------------------------------------

在判断当前是否开启了超线程之前,需要先判断另外几个数据:
1,物理CPU个数:

1
2
3
[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq
physical id : 0
physical id : 1

可以看到物理CPU个数为2,物理CPU也就是机器外面就能看到的一个个CPU,每个物理CPU还带有单独的风扇。
2,每个物理CPU的逻辑核数:

1
2
[root@localhost ~]# cat /proc/cpuinfo | grep "cores" | uniq
cpu cores   : 6

3,系统整个cpu线程数:

1
2
[root@localhost ~]# cat /proc/cpuinfo | grep "processor" | wc -l
24

有了三面几个数据,就可以判断当前是否开启了超线程了,没开启超线程的情况下,系统的cpu线程数=物理CPU个数*每个物理CPU的逻辑核数*1,因为每个逻辑核只跑了1个cpu线程,如果开启了超线程,那么cpu线程数=物理CPU个数*每个物理CPU的逻辑核数*N,因为每个逻辑核跑了2个cpu线程。所以,上面的24=2*6*2,可以判断当前开启了超线程。

1
2
3
[root@localhost ~]# cat /proc/cpuinfo | grep "model name" | uniq
model name  : Intel(R) Xeon(R) CPU           X5670  @ 2.93GHz
[root@localhost ~]#

这是一台X5670机器,从Intel的cpuX5670规格页面(http://ark.intel.com/products/47920/Intel-Xeon-Processor-X5670-%2812M-Cache-2_93-GHz-6_40-GTs-Intel-QPI%29)可以看到,其的确支持Intel® Hyper-Threading Technology。再看另外一个:

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq
physical id : 0
physical id : 1
[root@localhost ~]# cat /proc/cpuinfo | grep "cores" | uniq
cpu cores   : 4
[root@localhost ~]# cat /proc/cpuinfo | grep "processor" | wc -l
8
[root@localhost ~]# cat /proc/cpuinfo | grep "model name" | uniq
model name  : Intel(R) Xeon(R) CPU           E5504  @ 2.00GHz
[root@localhost ~]#

8=2*4,没有开启超线程,从Intel的cpuE5504规格页面(http://ark.intel.com/products/40711/Intel-Xeon-Processor-E5504-%284M-Cache-2_00-GHz-4_80-GTs-Intel-QPI%29)可以看到,其不支持Intel® Hyper-Threading Technology,想开启都没法。
另外,根据physical id信息可以判断哪些逻辑核在同一个物理核上,因为同一物理核上的逻辑核的physical id相等;而根据core id信息又可以判断哪两个cpu线程跑在同一个逻辑核上,因为跑在同一逻辑核上的cpu线程的core id相等,但是,由于不同物理核上的逻辑核core id可以相等,所以在进行第二个判断(即哪两个cpu线程跑在同一个逻辑核上)前需要先进行第一个判断(即哪些逻辑核在同一个物理核上)。


在Linux下判断系统当前是否开启了超线程

在判断当前是否开启了超线程之前,需要先判断另外几个数据: 1,物理CPU个数: 1 2 3 [root@localhost ~]# cat...
  • yockie
  • yockie
  • 2016年11月11日 11:33
  • 2195

在Linux下判断系统当前是否开启了超线程

在Linux下判断系统当前是否开启了超线程 ,在判断当前是否开启了超线程之前,需要先判断另外几个数据:  1,物理CPU个数:  [root@localhost ~]# cat /proc...
  • ywl185
  • ywl185
  • 2015年10月14日 16:53
  • 386

【Linux】判断系统当前是否开启了超线程

在判断当前是否开启了超线程之前,需要先判断另外几个数据: 1,物理CPU个数: 1 2 3 [root@localhost ~]# cat...
  • baidu_39511645
  • baidu_39511645
  • 2017年11月02日 09:52
  • 57

如何判断是否开启超线程

“超线程(Hyper-Threading,简称“HT”)”技术。超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减...
  • ctthunagchneg
  • ctthunagchneg
  • 2016年04月21日 21:18
  • 8098

虚拟机超线程性能分析深入浅出

原文地址:http://www.51gocloud.com/?p=1919超线程的技术原理超线程技术在一个物理核上模拟两个逻辑核,两个逻辑核具有各自独立的寄存器(eax、ebx、ecx、msr等等)和...
  • halcyonbaby
  • halcyonbaby
  • 2017年03月11日 16:57
  • 1735

php如何判断当前的操作系统是linux还是windows

php_uname()这个函数的意义在于返回当前PHP所运行的系统的信息,下面对这个函数详细说明一下: /** * 功能:返回当前PHP所运行的系统的信息 * @param st...
  • whatday
  • whatday
  • 2017年02月05日 08:55
  • 473

Bluetooth-->蓝牙开发之状态判断

1:判断设备是否支持蓝牙 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); if (null == adapter) ...
  • angcyo
  • angcyo
  • 2016年07月27日 14:21
  • 3445

Android之检测GPS服务和定位权限是否开启

Android检测GPS服务是否开启和定位权限是否开启,如果未开启跳转相应界面去开启、...
  • Android_Cll
  • Android_Cll
  • 2017年11月20日 14:55
  • 557

判断当前手机蓝牙是否开启

众所周知蓝牙是我们手机都有的一个功能 可以利用代码来实现管理蓝牙的状态...
  • Android_Sunshine_Sun
  • Android_Sunshine_Sun
  • 2017年08月08日 21:11
  • 280

Linux下判断cpu物理个数,几核,是超线程还是多核心

目前intel新的多核心cpu都会在后面显示具体的型号数字,例如: model name : Intel(R) Xeon(R) CPU           X3230   @ 2.66GHz   ...
  • maijian
  • maijian
  • 2014年05月12日 10:06
  • 848
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在 Linux 下判断系统当前是否开启了超线程
举报原因:
原因补充:

(最多只允许输入30个字)