【操作系统】CPU平均负载和使用率

news2025/1/6 20:45:31

1.CPU的平均负载

(1)什么是CPU的平均负载

单位时间内系统处于【可运行状态】和【不可中断状态】的平均进程数,就是平均活跃进程数,和CPU使用率并没有直接关系

  • 可运行状态
    • 正在使用CPU或者正在等待CPU的进程
    • 用 ps aux命令看到的处于R状态(Running 或 Runnable)的进程
  • 不可中断状态
    • 正处于内核态关键流程中的进程,且流程不可以打断的。
    • 比如等待硬件设备的I/O响应,为例保证数据的一致性,进程向磁盘读写数据时,在得到磁盘响应前是不能被其他进程或者中断打断的。
    • ps aux命令看到的处于D状态的进程 Uninterruptible Sleep

(2)PS中常见STAT状态

在这里插入图片描述

PS中常见STAT状态描述
D无法中断的休眠状态(通常IO进程)
R正在运行,或者在队列中等待运行的进程
S处于休眠状态
T停止或被追踪
Z僵尸进程
<优先级高的进程
n优先级低的进程
L有些页被锁的进程
s进程的领导者(在它之下有子进程)
l多进程的(使用CLONE_THREAD,类似 NPTL pthreads)
+位于后台的进程组

(3)如何查看平均负载 uptime 命令

  • load average后的3个数字就分别代表着1分钟,5分钟,15分钟的CPU平均负载
    • 查看服务器总的逻辑CPU个数:cat /proc/cpinfo | grep “processor” | wc -l
  • 如果平均负载为2,那在2个CPU核数时则刚好利用,如果4个CPU核数,则有50%的空闲

在这里插入图片描述

分析:

  • 1,5,15分钟的数值相差不大,说明负载很平稳

  • 如果1分钟的值远小于15分钟的值,说明系统最近1分钟的负载在降低,而过去15分钟却有很大的负载

  • 如果1分钟的值远大于15分钟的值,最近1分钟的负载在增加,平均负载接近或超过了CPU的个数,意味着系统正在发生过载问题,持续的长时间则说明了出现问题需要优化

  • 在一个单核CPU 系统平均负载为 1.80,0.90,5.48

    • 在过去 1 分钟内,系统有 80% 的超载,而在 15 分钟内,有 448% 的超载,从整体趋势来看,系统的负载在降低
  • 常规推荐CPU平均负载等于CPU核数即可,也看业务场景和历史趋势,判断变化方向

2.CPU的使用率

(1)什么是CPU的使用率

CPU非空闲态运行的时间占比,反馈CPU的繁忙程度,和平均负载不一定完全一致,生产环境的CPU总使用率不要超过70%~80%

(2)Linux的top命令查看CPU使用率

在这里插入图片描述

  • us(user):CPU在用户态运行的时间百分比,通常用户态 CPU 高表示有应用程序比较繁忙,值高则cpu使用率高

  • sy(sys):CPU 在内核态运行的时间百分比(不包括中断),内核态 CPU 越低越不忙,值高则cpu使用率高

  • id(idle):CPU 处于空闲态的时间占比,CPU 会执行一个特定的虚拟进程,名为 System Idle Process,值高的话,则说明CPU比较空闲

  • wa(iowait):CPU 在等待 I/O 操作完成所消耗的时间,该指标越低越好,高表示可能 I/O 存在瓶颈,用 iostat 命令进一步分析

  • hi(hardirq):CPU 处理硬中断所花费的时间,由外设硬件(如键盘控制器、硬件传感器等)发出的中断信号,快速执行

  • si(softirq): CPU 处理软中断所花费的时间,由软件程序(如网络收发、定时调度等)发出的中断信号,延迟执行

  • st(steal): CPU 被其他虚拟机占用的时间,仅出现在多虚拟机场景,指标过高的话,检查下宿主机或其他虚拟机是否异常

(3)CPU使用率和平均负载区别

【CPU平均负载】指单位时间内活跃的进程数,包括正在使用CPU进程,还包括等待CPU和等待I/O的进程,【可运行状态】和【不可中断状态】的平均进程数

【CPU使用率】是单位时间内CPU繁忙情况的统计

