易陆发现互联网技术论坛

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

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

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

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

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

x
在判断当前是否开启了超线程之前,需要先判断另外几个数据:$ `' I5 S; ^) m0 [6 {
1,物理CPU个数:
[backcolor=rgb(255, 255, 255) !important][size=0.9em]
1

! D6 A% g% s' l8 _. }; v! q: {! b( }
2
* l* U9 W5 x% S8 F* }- s
3

' h: h; Y) o% \% b) w- C3 `* [" }4 k( N
[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq

- I. v+ D% x8 m; J
physical id : 0
$ u7 a& a0 @( T/ ?3 O6 A) H9 Z
physical id : 1
. b  G% z% ^( _1 u2 t# f+ D. N
8 n( t) _3 Y8 R7 m
$ m; d) {2 w0 [: C  d

: M" X' e/ I1 t. p3 }/ s& c
可以看到物理CPU个数为2,物理CPU也就是机器外面就能看到的一个个CPU,每个物理CPU还带有单独的风扇。
7 _2 ~3 U6 ^# g0 r) x. m, b2,每个物理CPU的逻辑核数:
[backcolor=rgb(255, 255, 255) !important][size=0.9em]
1

( X8 |( b8 y) y; B8 w8 F
2

$ M2 e/ |' O4 a( C2 P, Q" K* Z
[root@localhost ~]# cat /proc/cpuinfo | grep "cores" | uniq

. Y  Z$ H1 \3 p9 U& L
cpu cores   : 6
( T. J) |, J# ]. }
- l5 S% Q) U9 M# b3 [& D
) H* l* r* y) R. `* W4 Z
" \; X9 B/ B6 I! b
3,系统整个cpu线程数:
[backcolor=rgb(255, 255, 255) !important][size=0.9em]
1
1 o% t1 Q- A2 w/ q' f1 h" {7 D( B
2
3 G  j& J; _- ?% F& A
[root@localhost ~]# cat /proc/cpuinfo | grep "processor" | wc -l
4 x1 o& M* {9 d4 N8 \+ }# R$ L/ L
24
. \. f* E" _0 a: F
9 X+ }, Z. O) N# F
7 O1 w0 j( I6 _( S: R

6 C  |  `  w8 @$ G) D: Y
有了三面几个数据,就可以判断当前是否开启了超线程了,没开启超线程的情况下,系统的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

2 a1 _* V. ~8 c/ w
2

% H' R/ {3 ]1 N
3

; J# G; r# O8 {/ ^; T  p" i$ A2 i
[root@localhost ~]# cat /proc/cpuinfo | grep "model name" | uniq

; ~; J9 z' g! a8 V, N( c6 j
model name  : Intel(R) Xeon(R) CPU           X5670  @ 2.93GHz

5 V4 i$ p9 ^  x/ N# I" T. x; `
[root@localhost ~]#

% n4 G7 q' E) H6 O$ r( {
- N! N$ p# p! U. ^8 S

9 K6 y3 z: S5 L9 M9 N, ~$ ~* H) p+ _6 z$ p1 Q8 Z8 j
这是一台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
) k4 y2 J. t& X8 @7 P$ Q- O5 g! M
2
0 L& i5 b. T) x
3
9 B/ ~  W, J0 H- ?# q  d
4
3 j+ O$ |5 n1 W4 A
5
3 l  W+ u- c+ t  a
6
: o# |9 r' }6 k" E
7
; Q3 j8 y) L1 A* k* j' g7 a8 q
8

0 E, _( U% K) S+ H# G) R  i
9
& S3 l- X6 X- c3 Q; d! m
10

& Q7 {0 q' d  ^
[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq

/ |( ]5 g3 c# Z; M
physical id : 0
/ R$ K2 E- p" q0 ~8 S' \$ L6 |
physical id : 1

" {0 S& K  q+ B) A( X
[root@localhost ~]# cat /proc/cpuinfo | grep "cores" | uniq

6 D+ k& u& W. i+ v
cpu cores   : 4

2 p' x$ a1 v3 |. O: }
[root@localhost ~]# cat /proc/cpuinfo | grep "processor" | wc -l
7 g) V1 P  h7 o
8
( f6 c, O) [9 U( |4 p
[root@localhost ~]# cat /proc/cpuinfo | grep "model name" | uniq
# L0 e& W" n( y3 W# ^2 U
model name  : Intel(R) Xeon(R) CPU           E5504  @ 2.00GHz
! i* C. J9 V9 I# r2 q8 S9 A8 S
[root@localhost ~]#
& Q3 H. }8 e  X1 |  b
0 |+ u* `" W0 t8 v6 \' C- T1 R
& N7 h7 k5 ?: {, ^' s/ |
0 b4 y& N8 }# Q3 c4 f
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,想开启都没法。/ D# \/ l1 r1 Y* w
另外,根据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:40 , Processed in 0.048272 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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