Linux系统下如何查看物理CPU个数和核数?常用命令解析

落晨小哥_5941

落晨小哥_5941

2026-04-15

283人浏览

原创

cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l 统计去重后的 physical id 数量,即物理cpu颗数;但虚拟化环境或旧内核下可能失效,推荐用 lscpu | grep "cpu socket(s):" 获取准确值。

linux系统下如何查看物理cpu个数和核数?常用命令解析

cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l 查物理CPU个数

这个命令本质是统计去重后的 physical id 值数量。每个物理插槽(socket)对应一个 physical id,所以结果就是物理CPU颗数。

常见错误:漏掉 sort -u,直接 wc -l 会把所有行都算进去,得到的是逻辑CPU数而非物理颗数。

注意点:

  • physical id 字段在某些虚拟化环境(如 VMware、KVM)中可能恒为 0,此时该命令返回 1,不代表真只有一颗物理 CPU —— 需结合 lscpuCPU socket(s): 行交叉验证
  • 部分 ARM 服务器或旧内核可能不暴露 physical id,这时该命令输出为空或报错,应切换到 lscpu

lscpu | grep "CPU socket(s):""Core(s) per socket:" 直接读取关键字段

lscpu 是最稳的方案,它从内核缓存和 sysfs 统一聚合数据,不依赖 /proc/cpuinfo 的文本解析逻辑,兼容性好、语义清晰。

输出示例:

CPU socket(s):        2
Core(s) per socket:   12
Thread(s) per core:   2

这意味着:2 颗物理 CPU × 每颗 12 核 × 每核 2 线程 = 48 个逻辑 CPU。

Linux Journey
Linux Journey

当用户想学习Linux基础、命令行、文件系统等时,在LabEx查找并推荐免费的Linux Journey课程。

下载

关键提醒:

  • Core(s) per socket: 是每颗物理 CPU 的**物理核心数**,不是超线程后的逻辑核心;它和 /proc/cpuinfo 中的 cpu cores 字段等价,但更可靠
  • 如果 Thread(s) per core: 是 2,且 Core(s) per socket: × CPU socket(s):CPU(s):(总逻辑数),说明启用了超线程
  • 在容器或轻量级虚拟机中,lscpu 显示的 socket 数可能被限制(如只暴露 1 个),需确认是否受 cgroups 或 CPU pinning 影响

为什么不用 nprocgetconf _NPROCESSORS_ONLN 查物理核数?

nproc 只返回当前进程可见的在线逻辑 CPU 数(即 CPU(s): 值),它不区分物理/逻辑、socket/cores,也不体现拓扑结构。

典型误用场景:

  • 执行 nproc 得到 48,就认为有 48 核物理 CPU —— 实际可能是 2×12×2,物理核心只有 24 个
  • 在绑核(taskset)或 NUMA 调优时,仅靠 nproc 无法知道 socket 分布,容易跨 NUMA 访存导致性能下降
  • getconf _NPROCESSORS_ONLN 行为与 nproc 几乎一致,同样只反映在线逻辑数,无物理拓扑信息

查完之后容易忽略的三个细节

物理 CPU 数 ≠ 可用计算资源数。真正影响性能的是拓扑感知调度能力,而不仅是数字本身。

务必确认:

  • 是否启用超线程:对比 lscpuCore(s) per socket: × CPU socket(s):CPU(s): 是否相等;不等则存在 SMT,高负载下需评估是否关闭
  • CPU 是否在线:有些 BIOS 会 disable 部分 socket,lscpuCPU(s): 是“在线逻辑数”,而 lscpu -a 才显示全部(含 offline),避免误判硬件故障
  • NUMA 节点分布:用 numactl --hardware 查看每个 socket 对应的内存节点,单 socket 上跑跨 NUMA 进程会显著拖慢访存速度

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux linux系统

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

2023.09.04

1098

7

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

2023.08.10

3418

6

Java 并发编程高级实践
Java 并发编程高级实践

本专题深入讲解 Java 在高并发开发中的核心技术,涵盖线程模型、Thread 与 Runnable、Lock 与 synchronized、原子类、并发容器、线程池(Executor 框架)、阻塞队列、并发工具类(CountDownLatch、Semaphore)、以及高并发系统设计中的关键策略。通过实战案例帮助学习者全面掌握构建高性能并发应用的工程能力。

2025.12.01

503

16

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3590

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3133

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2173

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5170

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4842

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2913

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习