【程序员必备小知识-性能基础9】操作系统的平均负载

211 阅读2分钟

引言

平均负载顾名思义就是单位时间的cpu使用率,也可以简单理解为平均使用进程,但是这个平均负载到底是什么?有什么意义?就借着这篇文章简单的了解一下吧。

平均负载的定义

在Linux操作系统中,每次发现系统运行缓慢时,我们都使用uptime去看看系统的load情况,相信大家对这些字段都很熟悉,它们分别是当前时间,系统运行时间和正在登陆用户数,后面就是平均负载(Load average)了,分别代表1分钟、5分钟和15分钟。 image.png

平均负载就是系统在单位时间内的平均进程,这类进程是正处于运行状态不可中断状态下的活跃进程,其中运行状态指正在被cpu执行或等待被cpu执行,而不可中断状态指的是处于内核状态下的进程,常见的就是设备I/O,设备I/O是不能被中断的,这是为了保证磁盘和进程内数据的一致性。

平均负载简单理解就是平均活跃进程数,理想情况呢,就是一个cpu平均一个进程,如果有2个进程但是只有一个cpu,那意味着有一半进程抢不到cpu,如果2个cpu那刚刚好,如果是4个cpu,那还空闲一半。

平均负载的合理数

前面提到,平均负载最理想的情况是等于 CPU 个数。那要知道情况,我们首先得知道cpu数,可以通过grep 'model name' /proc/cpuinfo | wc -l命令查看。

image.png

有了cpu数,我们就可以看看平均负载,平均负载不能看单个,而要看总体趋势,如果1分钟、5分钟和15分钟的平均负载变化不大,那说明系统负载很平稳,但是如果1分钟的值要远小于15分钟的负载,那就说明负载在减小,反之负载则在增加,如果1分钟的值超过了cpu总数,则说明设备过载。