Linux 下查看CPU核数的方法

1. 查看 CPU 信息

要查看 Linux 系统下的 CPU 核数,我们首先需要了解如何查看 CPU 信息。在 Linux 中,我们可以使用 lscpu 命令来查询 CPU 的相关信息。

# 执行 lscpu 命令

lscpu

执行 lscpu 命令后,系统会返回关于 CPU 的详细信息,包括 CPU 核心数、线程数、型号、频率等。下面是一个示例输出:

Architecture:        x86_64

CPU op-mode(s): 32-bit, 64-bit

Byte Order: Little Endian

CPU(s): 8

On-line CPU(s) list: 0-7

Thread(s) per core: 2

Core(s) per socket: 4

Socket(s): 1

Vendor ID: GenuineIntel

CPU family: 6

Model: 142

Model name: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz

Stepping: 9

CPU MHz: 896.003

CPU max MHz: 3800.0000

CPU min MHz: 800.0000

BogoMIPS: 5587.20

Virtualization: VT-x

L1d cache: 32K

L1i cache: 32K

L2 cache: 256K

L3 cache: 6144K

从上面的示例输出中,我们可以得知该系统的 CPU 核心数是 8。

2. 解析 lscpu 输出

上述示例中的输出信息中有一些字段是我们需要关注的:

Vendor ID

Vendor ID 字段表示 CPU 的制造商。在上面示例中,CPU 的制造商是 GenuineIntel,即英特尔。

CPU(s)

CPU(s) 字段表示物理 CPU 的数量。在上面示例中,物理 CPU 的数量是 8。

Core(s) per socket

Core(s) per socket 字段表示每个 CPU 插槽中的核心数量。在上面示例中,每个 CPU 插槽有 4 个核心。

Thread(s) per core

Thread(s) per core 字段表示每个物理核心支持的线程数。在上面示例中,每个物理核心支持 2 个线程。

通过上述字段的解析,我们可以得知一个 CPU 插槽中的核心数量,然后将其乘以物理 CPU 的数量,就能得到总核心数。

3. 查看 CPU 核数

有了前面的基础,我们可以通过解析 lscpu 命令的输出来计算 CPU 核数。以下是一个 Shell 脚本示例,用于获取 CPU 核数。

#!/bin/bash

# 执行 lscpu 命令,并将输出保存到变量 cpu_info 中

cpu_info=$(lscpu)

# 通过解析 cpu_info,计算 CPU 核数

core_per_socket=$(grep 'Core(s) per socket' <<< "$cpu_info" | awk '{print $NF}')

socket_count=$(grep 'Socket(s)' <<< "$cpu_info" | awk '{print $NF}')

cpu_cores=$((core_per_socket * socket_count))

echo "CPU Cores: $cpu_cores"

在上述示例中,我们首先使用 lscpu 命令获取 CPU 信息,并将其保存到变量 cpu_info 中。然后,我们使用 grepawk 命令从 cpu_info 中提取所需的字段,并进行计算,最终输出 CPU 核数。

通过运行以上脚本,我们将得到机器的 CPU 核数。

4. 使用 /proc/cpuinfo 文件查看

除了使用 lscpu 命令外,我们还可以通过读取 /proc/cpuinfo 文件来查看 CPU 信息。该文件包含了关于 CPU 的详细信息,包括型号、频率、核心数等。

# 使用 cat 命令打印 /proc/cpuinfo 文件内容

cat /proc/cpuinfo

执行上述命令后,系统会打印 /proc/cpuinfo 文件的内容,其中包含了较多的信息。为了查看 CPU 核数,我们可以使用 grep 命令来过滤只关注的字段。

# 使用 grep 命令过滤 CPU 核数字段

grep 'cpu cores' /proc/cpuinfo

上述命令将返回类似以下输出:

cpu cores       : 4

cpu cores : 4

从上面的输出中,我们可以看到系统中有两个 CPU,每个 CPU 有 4 个核心。

注意:

在某些系统上,/proc/cpuinfo 文件可能会有多个 CPU 的信息重复出现。如果只想计算总核数,可以使用以下命令:

grep -c 'processor' /proc/cpuinfo

该命令将返回 CPU 的数量,其中每个 CPU 只会计数一次。

5. 小结

本文介绍了在 Linux 系统下查看 CPU 核数的方法。我们可以使用 lscpu 命令来查询 CPU 的相关信息,从中获取到核心数以及其他的 CPU 信息。另外,我们还可以读取 /proc/cpuinfo 文件来查看 CPU 的详细信息。

对于需要通过脚本自动获取 CPU 核数的场景,我们可以借助解析命令输出的方式来计算。通过将脚本与 lscpu 命令或读取 /proc/cpuinfo 文件的方式结合使用,我们可以方便地获取 CPU 核数信息。

操作系统标签