(4)区别说明

  • CPU密集型进程,使用大量CPU运算,会导致平均负载升高,这个场景这两者是一致的。

  • I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高

    • CPU的效率要远高于磁盘,磁盘读写请求过多就会导致大量的I/O等待
    • 进程在 CPU 上访问磁盘文件,CPU 会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候CPU会切换到其他进程或者空闲
    • 任务会转换为 不可中断睡眠状态,当这种读写请求过多会导致不可中断睡眠状态的进程过多,导致CPU负载高,利用率低的情况
  • 大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高

  • CPU密集型应用也叫计算密集型,表示该任务需要大量的运算,没有阻塞CPU一直全速运行,对视频进行高清解码、机器学习和深度学习的模型训练等

  • IO密集型应用 程序需要大量I/O操作,大部分的时间是CPU在等IO (硬盘/内存) 的读写操作,CPU使用率低,但等待IO 也会导致平均负载升高,例如:数据库交互,文件上传下载,网络数据传输

I/O操作,大部分的时间是CPU在等IO (硬盘/内存) 的读写操作,CPU使用率低,但等待IO 也会导致平均负载升高,例如:数据库交互,文件上传下载,网络数据传输

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/118646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【OpenCV-Python】教程:9-1 级联分类器训练

OpenCV Python 级联分类器训练 【介绍】 使用增强的弱分类器级联包括两个主要阶段: 训练和检测阶段。使用基于HAAR或LBP模型的检测,在object detection tutorial中进行了描述。本文档概述了训练您自己的增强弱分类器级联所需的功能。当前的手册将走过所有不同的阶段: 收集训练…

机器学习-决策树算法原理及实现-附python代码

1.决策树-分类树 sklearn.tree.DecisionTreeClassifier官方地址&#xff1a; https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier 在机器学习中&#xff0c;决策树是最常用也是最强大的监督学…

用双因子认证2FA替换Google authenticator谷歌令牌,助力准上市公司实现等保安全审计

21世纪初&#xff0c;某人力资源科技公司试水HR SaaS赛道&#xff0c;以大客户为目标客群&#xff0c;持续深耕&#xff0c;稳扎稳打&#xff0c;如今已是一家专门为中大型企业提供一体化HR SaaS及人才管理产品/解决方案的头部企业。其产品覆盖了从员工招募、入职、管理到离职的…

Linux系统安装Mysql5.7(详解)

Linux系统上安装软件的3种方式&#xff1a; 本次使用二进制发布包安装方式安装Mysql5.7 &#xff08;一&#xff09;下载Mysql5.7的二进制包 这里可以选择去Mysql官网下载&#xff0c;但是由于服务在外国&#xff0c;下载速度实在是太慢了。这里我们可以选择去阿里云的镜像网…

数据通信基础 - 解调技术(PCM)

文章目录1 概述2 脉冲编码调制技术2.1 采样2.2 量化2.3 编码3 扩展3.1 网工软考真题1 概述 #mermaid-svg-K45XtgYRoAw04KU0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-K45XtgYRoAw04KU0 .error-icon{fill:#5522…

医疗影像工具LEADTOOLS 入门教程: 使用文档编写器创建文档 - 控制台 C#

LEADTOOLS是一个综合工具包的集合&#xff0c;用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中&#xff0c;是一项企业级文档自动化解决方案&#xff0c;有捕捉&#xff0c;OCR&#xff0c;OMR&#xff0c;表单识别和处理&#x…

【数据结构】Leedcode消失的数字(面试题)

目录 一、题目说明 二、题目解析 一、题目说明 题目链接: leetcode消失的数字 数组nums包含从0到n的所有整数&#xff0c;但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗&#xff1f; 示例1&#xff1a; 输入&#xff1a;[3,0,1] 输出&#x…

菜鸟也能懂的 - 音视频基础知识。

前言 说到视频&#xff0c;大家自己脑子里基本都会想起电影、电视剧、在线视频等等&#xff0c;也会想起一些视频格式 AVI、MP4、RMVB、MKV等等。 但是我们如果认真思考这些应该就有很多疑问&#xff0c;比如以下问题&#xff1a; mp4 和 mkv有什么区别 &#xff1f; 视频封装…

Lua基本数据类型

Lua官网文档入口 http://www.lua.org/ document --> manual 一、基本数据类型 lua 中有八种基本数据型&#xff0c;分别是&#xff1a; nil&#xff0c;boolean&#xff0c;number&#xff0c;string&#xff0c;function&#xff0c;userdata&#xff0c;thread 和 tab…

vue - - - - - vue-property-decorator的使用

