如何查询 Linux 中 CPU 的数量?这几个命令要知道!

B站影视 电影资讯 2025-03-17 21:22 2

摘要:在深入命令之前,先聊聊为什么要关心 Cpu 数量。想象一下,你是个系统管理员,手底下管着几十台服务器,突然有台机器跑任务慢得像乌龟,你得搞清楚是不是 CPU 不够用。或者你是程序员,想写个多线程程序,得知道能开多少线程才不会把系统榨干。又或者你只是个好奇的 L

在深入命令之前,先聊聊为什么要关心 Cpu 数量。想象一下,你是个系统管理员,手底下管着几十台服务器,突然有台机器跑任务慢得像乌龟,你得搞清楚是不是 CPU 不够用。或者你是程序员,想写个多线程程序,得知道能开多少线程才不会把系统榨干。又或者你只是个好奇的 Linux 小白,想摸清自己电脑的“底细”。不管哪种情况,了解 CPU 数量都是第一步,它能帮你优化资源、排查问题,甚至还能满足你的好奇心。

在 Linux 中,CPU 数量其实分了好几个层面:物理 CPU(也就是插在主板上的芯片)、每个 CPU 的核心数(Core),还有逻辑 CPU(考虑超线程后的总数)。这篇文章会带你用各种命令把这些信息挖出来,绝不含糊!

在动手敲命令之前,咱们得弄清楚几个术语,不然看到一堆数字可能会晕:

物理 CPU:这是硬件层面,指主板上插了几块 CPU 芯片。家用电脑通常就一块,但服务器可能有好几块。核心数(Cores):每个物理 CPU 里有多少个“计算单元”。一个核心就能独立跑任务,多核心就像多条生产线。线程数(Threads):有些 CPU 支持超线程技术(比如 Intel 的 Hyper-Threading),一个核心能模拟成两个“逻辑核心”,也就是线程。线程数往往是核心数的两倍(如果开了超线程)。逻辑 CPU:这是操作系统能看到的“总 CPU 数量”,等于物理 CPU 数 × 核心数 × 每核心线程数。

举个例子:一台机器有 2 个物理 CPU,每个 CPU 有 4 个核心,开了超线程(每核心 2 线程),那逻辑 CPU 数量就是 2 × 4 × 2 = 16 个。明白了这层关系,后面看命令输出就不会懵了。

好了,铺垫够了,接下来是重头戏!我会介绍 7 个常用的命令,从简单到复杂,带你把 CPU 信息翻个底朝天。每个命令我都会讲用法、输出啥、怎么解读,还会加点小技巧,让你用起来得心应手。

先从最方便的开始。lscpu 是查询 CPU 信息的“瑞士军刀”,简单一敲,就能把 CPU 的全貌展示出来。咱们直接上终端试试:

lscpu

输出可能长这样:

别被一堆信息吓到,咱们挑重点看:

这个命令的好处是信息全,一目了然,连 CPU 型号、频率、缓存大小都给你列出来了。平时查 CPU 数量,我最爱用这个,省心又高效。

小贴士:想只看某项信息?可以用 grep 过滤,比如 lscpu | grep "CPU(s)"

如果你只关心逻辑 CPU 数量,不想看那么多细节,nproc 是你的好帮手。它简单粗暴,直接扔给你一个数字:

nproc

输出:

就这么一行,告诉我这台机器有 16 个逻辑 CPU。干净利落,适合懒人或者写脚本的时候用。比如你想在脚本里动态调整线程数,直接用 nproc 取值就行:

THREADS=$(nproc) echo "开 $THREADS 个线程跑任务吧!"

top 是 Linux 用户的老朋友,主要用来实时监控系统资源,但它也能帮你查 CPU 数量。敲下命令:

top

界面会显示一堆进程信息,顶部是 CPU 使用率概览,默认是总的百分比。但咱们要看每个 CPU 的情况,按下键盘上的 1 键,界面会切换成这样:

%Cpu0%Cpu15,一共 16 行,说明有 16 个逻辑 CPU。每一行后面是使用率(us 是用户态,sy 是系统态,id 是空闲),你还能顺便看看每个 CPU 忙不忙。

优点:动态查看,能同时监控负载。 缺点:得手动按 1,信息没 lscpu 那么全。

htoptop 的升级版,界面更友好,默认就能直观显示 CPU 数量。运行:

htop

顶部会有一堆小横条,每个条代表一个逻辑 CPU。我这台机器显示 8 个条,颜色表示使用情况(绿色是用户态,蓝色是系统态,红色是中断)。比 top 美观多了吧?

如果没装 htop,可以用包管理器装一下,比如 Ubuntu 上跑 sudo apt install htop

小技巧:按 F2 进入设置,可以调整显示方式,比如只看核心数,隐藏线程信息。

想挖得更深?那得试试 /proc/cpuinfo,这是 Linux 提供的一个虚拟文件,里面藏着 CPU 的全部秘密。直接敲:

cat /proc/cpuinfo

输出会很长,每段是一个逻辑 CPU 的信息,比如:

一直到 processor : 15,一共 16 段,说明有 16 个逻辑 CPU。重点字段:

physical id:物理 CPU 的编号,全是 0 说明只有 1 个物理 CPU。cpu Cores:8,每个物理 CPU 有 8 个核心。siblings:16,每个物理 CPU 的逻辑线程数。

这个命令信息量大,适合喜欢刨根问底的人。不过输出太长,手动数有点累,下面有个偷懒的方法。

6.grep -c ^processor /proc/cpuinfo:快速计数

cat /proc/cpuinfo 太啰嗦?用 grep 配合它,能一秒告诉你逻辑 CPU 数量:

grep -c ^processor /proc/cpuinfo

输出:

最后一个命令稍微硬核点,dmidecode 可以直接读取硬件信息,但需要 root 权限。跑一下:

sudo dmidecode -t processor

输出很详细,比如:

重点看:

Core Count:8,物理核心数。Thread Count:16,逻辑线程数。

这个命令直接从 BIOS 拿数据,比前面几个更贴近硬件,但需要 sudo,而且输出偏底层,适合服务器管理员。

来源:wljslmz

相关推荐