Linux系统下物理CPU和逻辑CPU的区别

01、问题

最近在搞Linux下性能评测,在做CPU评测时发现了个有意思的现象,因为uos系统是自带系统监视器的,在对输入法进程检测时,发现其CPU占用率为1%:在这里插入图片描述
但是我用top命令查询时却发现它的CPU占用率为4%!

在这里插入图片描述

这是什么鬼?是输入法的bug?还是系统的bug?在这里插入图片描述
02、问题查询

查询了资料才发现Linux下的CPU是区分物理CPU和逻辑CPU的,呼,好险,如果提了bug,估计开发就该疯了。。。
在这里插入图片描述
在这里插入图片描述
那么什么是物理CPU?什么是逻辑CPU?他们之间又有什么区别那?

03、物理CPU

实际机器中插槽上的CPU个数;物理cpu数量,可以通过命令数不重复的physical id有几个来查询。

查询命令:cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc –l
在这里插入图片描述
这说明我的uos系统物理CPU只有1个。

04、CPU核数
一块物理CPU上能处理数据的芯片组数量。也就是说一个物理CPU上可能会有多个核心,日常中说的双核,四核就是指的CPU核心。可通过如下命令来查看CPU核心数:

cat /proc/cpuinfo | grep “cores” | uniq
在这里插入图片描述
05、逻辑CPU

逻辑CPU数量=物理cpu数量 x cpu cores x 2(如果支持并开启ht)。

一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT),可以在逻辑上再分一倍数量的cpu core出来;所以逻辑CPU的值理论上是可以超过100%的。

Ps:Linux下top查看的CPU也是逻辑CPU个数

查询命令:cat /proc/cpuinfo | grep “processor” | wc –l
在这里插入图片描述
根据换算公式:

逻辑CPU个数(4个)=物理cpu数量(1个) x cpu cores(4) x 1(不支持ht超线程技术)

这说明我的逻辑CPU个数是4个;怪不得我用top命令得出的结果是系统监视器的4倍!!!

在这里插入图片描述
最后,再简单说下超线程吧。

06、超线程

一个CPU核就是一个物理线程,由英特尔开发超线程技术可以把一个物理线程模拟出两个线程来使用,使得单个核心用起来像两个核一样,以充分发挥CPU的性能。

Ps:一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术。

07、说在最后

在Linux下进行测试时要摒弃很多Windows的固有思维,如进程概念,Windows下关闭输入法相关进程后台会自动退出,但是Linux下后台进程是随着系统启动,除非强杀否则不会退出;同样,Linux下的CPU和内存机制与Windows也有着很大不同,尤其是内存的管理机制,感兴趣同学可以自行查询相关概念,相信一定会收益颇丰。

房子要一层一层盖,知识要一点一点学。大家在学习过程中要好基础,多上手实操,话不多说,这里狠狠上一次干货!我熬夜整理好的各阶段(功能、接口、自动化、性能、测开)技能学习资料+实操讲解,非常适合私下里学习,比找资料自学高效多了,分享给你们。

领取关 w/x/g/z/h:软件测试小dao

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值