怎么理解“平均负载”? 进行分析等

Posted egrep

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么理解“平均负载”? 进行分析等相关的知识,希望对你有一定的参考价值。

每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或者 uptime 命令,来了解系统的负载情况。比如像下面这样,我在命令行里输入了 uptime 命令,系统也随即给出了结果。

[[email protected] ~]# uptime
15:34:11 up 140 days, 1:23, 6 users, load average: 0.03, 0.09, 2.75

以上命令说明

02:34:03              // 当前时间
up 2 days, 20:14      // 系统运行时间
1 user                // 正在登录用户数
load average: 0.03, 0.09, 2.75
而最后三个数字呢,依次则是过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average)。

如何观测和理解这个最常见、也是最重要的系统指标。

一:什么是平均负载

 简单来说,平均负载是指单位时间内,系统处于可运行状态不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。这里我先解释下,可运行状态和不可中断状态这俩词儿。

二:可运行状态

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

二:不可中断状态

不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。

举个例子:

比如,当一个进程向磁盘读写数据时,为了保证数据的一致性,在得到磁盘回复前,它是不能被其他进程或者中断打断的,这个时候的进程就处于不可中断状态。如果此时的进程被打断了,就容易出现磁盘数据与进程数据不一致的问题。

所以,不可中断状态实际上是系统对进程和硬件设备的一种保护机制

因此,你可以简单理解为,平均负载其实就是平均活跃进程数。平均活跃进程数,直观上的理解就是单位时间内的活跃进程数,但它实际上是活跃进程数的指数衰减平均值。这个“指数衰减平均”的详细含义你不用计较,这只是系统的一种更快速的计算方式,你把它直接当成活跃进程数的平均值也没问题。

 

以上是关于怎么理解“平均负载”? 进行分析等的主要内容,如果未能解决你的问题,请参考以下文章

1.怎样理解平均负载?

02 | 基础篇:到底应该怎么理解“平均负载”?

02 | 基础篇:到底应该怎么理解“平均负载”?

到底应该怎么理解“平均负载”?

02 基础篇:到底应该怎么理解“平均负载”?

一文理解 Linux 平均负载,附排查工具