Content deleted Content added
Adding local short description: "Amount of computational work that a computer system performs", overriding Wikidata description "amount of computational work performed" (Shortdesc helper) |
m →Reckoning CPU load: Hz is correct upper case, while lower as hertz. |
||
(27 intermediate revisions by 21 users not shown) | |||
Line 1:
{{Short description|Amount of computational work that a computer system performs}}
{{Use dmy dates|date=
{{
[[File:Big-load.png|thumb|[[htop]] displaying a significant computing load (top right: ''Load average:'')
== Unix-style load calculation ==
All Unix and Unix-like systems generate a dimensionless [[Software metric|metric]] of three "load average" numbers in the [[kernel (
<syntaxhighlight lang="console">
$ uptime
14:34:03 up 10:43, 4 users, load average: 0.06, 0.11, 0.09
</syntaxhighlight>
The [[W (Unix)|<code>w</code>]] and [[
In operating systems based on the [[Linux kernel]], To explore this kind of information in depth, according to the Linux's [[Filesystem Hierarchy Standard]], architecture-dependent information are exposed on the file <code>/proc/stat</code>.<ref>{{Cite web
|url = https://www.kernel.org/doc/html/latest/admin-guide/cpu-load.html
|title = CPU load
|access-date=2023-10-04
}}</ref><ref>{{Cite web
|url = https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html
|title = /proc
|access-date=2023-10-04
|website = Linux Filesystem Hierarchy
}}</ref><ref>{{Cite web
|url = https://www.kernel.org/doc/html/latest/filesystems/proc.html#miscellaneous-kernel-statistics-in-proc-stat
|title = Miscellaneous kernel statistics in /proc/stat
|access-date=2023-10-04
}}</ref>
An idle computer has a load number of 0 (the idle process
Systems calculate the load ''average'' as the [[Moving average#Exponential moving average|exponentially damped/weighted moving average]] of the load ''number''. The three values of load average refer to the past one, five, and fifteen minutes of system operation.<ref name="drdobbs">{{cite web |url=
Mathematically speaking, all three values always average all the system load since the system started up. They all decay exponentially, but they decay at different ''speeds'': they decay exponentially by ''e'' after 1, 5, and 15 minutes respectively. Hence, the 1-minute load average consists of 63% (more precisely: 1 - 1/''e'') of the load from the last minute and 37% (1/''e'') of the average load since start up, excluding the last minute. For the 5- and 15-minute load averages, the same 63%/37% ratio is computed over 5 minutes and 15 minutes, respectively. Therefore, it is not technically accurate that the 1-minute load average only includes the last 60 seconds of activity, as it includes 37% of the activity from the past, but it is correct to state that it includes ''mostly'' the last minute.
=== Interpretation ===
Line 23 ⟶ 41:
For example, one can interpret a load average of "1.73 0.60 7.98" on a single-CPU system as:
*
*
*
This means that this system (CPU, disk, memory, etc.) could have handled all
In a system with four CPUs, a load average of 3.73 would indicate that there were, on average, 3.73 processes ready to run, and each one could be scheduled into a CPU.
On modern UNIX systems, the treatment of [[Thread (
== CPU load
The comparative study of different load indices carried out by Ferrari et al.<ref name="Empirical load">Ferrari, Domenico; and Zhou, Songnian; "[http://www.eecs.berkeley.edu/Pubs/TechRpts/1987/CSD-87-353.pdf An Empirical Investigation of Load Indices For Load Balancing Applications]", Proceedings of Performance '87, the 12th International Symposium on Computer Performance Modeling, Measurement, and Evaluation, North Holland Publishers, Amsterdam,
== Reckoning CPU load ==
On Linux systems, the load-average is not calculated on each clock tick, but driven by a variable value that is based on the HZ frequency setting and tested on each clock tick. This setting defines the kernel clock tick rate in [[
<syntaxhighlight lang="c">
Line 76 ⟶ 94:
The "sampled" calculation of load averages is a somewhat common behavior; FreeBSD, too, only refreshes the value every five seconds. The interval is usually taken to not be exact so that they do not collect processes that are scheduled to fire at a certain moment.<ref>{{cite web |title=How is load average calculated on FreeBSD? |url=https://unix.stackexchange.com/a/342778 |website=Unix & Linux Stack Exchange}}</ref>
A post on the Linux mailing list considers its {{tt|+1}} tick insufficient to avoid
== Other system performance commands ==
Other commands for assessing system performance include:
* <code>[[uptime]]</code>{{Snd}} the system reliability and load average
* <code>[[
*
*
* <code>dool</code> (formerly <code>dstat</code>),<ref>{{cite web |url=https://github.com/scottchiefbaker/dool |title=dool - Python3 compatible clone of dstat |last=Baker |first=Scott |date=September 28, 2022 |website=[[GitHub]] |access-date=November 22, 2022 |quote=...Dag Wieers ceased development of Dstat...}}</ref> <code>atop</code>{{Snd}} helps correlate all existing resource data for processes, memory, paging, block I/O, traps, and CPU activity.
*
* <code>nethogs</code>{{Snd}} interactive network traffic viewer per process
* <code>iotop</code>{{Snd}} interactive I/O viewer<ref>
*
*
* <code>[[mpstat]]</code>{{Snd}} for CPU statistics
* <code>tload</code>{{Snd}} load average graph for terminal
Line 98 ⟶ 117:
* [[CPU usage]]
==
{{reflist}}▼
== External links ==
* {{cite web
|author = Brendan Gregg
|title = Linux Load Averages: Solving the Mystery
|url =
|date = 8 August 2017
|access-date = 2018-01-22
Line 115 ⟶ 137:
* {{cite web
|title = Understanding Linux CPU Load{{Snd}} when should you be worried?
|url =
|author = Andre Lewis
|date = 31 July 2009
Line 123 ⟶ 145:
|author = Ray Walker
|title = Examining Load Average
|url =
|publisher = Linux Journal
|date = 1 December 2006
Line 134 ⟶ 156:
|publisher = LoadAvg
}}
▲{{reflist}}
[[Category:Operating system technology]]
|