专栏首页搜狗测试Linux系统下物理CPU和逻辑CPU的区别

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也有着很大不同,尤其是内存的管理机制,感兴趣同学可以自行查询相关概念,相信一定会收益颇丰。

本文分享自微信公众号 - 搜狗测试(SogouQA),作者:努力搬砖去炸碉堡

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

原始发表时间:2021-01-18

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 查看 linux 硬件信息:内存、分区、系统、环境变量、防火墙、路由、端口监听、进程、CPU...

    其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. ...

    微风-- 轻许--
  • 性能基础之CPU、物理核、逻辑核概念与关系

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

    高楼Zee
  • 【技术创作101训练营】Linux服务器的晴雨表—top命令

    系统现在共有447个进程,其中处于运行中的有1个,445个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有1个。

    程序员小明
  • Linux 查询 OS、CPU、内存、硬盘信息

    当我们接手了一台或者几台服务器的时候,首先我们有必要对服务器的基本配置有所认识,这样才可以对症下药,对以后的软件部署,系统运维会有事半功倍的效果。

    吾非同
  • Linux系统如何做性能测试?

      1、登录Terminal,执行:cat /proc/cpuinfo,就会显示出主机的CPU详细参数,如内核、频率、型号等等,以下是我Linux 系统主机的C...

    小老鼠
  • 关于存储技术的最强入门科普

    哈哈,没错,我们现在处于信息时代,每天都在和电脑、手机打交道。我们的工作和生活,已经完全离不开视频、音乐、图片、文本、表格这样的数据文件。

    鲜枣课堂
  • liunx下查看服务器硬件信息

    今天安装了9台Linux服务器,型号完全不一样(有DELL、HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cp...

    meteoric
  • 从传统运维到云运维演进历程之软件定义存储(三)上

    上回书讲完了部署,部署完成之后,就开始了无休止的调优,对于Ceph运维人员来说最头痛的莫过于两件事:一、Ceph调优;二、Ceph运维。调优是件非常头疼的事情,...

    DevinGeng
  • pustil - 获取系统信息库

    运维工程师经常使用 Python 编写脚本程序来做监控系统运行的状态。如果自己手动使用 Python 的标准库执行系统命令来获取信息,会显得非常麻烦。既要兼容不...

    猴哥yuri

扫码关注云+社区

领取腾讯云代金券