什么是Load Average
在UNIX系统中,系统负载Load是对当前CPU工作量的度量,表示当前正在运行的进程数加上等待(排队)运行的进程数之和,也被称为运行队列长度。
Load Average 表示一段时间 (1 分钟、5分钟、15分钟) 内的平均 Load 。
查看负载方式
uptime、top、w命令都可以查看机器的负载信息。
uptime
uptime命令显示的信息依次为:当前时间、系统运行时长、当前登陆用户数量、系统在最近1分钟、5分钟和15分钟内的平均负载。
$ uptime
22:37:35 up 331 days, 11:15, 3 users, load average: 0.79, 1.17, 1.33
w
w命令的主要功能是显示目前登入系统的用户信息。显示信息依次为:当前时间,系统运行时长,当前登陆用户数量,系统在最近1分钟、5分钟和15分钟的平均负载。然后是每个用户的各项数据,项目显示顺序如下:登录帐号、终端名称、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。
$ w
22:45:27 up 331 days, 11:22, 3 users, load average: 0.99, 0.83, 1.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 192.168.98.160 19:31 3:09m 0.08s 0.08s -bash
root pts/3 192.168.98.160 19:36 2:20m 0.06s 0.06s -bash
root pts/5 10.1.0.4 22:45 7.00s 0.04s 0.00s w
top
top是常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
$ top
top - 23:42:47 up 331 days, 12:20, 4 users, load average: 0.30, 0.63, 0.74
Tasks: 239 total, 1 running, 238 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.3 us, 0.8 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16328004 total, 10506952 free, 2409532 used, 3411520 buff/cache
KiB Swap: 16777212 total, 15103752 free, 1673460 used. 13547832 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1764 gdm 20 0 799280 85356 524 S 12.5 0.5 6710:51 gsd-color
1111 root 20 0 231288 2292 772 S 6.2 0.0 1007:47 snmpd
7283 root 20 0 162300 2440 1544 R 6.2 0.0 0:00.01 top
1 root 20 0 191864 3316 1608 S 0.0 0.0 164:43.22 systemd
2 root 20 0 0 0 0 S 0.0 0.0 3:15.58 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 42:54.28 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 6:04.06 migration/0
机器正常负载范围
在单核处理器时的一些经验法则
当系统负荷持续大于0.7,你必须开始调查了,问题出在哪里,防止情况恶化。
当系统负荷持续大于1.0,你必须动手寻找解决办法,把这个值降下来。
当系统负荷达到5.0,就表明你的系统有很严重的问题,长时间没有响应,或者接近死机了。你不应该让系统达到这个值。
在多核处理器时的负载阈值是不一样的
对一般的系统来说,是根据cpu数量去判断系统是否已经过载(Over Load)的。
如果我们认为0.7算是单核机器负载的安全线的话,那么四核机器的负载最好保持在3(4*0.7 = 2.8)以下。
根据三个Load Average来分析负载趋势
一般情况下,1分钟系统负荷表示最近的暂时现象。15分钟系统负荷表示是持续现象,并非暂时问题。
如果load15较高,而load1较低,可以认为情况有所好转。反之,情况可能在恶化。