哪有小孩天天哭&#xff0c;哪有赌徒天天输 。遇到不会的技术、知识点&#xff0c;看得多了&#xff0c;掉的坑多了&#xff0c;也就会了。 vue-property-decorator的使用1. 单文件组件写法 - Component的使用2. 组件内使用变量3. 使用计算属性 - get的使用4. 生命周期5. metho…

Nydus 镜像扫描加速

文&#xff5c;余硕上海交通大学22届毕业生阿里云开发工程师从事云原生底层系统的开发和探索工作。本文 6369 字 阅读 16 分钟GitLink 编程夏令营是在 CCF 中国计算机学会指导下&#xff0c;由 CCF 开源发展委员会&#xff08;CCF ODC&#xff09;举办的面向全国高校学生的暑期…

Java字符集编码解码详细介绍

文章目录字符集字符集的基本认识字符集编码和解码字符集 字符集的基本认识 字符集基础知识 计算机底层不可以直接存储字符的。计算机中底层只能存储二进制(0、1) 二进制是可以转换成十进制的 计算机底层可以表示十进制编号。计算机可以给人类字符进行编号存储&#xff0c;这套…

【进阶C语言】数据的存储形式

文章目录一.数据类型分类二.整形的存储形式1.源码&#xff0c;反码&#xff0c;补码的关系内存中数据的存储——二进制源码&#xff0c;反码&#xff0c;补码的关系正数负数三.大小端1.概念2.例题&#xff1a;判断当前编译器的存储形式四.浮点数的存储形式1.二进制的补充&#…

【k8s系列】kube-state-metrics中kube_endpoint_address指标

文章目录背景环境操作方法1&#xff1a;kube_endpoint_address_not_ready选择大于0的验证方式1验证方式2方法2&#xff1a;kube_endpoint_address_available选小于0的方法3&#xff1a;kube_endpoint_address{ready"false"}选大于0的解释参考author: ningan123date: …

java基础巩固-宇宙第一AiYWM:为了维持生计,架构知识+分+微序幕就此拉开之RocketM消息中间件~整起

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 RocketMQ一、RocketMQ概念~一览无余1.消息队列有啥用&#xff1f;能干啥&#xff1f;消息队列的应用场景&#xff1f;2.常见的消息队列有哪些&#xff1f;如何进行消息队列的…

2、MySQL支持的数据类型

目录 1、整数类型 &#xff08;1&#xff09;fillzero&#xff1a;根据整数类型的长度自动添加0 &#xff08;2&#xff09;unsigned&#xff1a;非负整数 &#xff08;3&#xff09;bin&#xff08;m&#xff09;&#xff1a;将十进制数转为m进制 2、日期时间类型 &#x…

【MySQL基础教程】函数的介绍与使用

前言 本文为 【MySQL基础教程】函数的介绍与使用 相关知识&#xff0c;下边具体将对字符串函数&#xff0c;数值函数&#xff0c;日期函数&#xff0c;流程函数等进行详尽介绍~ &#x1f4cc;博主主页&#xff1a;小新要变强 的主页 &#x1f449;Java全栈学习路线可参考&…

MAXHUB+腾讯会议:为未来办公造一部动力引擎

科技领域有个规律&#xff0c;我们经常高估一年的变化&#xff0c;而低估了十年或者更长时间所可能发生的变化。不信可以做个测试&#xff0c;你觉得未来线上办公会怎么发展&#xff1f;不少朋友会说&#xff0c;既然线上办公是疫情到来之后的PlanB&#xff0c;那么随着疫情结束…

【STM32F4系列】【HAL库】【自制库】ps2手柄模块驱动

外观和电气连接 外观 手柄外观如下 接收器外观 这是接收器和底座 电气连接 需要4根连接线 单片机输出是CLK DO CS 单片机输入是DI 电源电压是3.3-5v 注意模块和单片机共地 模块不支持高速,最大时钟周期约为4us左右 因此使用软件模拟时序的方式来与模块通信 只需要将模块的4根线…

Golang Context 的几种应用场景

Golang context主要用于定义超时取消&#xff0c;取消后续操作&#xff0c;在不同操作中传递值。本文通过简单易懂的示例进行说明。 超时取消 假设我们希望HTTP请求在给定时间内完成&#xff0c;超时自动取消。 首先定义超时上下文&#xff0c;设定时间返回取消函数&#xff…