专栏首页Linux内核及编程语言底层相关技术研究三分钟速览cpu,socket,core,thread等术语之间的关系

三分钟速览cpu,socket,core,thread等术语之间的关系

嘘,你已经中了幻术~


当我们在看技术文档时,经常会发现很多有关cpu的术语,比如cpu、cpu socket、cpu core、hyper-threading等,乱乱的分不清楚,这篇文章我带大家用三分钟时间,快速的过一遍各种术语代表什么,以及它们之间的关系。

0x00 CPU

cpu全称是central processing unit,中文又叫中央处理器,是用来执行我们的代码,处理各种逻辑的地方,它可以被称之为计算机的大脑。

现在cpu的概念已经比较宽泛了,在不同的语境下通常表示不同的意思,不过如果我们没有指定语境,通常cpu就是指这个:

0x01 CPU socket

如果我们自己组装过电脑的话,应该知道cpu是通过一个插槽安装在主板上的,这个插槽就叫做 cpu socket,它长这个样子:

0x02 Core

core的中文意思是核心,它就是我们平时说的,一个cpu中有几核的核的概念。

其实在很久之前是没有core的概念的,一个cpu就是一个完整的物理处理单元,之后由于多核技术的发展,cpu的概念转变为了一个容器,而core则变成了真正的物理处理单元。

一个cpu中可以有多个core,各个core之间是相互独立,且可以并行执行逻辑的,每个core都有自己单独的寄存器,l1, l2 缓存等物理硬件。

0x03 Thread

由于cpu的执行速度非常快,而其他部件相对来说又比较慢,所以cpu经常会处于空闲状态,为了充分利用cpu资源,intel又在core的基础上提出了hyper-threading概念,即一个core里可以模拟多个逻辑核,这个就叫做thread。

与core不同是,thread并不是一个物理概念,而是一个软件概念,它本质上就是利用core的空闲时间,来执行其他代码,所以thread其实只能算是并发,而不能算是并行。

thread和以上术语的关系是:

0x04 vCPU

在我们购买云服务器的时候,经常会遇到一个概念叫vCPU,比如下面这样:

这里的vCPU其实就是指的虚拟核,也就是上面的thread。

0x05 实践

在linux下,我们可以通过以下命令来查看当前机器的cpu拓扑结构:

由上可见,该机器的主板上有一个cpu插槽(socket),这个插槽上的cpu有2核(core),且每核上又有2个线程(thread),也就是说,这个机器是2核4线程的。

上图中thread总数是用cpu来表示的,这也是为什么上文说,cpu是个比较宽泛的概念,在不同的语境下有不同的定义,这里表示的就是逻辑核,也就是thread。

如果我们只想查看该机器上有几个逻辑核,不想看其他数据的话,也可以用下面的命令:

其实在cpu的拓扑结构中,并不只有上面的几个概念,还有很多其他术语,只不过是我们比较少看到。

这些术语可以通过lscpu的man文档查看:

好,就这些,希望对你有所帮助。

方便的话也帮忙转发下,或点个赞,谢谢。

