Linxu性能优化基础:理解“平均负载”

uptime命令

在这里插入图片描述
当前系统时间 18:00:56
系统运行时间 45min
正在登陆用户数 1
过去1分钟的平均负载 0.55
过去5分钟的平均负载 0.29
过去15分钟的平均负载 0.75

平均负载

简单来说,平均负载是指单位时间内,系统处在可运行状态不可中断状态平均进程数,也就是平均活跃数,它和CPU使用率并没有直接关系,其实就是平均活跃进程数,不仅包括正在使用CPU的进程,还包括等待CPU和等待I/O的进程。

可运行状态的进程,是指正在使用CPU或者等待CPU的进程,也就是我们常用ps命令看到的,处于R状态(Running 或Runnable)的进程。

不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如常见的等待硬件设备的IO响应,也就是我们再ps命令中看到的D状态(Uninterruptiable Sleep ,也称Disk Sleep)的进程。不可中断状态实际上是系统对进程和硬件设配的一种保护。

平均负载含义

平均负载最理想的情况是等于CPU个数
比如 当平均负载为2时
在2个CPU的系统上,代表所有的CPU刚好被完成占用
在4个CPU的系统上,代表CPU有一半是空闲的
在1个CPU的系统上,代表一半的进程竞争不到CPU

通过top命令或者文件/proc/cpuinfo 读取系统CPU个数:
在这里插入图片描述

平均负载和CPU使用率的关系

cpu使用率是单位时间内CPU繁忙情况的统计,并不能和平均负载完全对应
CPU密集型进程,使用大量cpu会导致平均负载升高,此时两者一致
IO密集型进程,等待IO也会导致平均负载升高,但cpu使用率不一定很高
大量等待CPU的进程调度也会导致平均负载升高,此时的cpu使用率会比较高

你可能感兴趣的:(Linux性能优化)