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)
źródło
Odpowiedzi:
Ta różnica sięga pierwotnego Uniksa Berkeley i wynika z faktu, że jądro nie jest w stanie utrzymać średniej kroczącej; w tym celu musiałby zachować dużą liczbę wcześniejszych odczytów, a zwłaszcza w dawnych czasach po prostu nie było na to pamięci. Zamiast tego zastosowany algorytm ma tę zaletę, że całe jądro musi zachować w wyniku wcześniejszych obliczeń.
Należy pamiętać, że algorytm był nieco bliżej prawdy, gdy prędkości komputera i odpowiadające mu cykle zegarowe były mierzone w dziesiątkach MHz zamiast GHz; w dzisiejszych czasach rozbieżności są znacznie dłuższe.
źródło
uptime
iw
, jak twierdził; musiałeś spojrzeć na źródła jądra, aby dowiedzieć się, że tak naprawdę nie było to prawdą.1min/5min/15min
nie mają sensu. Określają czas, po którym wpływ prądu obciążenia spada o pewien stały współczynnik (prawdopodobnie e = 2,71 .. a może 2). Po prostu spróbuj.