Do niedawna myślałem, że średnia obciążenia (jak pokazano na przykład u góry) była średnią ruchomą dla ostatnich ostatnich wartości liczby procesów w stanie „uruchomialnym” lub „uruchomionym”. A n byłoby zdefiniowane przez „długość” średniej ruchomej: ponieważ algorytm do obliczania średniej obciążenia wydaje się uruchamiać co 5 sekund, n byłby równy 12 dla średniej obciążenia 1min, 12x5 dla średniej obciążenia 5 min i 12x15 dla średniej obciążenia 15 min.
Ale potem przeczytałem ten artykuł: http://www.linuxjournal.com/article/9001 . Artykuł jest dość stary, ale ten sam algorytm jest dzisiaj zaimplementowany w jądrze Linuksa. Średnia obciążenia nie jest średnią ruchomą, ale algorytmem, dla którego nie znam nazwy. W każdym razie porównałem algorytm jądra Linuxa ze średnią ruchomą dla wyobrażonego obciążenia okresowego:
.
Istnieje ogromna różnica.
Wreszcie moje pytania to:
- Dlaczego ta implementacja została wybrana w porównaniu z prawdziwą średnią ruchomą, która ma prawdziwe znaczenie dla każdego?
- Dlaczego wszyscy mówią o „średniej 1min obciążenia”, ponieważ algorytm bierze pod uwagę znacznie więcej niż ostatnią minutę. (matematycznie wszystkie miary od momentu rozruchu; w praktyce, biorąc pod uwagę błąd zaokrąglenia - wciąż wiele miar)