Pegasus InfoCorp: Web site design and web software development company

11.7. Load

The output of uptime can be used to determine both the system load and uptime, but its output is exceptionally difficult to parse. On a Linux system, this is made much easier to deal with by the existence of the /proc/ file system. cat /proc/loadavg will show you the one minute, five minute, and fifteen minute load average, as well as a couple other numbers I don't know the meaning of (anyone care to fill me in?).

Getting the load from /proc/loadavg is easy (thanks to Jerry Peek for reminding me of this simple method): read one five fifteen rest < /proc/loadavg. Just print the value you want.

For those without the /proc/ filesystem, you can use uptime | sed -e "s/.*load average: \(.*\...\), \(.*\...\), \(.*\...\)/\1/" -e "s/ //g" and replace "\1" with "\2" or "\3" depending if you want the one minute, five minute, or fifteen minute load average. This is a remarkably ugly regular expression: send suggestions if you have a better one.

Relative speed: 'uptime | sed -e "s/.*load average: \(.*\...\), \(.*\...\), \(.*\...\)/\1/" -e "s/ //g" ' takes about 0.21 seconds on an unloaded 486SX25.