服务器测评网
我们一直在努力

Linux如何查看CPU内核数及详细信息?

在Linux系统中,查看CPU内核信息是系统管理、性能优化和故障排查的常见操作,CPU内核数量直接影响系统的并行处理能力,而内核类型(如物理核心、逻辑核心)则关系到资源分配的合理性,以下将从基础命令到高级技巧,系统介绍如何全面获取CPU内核信息。

Linux如何查看CPU内核数及详细信息?

基础命令:快速查看核心数量

对于大多数场景,用户只需快速获取CPU的核心总数,以下两个命令最为常用:

nproc命令

nproc是GNU coreutils提供的专用工具,直接返回逻辑CPU核心数(即包括超线程后的虚拟核心),输出简洁高效:

nproc

在8核16线程的CPU上,执行结果为16,该命令适合脚本调用,无需额外解析。

/proc/cpuinfo文件

/proc/cpuinfo是Linux内核提供的虚拟文件,包含CPU的详细信息,通过统计processor字段的行数,可获取逻辑核心数:

cat /proc/cpuinfo | grep "processor" | wc -l

若需区分物理核心与逻辑核心,可结合physical id(物理CPU ID)和core id(物理核心ID)字段,统计物理核心数:

Linux如何查看CPU内核数及详细信息?

cat /proc/cpuinfo | grep "core id" | sort -u | wc -l

深入解析:lscpu命令的结构化输出

lscpu命令是util-linux包提供的工具,能以人类可读的格式展示CPU详细信息,涵盖架构、核心数、线程数等关键指标,执行lscpu后,输出通常包含以下字段:

字段名 说明
Architecture(s) CPU架构(如x86_64、aarch64)
CPU op-mode(s) 操作模式(如32-bit、64-bit)
Byte Order 字节序(如Little Endian)
CPU(s) 逻辑CPU总数(即线程数)
On-line CPU(s) list 在线CPU列表(如0-7,表示8个核心均在线)
Thread(s) per core 每个物理核心的线程数(超线程开启时为2,否则为1)
Core(s) per socket 每个物理CPU插槽的物理核心数
Socket(s) 物理CPU插槽数(多路服务器常见)
NUMA node(s) NUMA节点数(非统一内存访问架构相关)
Vendor ID CPU厂商(如GenuineIntel、AuthenticAMD)
CPU family CPU系列代号(如6代Intel Core为”6″)
Model CPU具体型号(如Intel Core i7-10700K的模型为”158″)
Model name CPU商用名称(如”Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz”)
Stepping CPU步进(硬件版本标识)
CPU MHz 当前运行频率(动态变频,可能低于标称频率)
CPU max MHz CPU最大支持频率
CPU min MHz CPU最小支持频率
BogoMIPS 内核启动时测得的伪性能指标(仅供参考,不直接代表性能)
Virtualization 虚拟化支持(如VT-x、AMD-V)
L1d cache 一级数据缓存大小(如32K)
L1i cache 一级指令缓存大小(如32K)
L2 cache 二级缓存大小(如256K)
L3 cache 三级缓存大小(如8192K,即8MB)
NUMA node0 CPU(s) NUMA节点0关联的CPU列表(多节点服务器中优化内存访问的关键)

通过lscpu的输出,可直接计算物理核心数:
物理核心数 = Core(s) per socket × Socket(s)
Core(s) per socket为8、Socket(s)为1,则物理核心数为8;若Thread(s) per core为2,则逻辑核心数为16。

特殊场景:查看CPU亲和性与核心状态

在服务器优化或实时任务调度中,可能需查看特定进程的CPU亲和性(绑定的核心)或核心的在线状态。

查看进程的CPU亲和性

通过taskset命令可获取或设置进程的CPU亲和性,查看PID为1234的进程绑定的核心:

taskset -p 1234

输出格式为pid 1234's current affinity mask: ff,其中ff为十六进制掩码,转换为二进制后每位对应一个逻辑核心(如ff=11111111,表示绑定0-7号核心)。

Linux如何查看CPU内核数及详细信息?

查看核心的在线状态

Linux支持动态关闭核心以节能,在线核心信息记录在/sys/devices/system/cpu/目录下,每个核心对应一个cpuX文件夹(X为核心编号),若cpuX/online文件存在且内容为1,则核心在线;为0则离线,检查0号核心状态:

cat /sys/devices/system/cpu/cpu0/online

若需关闭核心(需root权限),可执行:

echo 0 > /sys/devices/system/cpu/cpu1/online  # 关闭1号核心

Linux查看CPU内核信息的方法覆盖从快速统计到深度解析的全场景需求:日常使用中,nproclscpu能满足大多数需求;需精细化管理时,/proc/cpuinfo/sys/devices/system/cpu/提供原始数据;而进程调度优化则依赖taskset等工具,掌握这些方法,不仅能准确获取核心数量,更能深入理解CPU的拓扑结构与运行状态,为系统调优提供数据支撑。

赞(0)
未经允许不得转载:好主机测评网 » Linux如何查看CPU内核数及详细信息?