Linux 查看 CPU 物理/逻辑 核心数

一、基本概念

为了给电脑更高的性能,一台计算机可以包含多个物理 CPU,一个物理 CPU 中可以集成了多个内核,这样电脑的性能就能成倍的提升.随着科技的发展,我们发现每个内核的性能也是十分强大的,于是一个内核又被分成两个线程.但是,我们要注意的是,一个 CPU 分成多个内核,这是物理的分隔,拆开 CPU 是可以看到的;但是一个内核被分成两个线程是一种超线程技术,也就是串代码,操作系统会认为一个线程也是一个内核,这其实就有点欺骗操作系统的感觉了

二、计算公式

总核数 = 物理 CPU 个数 x 每个物理 CPU 的核数 
逻辑 CPU 个数 = 物理 CPU 个数 x 每个物理 CPU 的核数 x 超线程数

  

三、Linux 查询命令

# 查看物理 CPU 的个数(uniq:去重)
cat /proc/cpuinfo | grep "physical id" | sort | uniq

# 查询每个物理 CPU 的核心数
cat /proc/cpuinfo | grep "cpu cores" | sort | uniq

# 查看每个物理 CPU 核心上的逻辑处理个数
cat /proc/cpuinfo | grep 'siblings' | sort | uniq

# 查看逻辑 CPU 的个数
cat /proc/cpuinfo | grep "processor" | sort | uniq

  

四、验证

1、服务器一(4 核心 4 线程)

物理 CPU 个数: 2

每个物理 CPU 上核心数: 2

每个物理 CPU 封装的处理器数量: 2 (每个 CPU 上的处理器数量 = 每个 CPU 上的核心数,代表未开超线程)

逻辑 CPU 的个数: 4

 

2、服务器二(16 核心 32 线程)

物理 CPU 个数: 2

每个物理 CPU 上核心数: 8

每个物理 CPU 封装的处理器数量: 16 (每个 CPU 上的处理器数量是每个 CPU 上的核心数倍数,代表开了超线程)

逻辑 CPU 的个数: 32

 

 

原文地址:https://www.cnblogs.com/xiaomaomao/p/15712450.html