AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1691479
Accepted
eddyP23
eddyP23
Asked: 2021-12-07 00:58:52 +0800 CST2021-12-07 00:58:52 +0800 CST 2021-12-07 00:58:52 +0800 CST

我的机器有多少个物理 CPU?

  • 772

我对我的服务器拥有的 CPU 数量有点困惑。

它正在运行Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz,根据英特尔官方文档,它包含 20 个物理内核。

这里的问题是lscpu命令的输出(过滤了一些行):

CPU(s):                          80
On-line CPU(s) list:             0-79
Thread(s) per core:              2
Core(s) per socket:              20
Socket(s):                       2
NUMA node(s):                    2
Model name:                      Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz
NUMA node0 CPU(s):               0-19,40-59
NUMA node1 CPU(s):               20-39,60-79

据我了解actual physical cores = CPU(s) / thread(s) per core,但后来我得到了 40,这是我预期的两倍。

有人可以解释一下这里发生了什么以及究竟是什么CPU(s), thread(s) per core, core(s) per socket, socet(s)意思吗?

cpu core
  • 6 6 个回答
  • 8889 Views

6 个回答

  • Voted
  1. Best Answer
    mtak
    2021-12-07T01:27:47+08:002021-12-07T01:27:47+08:00
    • Sockets表示系统中有多少物理 CPU。

    • Cores per socket是每个物理 CPU 有多少完整的 CPU 内核(包括加载/解码逻辑)。

    • Threads per core是可以在单个内核上调度多少个线程(超线程)。简单地说,在实际执行代码之前使用的 CPU 中的硬件增加了一倍,允许 CPU 准备好执行多个不同的任务。它允许 CPU 在指令到达 CPU 的执行核心之前获取/解码指令。它可以防止或减少管道停顿。

    • CPU表示“可调度实体”,这是操作系统将有多少个运行队列,所以这将是sockets x cores per socket x threads per core

    在您的情况下,您有 2 个物理 CPU,每个 CPU 有 20 个内核,每个内核可以运行 2 个线程(超线程)。所以2x20x2 = 80,这是CPUs显示的数量。

    • 63
  2. Josh Part
    2021-12-07T11:45:45+08:002021-12-07T11:45:45+08:00

    混乱来自一个非常简单的细节,可能从 infolscpu命令向您显示的内容中不清楚。

    问题是:您的服务器实际上有 2Intel(R) Xeon(R) Gold 6242R CPU秒,这Socket(s)在行中提到。

    正如英特尔文档所述,这些 CPU 中的每一个都包含 20 个物理内核(这Core(s) per socket条线),总共有 40 个物理内核。

    这些内核中的每一个都能够“同时”运行 2 个线程(这Thread(s) per core条线)。

    所以:2 个 Intel Xeon,每个 20 个物理内核,每个内核 2 个线程,总共有 80 个“可以执行进程的单元”或“CPU”

    • 16
  3. LawrenceC
    2021-12-07T14:00:18+08:002021-12-07T14:00:18+08:00

    CPU 的概念现在有点抽象,这始于超线程(90 年代后期),然后是 Intel Core(00 年代初期)系列。在此之前,您肯定拥有多 CPU 系统,但它们都是多物理 CPU。

    但是对于超线程和多核单 CPU,CPU 的物理 # 与 CPU 上运行的代码看到的 CPU 的逻辑 # 不同。

    Socket(s):                       2
    

    您有 2 个物理 CPU,如“将散热器插入主板的东西”

    Core(s) per socket:              20
    

    每个物理 CPU 有 20 个内核,它们看起来和大部分工作起来就像 Linux 的独立 CPU。内核至少共享相同的 L3 缓存,可能是 L2 缓存,并且可能具有自己的 L1 缓存 - 因此不如具有自己的 L3/L2/L1 的单个套接字那么性能,但几乎在那里。

    由于这是每个套接字,因此您有 2 * 20 = 40。

    Thread(s) per core:              2
    

    每个内核都有 2 个 SMT 线程,这些线程由 CPU 的微架构实现,基本上看起来就像 Linux 的独立 CPU

    它们不会像真正的独立内核那样快。

    微架构上的线程试图从内核中获取当前未使用的流水线阶段,但如果忙碌则可能最终不得不等待——而且 CPU 已经尝试让自己非常忙碌,因此 2 个内核上的 2 个线程也远不等于 4 个内核,但是它可以使代码运行得更快一些。

    请注意,由于核心资源是共享的,因此跨线程的 Spectre 和类似漏洞比核心或套接字更有可能发生。

    无论如何,因为这是每个内核和每个插槽,所以是 2 * 20 * 2,它给你:

    CPU(s):                          80
    
    • 8
  4. Tetsujin
    2021-12-07T01:16:27+08:002021-12-07T01:16:27+08:00

    双 CPU…处理器 x2,每个插槽 20 个内核…x2 = 40 个内核 = 80 个,带 HT。
    这可能很容易通过简单地取下盖子/侧面来验证。

    • 5
  5. Celeste aka. 73chn0
    2021-12-07T02:55:07+08:002021-12-07T02:55:07+08:00

    您的服务器正在使用 2 个“处理器芯片”(在 2 个插槽上),每个都有 20 个物理内核。

    每个核心可以处理2个线程。

    这就是为什么它显示 2(处理器芯片)* 20(每个部分的核心数)* 2(每个核心可以处理的线程)= 80 个 CPU

    在这种情况下,CPU 代表“可调度实体”,又名。机器可以运行的线程数量。

    • 4
  6. MonkeyZeus
    2021-12-08T07:02:48+08:002021-12-08T07:02:48+08:00
    1. 一块主板可以有多个插槽
    2. 每个插槽可以有一个物理处理器
    3. 每个处理器可以有一个或多个内核
    4. 每个核心可以同时执行一个或两个线程

    您有 2 个插槽,每个插槽都装有一个处理器,每个处理器 20 个内核,每个内核 2 个线程。

    2 x 20 x 2 = 80 CPUs


    我认为80 个 CPU用词不当,只是历史的副产品,因为过去只有单核/线程处理器存在,因此处理器、CPU、内核和线程都可以互换使用。

    • 1

相关问题

  • 处理器速度限制在 0.4 GHz

  • 为什么格式化赢得了 7 台计算机,而 windows 10 的 cpu-z 基准分数翻了一番?

  • 酷睿i7性能很差?[关闭]

  • virtualbox 是否需要 CPU 来支持 VT-d 以托管 64 位客户操作系统?

  • LGA1151物理尺寸?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve