如何查看linux系统核数
如何查看linux系统核数详细介绍
在 Linux 系统中,可以通过以下几种常用方法查看 CPU 核数(包括逻辑核心和物理核心):
方法一:通过 /proc/cpuinfo 文件
/proc/cpuinfo 存储了 CPU 的详细信息,可通过以下命令筛选关键信息:
1.
查看逻辑核心数(总线程数,含超线程)
逻辑核心数等于 processor 字段的数量(从 0 开始计数):
bash
grep -c '^processor' /proc/cpuinfo
输出示例(假设输出为 8,表示 8 个逻辑核心):
plaintext
8
2.
查看物理核心数(不包含超线程)
物理核心数 = cpu cores × sockets(单插槽时 sockets=1):
bash
# 单个插槽的物理核心数(不考虑超线程)grep 'cpu cores' /proc/cpuinfo | uniq | awk '{print $4}'
# 总物理核心数(多插槽时需乘以 sockets 数量)
physical_cores=$(grep 'cpu cores' /proc/cpuinfo | uniq | awk '{print $4}')
sockets=$(grep 'sockets' /proc/cpuinfo | uniq | awk '{print $2}')
echo $((physical_cores * sockets))
输出示例(假设 cpu cores=4,sockets=1,则物理核心数为 4):
plaintext
4
方法二:使用 lscpu 命令(推荐,简洁直观)
lscpu 直接显示 CPU 架构信息,包含核心数、线程数等:
bash
lscpu
关键字段解释:
- CPU(s):总逻辑核心数(含超线程,等于
processor数量)。 - Core(s) per socket:单个插槽的物理核心数(不包含超线程)。
- Socket(s):CPU 插槽数(单 CPU 时为
1,多 CPU 服务器可能大于1)。 - Thread(s) per core:每个物理核心的线程数(超线程开启时为
2,否则为1)。
示例输出:
plaintext
Architecture: x86_64CPU(s): 8 # 总逻辑核心数
Core(s) per socket: 4 # 单插槽物理核心数
Socket(s): 1 # 插槽数
Thread(s) per core: 2 # 超线程数
- 总逻辑核心数:
CPU(s)的值(本例为 8)。 - 总物理核心数:
Core(s) per socket × Socket(s)(本例为 4×1=4)。
方法三:使用 nproc 命令(快速获取核心数)
nproc 用于获取当前可用的 CPU 核心数,支持区分逻辑 / 物理核心:
1.
逻辑核心数(默认)
bash
nproc
2.
物理核心数(忽略超线程)
bash
nproc --physical
示例输出(假设物理核心数为 4,逻辑核心数为 8):
plaintext
8 # 逻辑核心数4 # 物理核心数
总结
- 逻辑核心数(含超线程):
使用grep -c '^processor' /proc/cpuinfo或lscpu | grep 'CPU(s)'或nproc。 - 物理核心数(不含超线程):
使用lscpu计算Core(s) per socket × Socket(s),或nproc --physical(需系统支持)。
根据需求选择合适的方法,lscpu 是最直观的方式,适合新手快速查看所有相关信息。