转自 http://smilejay.com/2017/12/cpu-cache-topology/

Linux上,CPU和Cache相关的拓扑结构,都可以从sysfs文件系统的目录 /sys/devices/system/cpu/ 来获取详细信息。
在网上,找了对CPU相关拓扑结构的解析的两个脚本,觉得还不错;尽管看起来仍有些粗糙,也暂时去改进了。

一个是来自:https://gist.github.com/stedolan/1089968 ; 它可以打印出每个逻辑CPU属于那儿Socket、哪个core,以及与哪些CPU共享L1/L2/L3的Cache。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
 
{
null
}
 
do
then
fi
then
fi
do
then
fi
done
echo
done

 

另一个时候cpu_layout.py脚本,来自dpdk项目,用于展示CPU的拓扑结构(不包括cache的信息):http://dpdk.org/browse/dpdk/tree/usertools/cpu_layout.py

 

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env python
 
#
#   BSD LICENSE  (此处省略过多的License信息)
 
print_function
sys
:
# Python 2
:
# Python 3
 
]
]
}
)
)
)
:
:
)
:
continue
:
break
)
)
)
)
)
:
)
:
)
)
:
]
)
 
)
)
)
)
)
)
 
)
)
\
\
)
)
 
)
:
)
)
 
)
:
)
)
 
:
)
:
:
)
:
)
)

 

当NUMA架构下,你可能还需要了解NUMA的分布,包括每个节点上有哪些逻辑处理器、有多少内存等信息,那么使用numactl工具来查看(在CentOS上可以用yum install numactl命令来安装该工具)。

 

 
1
2
3
4
5
6
7
8
9
10
11
12
hardware
)
23
MB
MB
31
MB
MB
:
1
20
10

 

另外,lscpu 命令也是可以查看很多CPU的信息(包括:架构、逻辑CPU数量、核数、主频、Cache大小、NUMA信息等),该命令在CentOS上是在 util-linux 软件包中。

相关文章:

  • 2021-12-02
  • 2021-11-17
  • 2021-11-10
  • 2022-12-23
  • 2021-08-06
  • 2021-12-30
猜你喜欢
  • 2022-01-24
  • 2021-04-12
  • 2021-09-03
  • 2021-05-13
  • 2021-12-03
  • 2021-05-11
  • 2021-06-10
相关资源
相似解决方案