0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

服务器CPU的使用率能达到100%吗?

strongerHuang 来源:涛歌依旧 作者:涛歌依旧 2021-07-04 10:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近,一位同事急匆匆跑过来跟我说:糟糕了,服务器CPU的使用率达100%了。我心想不可能啊,CPU有那么多核,怎会跑满?于是看了一眼,结果虚惊一场。这位同事看到的100%,并非指整个CPU使用率到了100%,而是指CPU某些核的使用率到了100%.趁此机会,我来聊聊与CPU相关的概念,对很多软件开发和运维人员来说,这些概念是必须要掌握的:

CPU主频

多个CPU

多核CPU

逻辑核(超线程)

大小端

以一款CPU为例,看下具体参数:

CPU主频(时钟频率) 在上面这些参数中,人们最熟知的是CPU主频(时钟频率)。买电脑时,肯定需要看CPU主频是多少。我们知道:CPU时钟越快,产生上升沿/下降沿的速度就越快,就能更快地迫使其它器件做相应工作。CPU的时钟,就像龙舟比赛的击鼓人,击鼓频率越快,就迫使划船的人跟上节奏,结果龙舟也越快。

从CPU参数可以看到,该CPU有12个物理核,每个物理核对应2个逻辑核(超线程技术)。所以,从外部看,该CPU有24个核(逻辑核)。也就是说,该CPU有12个物理上的运算器&控制器,有24个逻辑上的运算器&控制器。

多个CPU我们看linux命令lscpu给出的信息:

Socket(s): 2

可以看到,在这台服务器上,总共插了2个CPU, 这2个CPU是物理上的CPU, 人眼可以看到,手也可以触摸到:

多核CPU我们看linux命令lscpu给出的信息:

Core(s) per socket: 12

可以看到,针对每一个物理CPU而言,内部有12个物理核。也就是说,在一个物理CPU内,有12个物理层面的运算器&控制器,它们是实实在在存在的。很霸气的感觉,12个物理核如下图所示:

逻辑核(超线程)我们看linux命令lscpu给出的信息:

Thread(s) per core: 2

由于Intel采用了超线程技术,所以每个物理核对应2个逻辑核:

要注意,在物理上看来,只有一个核,但采用了超线程技术,在使用时,实际效果是2个核在同时并行(不是同步并发)工作,也即有2个逻辑核,如下图所示:

那么,在上面这台服务器中,有多少个逻辑核呢?服务器中插有2个物理CPU, 每个物理CPU有12个物理核,每个物理核有2个逻辑核,故总共48个逻辑核。因此,当操作系统俯视CPU硬件时,它看到的是,在计算机中,有48个核,即有48个运算器&控制器。

对于操作系统而言,它可以认为有48个CPU核在同时并行(不是同步并发)为它提供服务,lscpu查出的信息如下:

CPU(s): 48

这里的48个CPU(s), 其实就是48个逻辑核。有时,我们也可以说,这台服务器有48个核。这台服务器有2个CPU, 针对其中一个CPU,我们也可以说,它是“12核24线程”。

操作系统对核的分配需要注意的是,如上的服务器有2个CPU, 每个CPU有12物理核,每个物理核有2个逻辑核,这仅仅是针对特定服务器和CPU的。其他计算机或者CPU, 就不一定如此了。来看我的另外一台服务器,配置略微寒酸:总共只有1个CPU, 1个物理核,1个逻辑核:

poYBAGDhJD2AHU4bAADkvl2Dw00344.jpg

如果在这个单核服务器上,运行如下的死循环程序,会如何呢?

#include 《stdio.h》int main(){ while(1); // 死循环 return 0;}

观察top命令给出的结果,可以看到,1个进程就消耗了大约99.0%的CPU,整个CPU的使用率达到99.7%: 那么,如果开启2个进程并发执行呢?可以看到,每个进程几乎都是占用49.x%的CPU,整个CPU的使用率达到99.7%:

那么,如果开启3个进程并发执行呢?可以看到,每个进程几乎都是占用32.x%的CPU,整个CPU的使用率达到98.7%:

可以看到,整个CPU几乎被瓜分殆尽。这种调度和分配,是由操作系统完成的。

再来看多核CPU的情况,我找了另一台服务器,有32个逻辑核,简称32个核。运行一下死循环进程,用top命令来分析。可以看到,1个进程占满1个核,使用率100%, 而服务器32个核的使用率是3.6%:

运行2个进程,可以看到,2个进程都占用99.7%的核,而服务器32个核的使用率是6.5%:

运行3个进程,可以看到,3个进程都占用100%的核,而服务器32个核的使用率是9.8%:

看到使用率为100%时,不要紧张,不要以为CPU就用完了,这台服务器有32个核呢(拥有3200%的能力)。来看下3个进程时,每个核的具体使用情况(3个进程,总共大概占用300%的核):

这些值会动态地变化,而且不一定是消耗在某些固定的核上。核的调度和资源分配,由操作系统来完成:

CPU大小端最后,来看一个大小端的问题,看lscpu命令的信息:

Byte Order: Little Endian它的含义是: CPU是小端模式。相信几乎所有的程序员都听说过这个概念,我们具体来测试一下。

下面是在Intel CPU + Windows + VC++6.0上的测试结果,可以看到:低位的0x78存储在地址较小的位置(小端模式):

下面是对8051单片机进行的仿真测试,可以看到:高位的0x12存储在地址较小的位置(大端模式):

至此为止,我们对CPU的基本参数有了大致了解,这也是linux相关的开发、运维人员必须掌握的。

