首页 > 其他分享 >【操作系统】CPU平均负载和使用率

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

时间:2023-01-18 17:32:09浏览次数:63  
标签:负载 中断 进程 使用率 平均 CPU


1.CPU的平均负载

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

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

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

(2)PS中常见STAT状态

【操作系统】CPU平均负载和使用率_服务器

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%的空闲

【操作系统】CPU平均负载和使用率_内核态_02

分析:

  • 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使用率

【操作系统】CPU平均负载和使用率_内核态_03

  • 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 也会导致平均负载升高,例如:数据库交互,文件上传下载,网络数据传输


标签:负载,中断,进程,使用率,平均,CPU
From: https://blog.51cto.com/u_15646271/6019334

相关文章

  • Qemu查询支持的芯片的板子、CPU型号
    1.查看支持的板子(即SOC):qemu-system-xxx-Mhelp例如:想查询支持的arm芯片的板子:qemu-system-arm-Mhelp想查询支持的PowerPC(32位)芯片的板子:qemu-system-ppc-Mhel......
  • 52-HAProxy-10种负载均衡调度算法
    HAProxy调度算法在LVS关于负载均衡的十种调度算法中,分为静态调度算法和动态调度算法两种,静态调度是指无视后端服务负载情况执行调度命令,而动态调度算法是根据后端的动态变......
  • 02linux排查cpu内存过高的进程及使用的文件
    1.先用top命令看下进程和内存使用过高的进程显示前50个top-b|head-50  2.查看占用CPU比较多的进程的网络连接netstat-tnp|grep2166327  确定ip......
  • tomcat负载高查询方法
    整体思路与流程:1先定位tomcat的线程2各种导出统计线程、进程信息3与开发一起查看基础排查流程:1通过psaux/top命令排查出tomcat有问题2通过top-Hptomcatpid......
  • 如何解决 Google Chrome 占用内存过多,减少 RAM/CPU 使用率
    经常使用Chrome浏览器的同学肯定会发现,有时候我们的Chrome浏览器占用了太多内存,导致其它程序非常的卡顿,那怎么解决呢?  谷歌浏览器是一款出色的网络浏览器,但它以高资源......
  • 记录一则exachk进程占用大量CPU资源
    有Exadata客户在进行exachk巡检之后反馈,发现系统中,exachk进程占用了大量CPU资源。了解之前的变更,只是巡检之前升级了AHF,然后进行标准的exachk巡检。现象:目前机器整体CPU......
  • 闻其声而知雅意,基于Pytorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python
    前文回溯,之前一篇:含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入),利用AI技术将文本合成语音,现在反过来,利用开源库Whisper再将语音转回......
  • CPU持续100%分析并解决
    背景接到客户电话,说某系统数据库服务器CPU利用率从上午8点开始到现在基本上都是100%的情况,影响到了业务。让给看看是什么原因导致的,怎么紧急处理一下。现象查看CPU利用率,确......
  • nginx负载均衡、rewrite重写规则及多server反代配置梳理
    Nginx除了可以用作web服务器外,他还可以用来做高性能的反向代理服务器,它能提供稳定高效的负载均衡解决方案。nginx可以用轮询、IP哈希、URL哈希等方式调度后端服务器,同时也能......
  • Windows使用命令行查看cpu的温度
    使用PowerShell(cmd命令行不行的),以管理员身份打开,$temp=gwmimsacpi_thermalzonetemperature-namespace"root/wmi"$temp.CriticalTripPoint/10-273.15#预警温度$te......