Tim O'Reilly and Crew, p.726
平均负载试图度量任何时间的活动进程数量。作为cpu利用率的度量,平均负载是很简单的,没有精确的定义,但很有用。
Adrian Cockcroft, p.229
平均负载是当前cpu上的运行队列长度和正在运行的任务数之和。在Solaris 2.0 and 2.2平均负载不包括正在运行的任务数,这个bug在Solaris 2.3已经修正。
定义3
平均负载是变成有效状态的进程(原先等待资源排队)数加上当前运行的进程数。
定义4
Linux遵循了传统Unix的标准,它统计的load average是在一个时间段中处于可运行或处于运行状态的进程平均数量加上处于D状态的进程
(R = 运行 S = 休眠 D = 等待 )。
Linux上的load average表明的是系统的要完成的"工作", "工作"既有CPU密集的程序,也有I/O密集的程序。或者是CPU和I/O并重的程序。
定义5
通过统计运行在cpu上运行的和可运行的进程,unix统计平均负载。linux和unix一样,但是也统计在不可中断睡眠状态的进程。不可中断睡眠状态的进程通常意味着一个进程阻塞在I/o,例如等待磁盘。
平均的定义
平均负载是负载的移动平均,top显示的3个数字是1分钟,5分钟,15分钟的移动平均
linux查看平均负载
apple@ubuntu:~$ procinfo
Memory: Total Used Free Buffers
RAM: 1018580 995712 22868 66244
Swap: 522072 157592 364480
Bootup: Wed Jun 3 07:50:11 2009 Load average: 3.75 3.16 3.47 6/264 11601
user : 00:40:03.05 19.5% page in : 16083696
nice : 00:02:09.05 1.0% page out: 15227028
system: 01:35:21.93 46.4% page act: 2246522
IOwait: 00:40:05.57 19.5% page dea: 2297177
hw irq: 00:01:01.68 0.5% page flt: 6246530
sw irq: 00:01:39.03 0.8% swap in : 19640
idle : 00:25:03.91 12.2% swap out: 43581
uptime: 03:25:23.79 context : 26731214
irq 0: 193 timer irq 12: 479257 i8042
irq 1: 5460 i8042 irq 14: 1552361 ata_piix
irq 3: 6 irq 15: 0 ata_piix
irq 4: 6 irq 16: 1384413 uhci_hcd:usb5, i9
irq 6: 2 floppy irq 17: 74792 Intel ICH6
irq 7: 0 parport0 irq 18: 0 uhci_hcd:usb4
irq 8: 20419 rtc0 irq 19: 36623 uhci_hcd:usb3, et
irq 9: 0 acpi irq 23: 0 ehci_hcd:usb1, uh
sda 744351r 808004w sda6 220811r 25714w
sda1 35r 0w sda7 36342r 11954w
sda2 4r 0w sda8 4549r 2245w
sda5 839r 4w sda9 481744r 768087w
lo TX 364.71KiB RX 364.71KiB vmnet1 TX 0.00B RX 0.00B
eth0 TX 1.72MiB RX 9.80MiB vmnet8 TX 0.00B RX 0.00B
apple@ubuntu:~$ uptime
11:17:47 up 3:27, 2 users, load average: 3.81, 3.30, 3.47
apple@ubuntu:~$
平均负载的引申含义
假如系统有M个核心或者处理器而且平均负载是M,说明系统充分利用。如果平均负载大于M,说明多余的进程在被执行前必须在可运行队列中等待。
当平均负载小于M,说明系统性能不是被cpu能力限制的。
你不必担心平均负载,除非平均负载持续的高于系统核心数或者处理器数。
部分内容参考于网络资源
时间:2009-06-03 14:24
来源:Linuxeden
作者:blackspace
原文链接