Load (computing)
From Wikipedia, the free encyclopedia
The system load is a UNIX computing term that describes the amount of work that a computer system is doing. The load average is the system load over a period of time. It is conventionally given as three numbers that represent the system load during the last one, five, and fifteen minute periods.
Contents |
[edit] Load calculation under Unix(-like) systems
An idle computer has a load number of 0. Each process that is using CPU or waiting for CPU adds to the load number by 1. Some systems may also include threads in uninterruptible sleep states (usually waiting for disk activity).
The load average is calculated as the exponentially damped moving average of the load number. The three values of load average refer to the past one, five, and fifteen minutes of system operation.
For single CPU systems that are CPU-bound, one can think of load average as a percentage of system utilization during the respective time period. For systems with multiple CPUs, the number needs to be divided by the number of CPUs in order to get a percentage.
For example a load average of "3.73 7.98 0.50" on a single CPU system can be interpreted as:
- the CPU was overloaded by 373% (needed to do 373% as much work as it can do in a minute) during the last minute.
- it was only busy half of the time for the last fifteen minutes
Rather, this means that this CPU could have handled all of the work scheduled for the last minute if it were 3.73 times as fast (or if there were 3.73 times as many more CPUs), but over the last fifteen minutes it was twice as fast as it needed to be to keep up.
Conversely, in a system with four CPUs, a load average of 3.73 would indicate that there were on average 3.73 processes running or queued, that is, that the system is not lacking in this respect because 3.73 is still lower than 4.
On modern UNIX systems, the treatment of threading with respect to load averages varies. Some systems treat threads as processes for the purposes of load average calculation: each thread waiting to run will add 1 to the load. However, other systems, especially systems implementing M:N threading, use different strategies, such as counting the process exactly once for the purpose of load (regardless of the number of threads), or counting only threads currently exposed by the user thread scheduler to the kernel, which may depend on the level of concurrency set on the process.
[edit] Load calculation under Windows systems
On Microsoft Windows PC systems, the system load is given as an instantaneous percentage of CPU utilization.
[edit] Important things to note
Note that the load average is not a measure solely of CPU utilization, it is also a measure of disk I/O and, sometimes, network performance. It is only one factor in overall system performance (and is often the least significant).
[edit] Other meanings
[edit] Load (program linking and loading)
When loading compiled programs into computer memory, they are linked to the relevant program resources, and then the fully resolved codes were loaded into computer memory, for execution. This type of program is often called a linking loader.
[edit] Load (database loading)
When loading data into a database management system, a program designed to read input data, and then place it into database tables, is called a loader.
[edit] See also
- uptime for load average
- top for an overall system view
- iostat for IO statistics
- netstat for network statistics
- mpstat for CPU statistics
[edit] External links
- UNIX® Load Average by Dr. Neil Gunther (This includes Linux)