前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三分钟速览cpu,socket,core,thread等术语之间的关系

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

作者头像
KINGYT
发布2020-10-30 11:48:21
7K0
发布2020-10-30 11:48:21
举报

嘘,你已经中了幻术~


当我们在看技术文档时,经常会发现很多有关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文档查看:

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux内核及JVM底层相关技术研究 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档