先理解一下平均负载的含义:
平均负载是指单位时间内,系统处于可运行状态和不可中断状态的进程数,也可以看成平均活跃进程数。
可运行状态的进程:
正在使用CPU或者正在等待CPU处理的进程,ps 命令看到的,处于 R 状态(Running 或 Runnable)的进程。
不可中断状态的进程:
正处于不可以打断的内核态关键流程中的进程,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。
不可中断状态是对程序的一种保护,要是程序在向磁盘读写数据被打断了,那么就有可能出现进程数据和磁盘数据不一致的情况。
需要注意的是平均负载与CPU的使用没有直接关系。还需要注意的是,看系统平均负载需要结合CPU的个数。
接下来使用uptime
结合数据说话:
23:11:42
表明现在的时间,29 days, 2:12
表明到现在为止,系统运行的时间,4 users
表明现在有4个用户登录系统,0.01, 0.02, 0.10
表明1分钟
的平均负载是0.01
,5分钟的平均负载是0.02
,15分钟
的平均负载是0.10
。使用man uptime
可以看到对于uptime
的解释。
uptime gives a one line display of the following information. The cur‐rent time, how long the system has been running, how many users arecurrently logged on, and the system load averages for the past 1, 5,and 15 minutes.This is the same information contained in the header line displayed byw(1).System load averages is the average number of processes that are eitherin a runnable or uninterruptable state. A process in a runnable stateis either using the CPU or waiting to use the CPU. A process in unin‐terruptable state is waiting for some I/O access, eg waiting for disk.The averages are taken over the three time intervals. Load averagesare not normalized for the number of CPUs in a system, so a load aver‐age of 1 means a single CPU system is loaded all the time while on a 4CPU system it means it was idle 75% of the time.Translate the above into Chinese
翻译过来的意思如下:
uptime
命令会以一行显示以下信息:当前时间,系统运行时间,当前登录的用户数,以及过去1分钟、5分钟和15分钟的系统负载平均值。这与 w(1) 命令显示的标题行中包含的信息相同。
系统负载平均值是可运行或不可中断状态的进程的平均数量。可运行状态的进程正在使用CPU或等待使用CPU。不可中断状态的进程正在等待某些I/O访问,例如等待磁盘。负载平均值是在这三个时间间隔内取得的。负载平均值并没有对系统中的CPU数量进行标准化,因此负载平均值为1表示单个CPU系统一直处于满负荷状态,而在4个CPU的系统中,表示系统75%的时间处于空闲状态。
最理想的状态状态就是平均活跃进程数等于CPU个数,这样的话,每一个CPU上都运行着一个进程。若平均负载是2的话,就需要看CPU的个数了。
CPU个数是1的话,意味着还有一半的进程竞争不到CPU。
CPU个数是2的话,意味着CPU正好被使用完,是理想中状态。
CPU个数是4的话,意味着CPU还有一半是空闲。
此文章为9月Day 16学习笔记,内容来源于极客时间《Linux 性能优化实战》