Linux环境CPU个数、核数、线程数概念
相关概念
- 物理CPU总核数 = 逻辑CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数(没有超线程时)。
- 逻辑CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数(有超线程时)。
- 物理CPU个数:就是服务器主板插了几个物理CPU。
- 物理CPU核数:每个CPU的核数都是固定的,比如你的计算机有两个物理CPU,每个CPU是双核,那么计算机就是四核的。
- 超线程数:
- 超线程技术出现之前,物理CPU核数与线程数是1:1对应的,一个四核CPU拥有四个线程,总的逻辑CPU核心数就等于1*4=4;
- Intel引入超线程技术后,物理CPU核数和线程数就是1:x的关系,一个四核CPU拥有八个线程(就是1:2),总的逻辑CPU核心数就等于1*4*2=8。
相关命令
[root@test ~]# lscpu
Architecture: x86_64 # CPU架构
CPU(s): 48 # 逻辑CPU个数
On-line CPU(s) list: 0-47 # 在线的CPU数量,有时为了省电或者CPU过热,某些CPU会停止运行
Thread(s) per core: 2 # 每个核心的线程数是2
Core(s) per socket: 12 # 每颗CPU的核数是12
# PS:共2颗CPU,单颗CPU是12核,每个核的线程数是2,那总的逻辑CPU核数就是48=2*12*2
# 查看物理CPU的个数。
[root@test ~]# grep "physical id" /proc/cpuinfo | sort -u | wc -l
2
# 查看每个CPU的核数
[root@test ~]# grep "cpu cores" /proc/cpuinfo | sort -u
cpu cores : 12
# 查看逻辑CPU总核数。
[root@test ~]# grep "processor" /proc/cpuinfo | sort -u | wc -l
48
# 查看CPU的型号
[root@test ~]# grep "name" /proc/cpuinfo | cut -f2 -d: | uniq -c
48 Intel(R) Xeon(R) Silver 4214 CPU @ 2.20GHz
# 查看CPU运行模式。
[root@test ~]# getconf LONG_BIT
64
# 查看CPU是否支持64-bit
[root@test ~]# grep "flags" /proc/cpuinfo | grep "lm" | wc -l # 结果大于0就代表支持64-bit
写作不易,转载请注明出处,谢谢~~