易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 4400|回复: 0
收起左侧

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

[复制链接]
发表于 2020-1-10 15:57:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
在判断当前是否开启了超线程之前,需要先判断另外几个数据:% z8 |% `. U( a0 o8 t, t
1,物理CPU个数:
[backcolor=rgb(255, 255, 255) !important][size=0.9em]
1

1 i: n% a1 A. D
2
' f- f8 r! X8 _& D0 c$ O3 z8 W
3
4 h: }& T! y  j0 Z& y% w% r
[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq
- a7 ]- @3 l' _
physical id : 0
: P; \1 C- b7 q0 @- h. G% C
physical id : 1
8 g, {7 `7 y/ j

4 H, z. s( X* J+ S0 n& }

" u! `; w! M+ Q% y9 \; }8 ~
2 Q6 P" @+ ^0 Q; o
可以看到物理CPU个数为2,物理CPU也就是机器外面就能看到的一个个CPU,每个物理CPU还带有单独的风扇。+ X. a0 R- W8 f
2,每个物理CPU的逻辑核数:
[backcolor=rgb(255, 255, 255) !important][size=0.9em]
1

  C/ a/ q' l5 ]. l' ]
2

! y1 h6 Z: R+ Q" G% k
[root@localhost ~]# cat /proc/cpuinfo | grep "cores" | uniq
5 R; b" O$ c0 P$ u! w  t5 Z3 a; O
cpu cores   : 6
" v  S1 u4 V" {- u  q, _

! [8 B6 t9 l# `5 F

1 j0 y/ I  V0 H4 G# K7 U- {9 G# \, q7 }9 B
3,系统整个cpu线程数:
[backcolor=rgb(255, 255, 255) !important][size=0.9em]
1
+ I, O3 Y3 y: u5 @3 e
2

* V8 l  c( J7 Y4 ?0 x) z
[root@localhost ~]# cat /proc/cpuinfo | grep "processor" | wc -l
0 L( u% H2 Q4 ^6 s" R
24
( v2 M% k; {4 T& @& n- `
7 O! d% O, A( q( M6 H

! J6 c# q, M9 W4 k" X& N+ M, H% @5 x4 a5 z
有了三面几个数据,就可以判断当前是否开启了超线程了,没开启超线程的情况下,系统的cpu线程数=物理CPU个数*每个物理CPU的逻辑核数*1,因为每个逻辑核只跑了1个cpu线程,如果开启了超线程,那么cpu线程数=物理CPU个数*每个物理CPU的逻辑核数*N,因为每个逻辑核跑了2个cpu线程。所以,上面的24=2*6*2,可以判断当前开启了超线程。
[backcolor=rgb(255, 255, 255) !important][size=0.9em]
1

9 D9 M0 @- `  X5 i2 X3 E
2

$ l% w1 k5 l) U+ r( O( I4 L
3
! W8 i/ v" E# O" `$ z5 H3 l$ t
[root@localhost ~]# cat /proc/cpuinfo | grep "model name" | uniq

- s: L  n, e8 Z0 e
model name  : Intel(R) Xeon(R) CPU           X5670  @ 2.93GHz
: i5 t! @5 V" K$ W/ K6 _7 ]7 W5 i9 f
[root@localhost ~]#

7 K0 P6 {2 i) |2 k" d/ w6 X

! B4 [  \: b  [7 t7 J4 ^

7 q2 k7 j: @; l: h7 Z  ^- r6 ^* N8 \% O9 E  [: l7 P- ^
这是一台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。再看另外一个:
[backcolor=rgb(255, 255, 255) !important][size=0.9em]
1
: d0 z" J: [! Y; `
2

" X: r) m* t* n; @: S* s/ J& q
3
* H/ e$ Y: Z2 j  A+ a" ]
4
' v( a- K& T7 M% f
5

! t+ ]8 C+ |% J. w$ V
6

6 `3 X7 v0 F, \
7
9 d0 ]4 w# |4 l% Y  I
8
1 x0 F& A" E& {1 x7 P  e
9

: N0 a' s+ j- l6 ]
10

# D! @4 k) f* h* X1 e( o
[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq

/ }2 Z  E: Q  T. v( }! K; G2 y
physical id : 0

& A3 X! o& _: [  o& {
physical id : 1
# I) ?" R4 ?# d. \$ s9 {6 j
[root@localhost ~]# cat /proc/cpuinfo | grep "cores" | uniq

* ~* H9 g" @. J$ @/ K  n- y' ^
cpu cores   : 4

2 H5 |8 X: r1 D! }
[root@localhost ~]# cat /proc/cpuinfo | grep "processor" | wc -l

6 w! \" h% O2 B! g* U1 e4 Q1 W
8
9 n  W4 q; ^& H- D6 W5 }  p5 m) ^
[root@localhost ~]# cat /proc/cpuinfo | grep "model name" | uniq
& h; |* o1 I  r* ^
model name  : Intel(R) Xeon(R) CPU           E5504  @ 2.00GHz
: C% `' C" j4 x/ e) C, l
[root@localhost ~]#
: T$ f7 I! r1 Q/ w" P7 o# O* C& [
) N- u+ j* e# C8 m
1 ?# s+ ?# ~$ O7 J7 B

+ N- p: y# O# i; ~- O
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,想开启都没法。6 R6 @( J/ G/ v2 F
另外,根据physical id信息可以判断哪些逻辑核在同一个物理核上,因为同一物理核上的逻辑核的physical id相等;而根据core id信息又可以判断哪两个cpu线程跑在同一个逻辑核上,因为跑在同一逻辑核上的cpu线程的core id相等,但是,由于不同物理核上的逻辑核core id可以相等,所以在进行第二个判断(即哪两个cpu线程跑在同一个逻辑核上)前需要先进行第一个判断(即哪些逻辑核在同一个物理核上)。
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 21:38 , Processed in 0.044999 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表