最近入手了一台国外的VPS,双核2G内存的,CPU也很强,性价比相当不错,到手之后第一时间想检查一下是否存在“虚标”,把相关命令整理了一下,非常好用!
在 Linux 中,CPU 的型号、物理 CPU 数量、核心数、线程数等信息都可以从 /proc/cpuinfo 获取。下面整理了一些最常用的命令。
一、查看 CPU 型号
cat /proc/cpuinfo | grep "name" | cut -d: -f2 | uniq -c
示例输出
4 Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
表示:
-
CPU 型号:Intel Xeon E5-2680 v4
-
共检测到 4 个逻辑 CPU(线程)
二、查看物理 CPU(CPU 插槽)数量
方法一:
grep "physical id" /proc/cpuinfo | sort -u | wc -l
方法二:
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
示例输出
2
表示服务器安装了 2 颗 CPU。
三、查看每颗 CPU 的核心数量
grep "cpu cores" /proc/cpuinfo | uniq
或
cat /proc/cpuinfo | grep "cpu cores" | uniq
示例输出
cpu cores : 8
表示每颗 CPU 有 8 个物理核心。
注意:
很多人使用下面这条命令:
grep "core id" /proc/cpuinfo | sort -u | wc -l它统计的是 Core ID 数量,在多路服务器(如双路、四路)中不能代表整机总核心数,因此不建议作为总核心数统计方法。
四、查看逻辑 CPU(线程)数量
方法一:
grep "processor" /proc/cpuinfo | sort -u | wc -l
方法二:
cat /proc/cpuinfo | grep "processor" | wc -l
示例输出
16
表示系统共有 16 个逻辑 CPU(线程)。
如果开启了 Intel Hyper-Threading(超线程)或 AMD SMT,那么:
线程数 = 物理 CPU 数 × 每颗 CPU 核心数 × 每核心线程数
例如:
2 颗 CPU
每颗 8 核
每核 2 线程
总线程数 = 2 × 8 × 2 = 32
CPU 参数之间的关系
假设一台服务器配置如下:
-
物理 CPU:2 颗
-
每颗 CPU:8 核
-
每核心:2 线程(开启超线程)
那么:
| 参数 | 数值 |
|---|---|
| 物理 CPU 数 | 2 |
| 每颗 CPU 核心数 | 8 |
| 总物理核心数 | 16 |
| 总逻辑 CPU(线程)数 | 32 |
一条命令查看 CPU 详细信息(推荐)
安装:
# Debian / Ubuntu
sudo apt install lscpu
# CentOS / Rocky / AlmaLinux
sudo yum install util-linux
查看:
lscpu
示例输出:
Architecture: x86_64
CPU(s): 16
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 1
Model name: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
其中:
-
Model name:CPU 型号
-
CPU(s):逻辑 CPU(线程)总数
-
Thread(s) per core:每核心线程数
-
Core(s) per socket:每颗 CPU 的核心数
-
Socket(s):物理 CPU 数量
相比直接解析 /proc/cpuinfo,lscpu 的输出更直观,也更推荐在日常运维中使用。