以后也可以谈笑风生地聊多个CPU、多核CPU、逻辑核和大小端了,而不是一如既往地一知半解。

责任编辑:lq6

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11218

    浏览量

    222955
  • 服务器
    +关注

    关注

    13

    文章

    10093

    浏览量

    90890

原文标题:CPU使用率到100%,有哪些因素影响?

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    历史首次!AMD服务器CPU市占率达50%

      电子发烧友网报道(文/黄晶晶)近日,根据市场研究机构PassMark对于服务器CPU 市场占有率调查的数据显示,截至2025年一季度AMD 在服务器CPU 市场市占率首次
    的头像 发表于 08-11 03:20 9962次阅读
    历史首次!AMD<b class='flag-5'>服务器</b><b class='flag-5'>CPU</b>市占率达50%

    什么是服务器虚拟化?一文读懂原理、优势与实战部署

    什么是服务器虚拟化?当企业服务器CPU用率长期低于15%,却仍需不断采购新硬件应对业务增长时,一场基础设施领域的革命早已悄然发生——服务器
    的头像 发表于 08-25 10:52 880次阅读
    什么是<b class='flag-5'>服务器</b>虚拟化?一文读懂原理、优势与实战部署

    43630-2023服务器最新节能标准适用范围

    服务器效限定值及效等级》的适用范围如下:适用范围1.产品类型-塔式服务器:单路(1个CPU插槽)或双路(2个
    的头像 发表于 08-07 10:30 1612次阅读
    43630-2023<b class='flag-5'>服务器</b>最新节能标准适用范围

    怎样在阿里ECS服务器上架设自己的OpenVPN服务器

    需要自己架设服务器,让现场的IR615路由连接自己的服务器通过自己的服务器进行数据采集和远程运维。
    发表于 08-06 06:56

    看点:AMD服务器CPU市场份额追上英特尔 华为Mate80主动散热专利曝光

    英特尔持平,这意味着AMD服务器CPU市场份额追上英特尔;终结了英特尔数十年来着服务器CPU市场的主导地位。 统计分析数据显示在2014-2019年期间,AMD的市场份额很低,英特尔的
    的头像 发表于 07-25 14:41 811次阅读
    看点:AMD<b class='flag-5'>服务器</b><b class='flag-5'>CPU</b>市场份额追上英特尔 华为Mate80主动散热专利曝光

    英特尔服务器CPU市场失守:从99.9%到50%以下

    电子发烧友网综合报道,近日,市场调研机构 IDC 更新了全球服务器市场的最新情况。该机构预计,2025 年全球 x86 服务器的市场价值将同比增长 39.9%,达到 2839 亿美元;非 x86
    的头像 发表于 07-01 01:19 4026次阅读
    英特尔<b class='flag-5'>服务器</b><b class='flag-5'>CPU</b>市场失守:从99.9%到50%以下

    新加坡服务器延迟大吗?真相在这里#新加坡服务器 #服务器

    服务器
    jf_57681485
    发布于 :2025年04月18日 13:48:50

    龙芯3C6000服务器CPU,16核32线程,国产CPU新标杆!

    服务器
    国产计算机小秦
    发布于 :2025年04月10日 11:10:04

    服务器使用过程中卡顿如何排查

    技巧,希望能有所帮助。 服务器卡顿的情况下,请先检查服务器的使用情况。  1、CPU使用率是否大于50%。  2、内存使用率是否过高。  3
    的头像 发表于 03-31 17:04 920次阅读

    TECS OpenStack资源池主机磁盘分区使用率过高的问题处理

    某运营商TECS资源池上报“主机磁盘分区使用率过高”的告警,如下图所示。
    的头像 发表于 03-21 09:47 839次阅读
    TECS OpenStack资源池主机磁盘分区<b class='flag-5'>使用率</b>过高的问题处理

    东京物理服务器的价格是如何影响用户的使用率

    东京物理服务器的价格对用户的使用率有显著影响,主要体现在以下几个方面,主机推荐小编为您整理发布东京物理服务器的价格是如何影响用户的使用率
    的头像 发表于 02-24 09:16 543次阅读

    基于华为云 Flexus X 实例部署 Uptime-Kuma 服务器监控面板

    系统来实时掌握服务器的运行状态。         在这样的背景下,uptime-kuma 应运而生。uptime-kuma 是一款开源的服务器监控面板,它能够帮助用户实时监控服务器的关键指标,如
    的头像 发表于 01-17 09:42 1053次阅读
    基于华为云 Flexus X 实例部署 Uptime-Kuma <b class='flag-5'>服务器</b>监控面板

    Linux配置DHCP服务器步骤

    动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。 二、工作原理 1.客户端开机没有IP,局域网内需要发送一个广播形式的DISCOVER(局域网内不知道谁是DHCP
    的头像 发表于 01-08 11:37 1480次阅读
    Linux配置DHCP<b class='flag-5'>服务器</b>步骤

    服务器 Flexus X 实例,镜像切换与服务器压力测试

    服务器 Flexus X 压力测试 1、购买华为云 Flexus X 实例 Flexus云服务器X实例-华为云 (huaweicloud.com)   2、xshell 远程连接服务器 3、安装
    的头像 发表于 01-03 09:23 809次阅读
    云<b class='flag-5'>服务器</b> Flexus X 实例,镜像切换与<b class='flag-5'>服务器</b>压力测试

    华纳云:服务器如何达到Energy Star的效标准?

    要使服务器达到Energy Star的效标准,需要考虑以下几个关键要求: 电源供应效率: 使用内置电源供应的计算机在50%额定输出时最低效率应为85%,20%和
    的头像 发表于 12-18 14:51 901次阅读