在 Linux 系统中,获取 CPU 信息(cpuinfo)有多种方式,下面按常用程度和适用场景为你总结。
/proc/cpuinfocat /proc/cpuinfo
processor:逻辑 CPU 编号physical id:物理 CPU 编号core id:核心编号cpu cores:每个物理 CPU 的核心数siblings:每个物理 CPU 的逻辑 CPU 数model name:CPU 型号flags:CPU 特性标志# 逻辑 CPU 数量
grep -c processor /proc/cpuinfo
# 物理 CPU 数量
grep 'physical id' /proc/cpuinfo | sort -u | wc -l
# 每颗 CPU 核心数
grep 'cpu cores' /proc/cpuinfo | uniq
lscpu(推荐,信息更清晰)lscpu
输出示例:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 8
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
Model name: Intel(R) Core(TM) i7-8550U
lscpu -J
nprocnproc
只显示逻辑 CPU 数量
dmidecode(查看物理 CPU 信息)需要 root 权限:
sudo dmidecode -t processor
适合查看:
top / htop 实时查看top
# 或
htop
可查看:
import os
print(os.cpu_count())
#include <unistd.h>
#include <stdio.h>
int main() {
printf("CPU count: %ld\n", sysconf(_SC_NPROCESSORS_ONLN));
return 0;
}
| 方法 | 用途 | 是否需 root |
|---|---|---|
/proc/cpuinfo |
原始信息 | 否 |
lscpu |
结构化信息 | 否 |
nproc |
CPU 数量 | 否 |
dmidecode |
物理硬件 | 是 |
top/htop |
实时负载 | 否 |
如果你有具体需求(例如:只查核心数、判断是否支持虚拟化、容器环境、ARM 架构等),可以告诉我,我可以给你更精确的命令。