Definition of Load Average in Unix


Load Average: When the scheduler says, "I have a timeslice to hand out", how many processes are lined up, ready to take that slice (on average)?

Discussion: It means nothing more, and nothing less.

What matters after understanding that is that there is no simple intuitive understanding of what that means. If you have a single CPU-bound process, it always wants a timeslice, and will contribute 1 to your load. That process may have priority 20 and lose to everything else, so the system is just as fast, but your load average still went up by 1. Or that process may just be doing a busy wait - the equivalent of a kid continually asking, "Are we there yet?" Doesn't matter how useless it is, it raised the load average by 1.

You could have 10 I/O bound processes that tie up resources, locks, RAM, and other critical stuff. Since they are always waiting for something, they don't contribute to load no matter how much they are stressing out your system.

Depending on what constitutes that load, a load of 0.9 could mean that your system is a hair away from melting down, or a load of 40 could mean that you're doing OK.

For all intents and purposes, load is a meaningless number. It is easy to measure, so people always look at it. But unless you understand what your machine is doing and why it is registering load, there is no way to tell what any particular figure means.

note: see also information for Linux.


source: Use Perl, in a comment by btilly.
keywords: performance, unix, define load average, load average defined
date: 03/09/2005