本文分享自微信公众号 - Linux内核及JVM底层相关技术研究(ytcode),作者:wangyuntao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux上numa架构介绍

    以下案例基于 Ubuntu 16.04,同样适用于其他的 Linux 系统。我使用的案例环境如下所示:

    没有故事的陈师傅
  • Kubelet从入门到放弃:识透CPU管理

    《Kubelet从入门到放弃系列》将对Kubelet组件由Linux基础知识到源码进行深入梳理。在这篇文章中zouyee会介绍CPU的相关概念以及Kubelet...

    zouyee
  • 数据库选型:多核还是多线程?

    数据库选型,是用多核主机还是多线程主机?我是否可以用比较便宜的单核超线程(Hyper-Threading,HT)的机器,来替代双核非HT的机器? 回答这个问题,...

    数据和云
  • 性能基础之CPU、物理核、逻辑核概念与关系

    性能测试中当我们尝试使用 Linux 命令(如 nproc 或 lscpu )了解服务器CPU架构和性能参数时,我们经常发现我们无法正确解释其结果,因为我们混淆...

    高楼Zee
  • 深入浅析内存

    最近在看一本<<架构解密:从分布式到微服务>>中看到了有关内存的相关知识,自己这方面比较薄弱,就想着记录下来。书本地址:www.zhihu.com/pub/bo...

    一滴水的眼泪
  • Kubelet从入门到放弃:识透CPU管理

    《Kubelet从入门到放弃系列》将对Kubelet组件由Linux基础知识到源码进行深入梳理。在这篇文章中zouyee会介绍CPU的相关概念以及Kubelet...

    CNCF
  • Web APP编程模型和IO策略

    现代大型高性能网站诸如淘宝,京东,微博,FB,知乎等等,网站架构涉及很多知识。像业务分层,软件分割模块化,分布式部署,集群服务器,负载均衡等技术可以帮助架构师将...

    小小科
  • Kubelet从人门到放弃:拓扑管理(上)

    《Kubelet从入门到放弃系列》将对Kubelet组件由Linux基础知识到源码进行深入梳理。上一篇zouyee带各位看了Kubelet从入门到放弃:识透CP...

    zouyee
  • 游戏开发中的专业术语

    本文整理了网络/游戏/编程相关的专业术语,作为游戏开发中的辅助参考资料,后期如果遇到其他的术语还会更新。

    Zoctopus
  • openstack nova hotplug

    本想写三篇,openstack nova hotplug,qemu和kvm hotplug,还有linux hotplug,现在看来有难度,光一个opensta...

    惠伟
  • 系统性能调优之绑定cpu

    L1缓分成两种,一种是指令缓存,一种是数据缓存。L2缓存和L3缓存不分指令和数据。L1和L2缓存在第一个CPU核中,L3则是所有CPU核心共享的内存。L1、L2...

    没有故事的陈师傅
  • Oracle-AWR性能报告解读

    请访问 Oracle-AWR管理包 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS

    小小工匠
  • 【海云捷迅云课堂】高性能虚拟机NUMA

    海云捷迅云课堂专题,旨在秉承开源理念,为大家提供OpenStack技术原理与实践经验,该专题文章均由海云捷迅工程师理论与实践相结合总结而成,如大家有其他想要了解...

    海云捷迅
  • ASP.NET Core 性能对比评测(ASP.NET,Python,Java,NodeJS)

    前言 性能是我们日常生活中经常接触到的一个词语,更好的性能意味着能给我们带来更好的用户体检。比如我们在购买手机、显卡、CPU等的时候,可能会更加的关注于这样指标...

    逸鹏
  • 从上到下的系统架构分析方法 - Intel PMU

    现代 CPU 大多具有性能监控单元(Performance Monitoring Unit, PMU),用于统计系统中发生的特定硬件事件,例如缓存未命中(Cac...

    Linux阅码场
  • 第十三章 系统资源管理

    我们日常经常会提及系统资源的使用状况,那么系统资源具体是指什么呢?其实系统资源主要分为两种,运行资源和存储资源

    晓天
  • Linux的lscpu命令

    lscpu命令从sysfs、/proc/cpuinfo、或者某些适用于特定架构的库中收集数据。命令的输出会以人类易读的方式展示如下信息:cpu、线程、核心、插槽...

    狼啸风云
  • 3个你未必知道的内存小知识

    然后,我们先从第1个非常简单的问题开始:CPU可以直接操作内存吗?可能99%的程序员会不假思索地回答:“肯定的,不然程序怎么跑。”如果理性地分析一下,你会发现这...

    博文视点Broadview
  • 半小时训练亿级规模知识图谱,亚马逊AI开源知识图谱嵌入表示框架DGL-KE

    知识图谱 (Knowledge Graph)作为一个重要的技术,在近几年里被广泛运用在了信息检索,自然语言处理,以及推荐系统等各种领域。学习知识图谱的嵌入表示 ...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券