Co oznacza średnia wartość obciążenia w systemach Unix / Linux?

68

Jeśli uruchomię uptime, dostanę coś takiego:

10:50:30 up 366 days, 23:27,  1 user,  load average: 1.27, 2.06, 1.54

Co oznaczają te liczby na końcu? Strona podręcznika mówi mi, że to „średnia obciążenia systemu w ciągu ostatnich 1, 5 i 15 minut”. Ale jaka jest skala? Czy 1,27 jest wysoki? Niska? Czy to zależy od mojego systemu?

John Fouhy
źródło
2
Zastanawiam się, jak należy interpretować średnią obciążenia w wielordzeniowym systemie CPU.
nagul
3
Zasadniczo należy podzielić średnią obciążenie przez liczbę procesorów w systemach wielordzeniowych. Tak więc obciążenie 2,0 w ​​systemie dwurdzeniowym jest mniej więcej równe 1,0 w systemie jednordzeniowym. Nie jest to do końca prawdą, z powodu takich rzeczy, jak dyskowe operacje we / wy i utrudnienia w sieci, ale obciążenie i tak jest dość trudnym oszacowaniem.
Mike Cooper,
1
Uważam, że ten blog jest bardzo przydatny: Zrozumienie obciążenia procesora Linux
atmaish

Odpowiedzi:

59

Średnia obciążeń jest miernikiem średniej liczby procesów, jednocześnie wymagając uwagi procesora.

Ogólnie rzecz biorąc, jeśli jeden proces działa na 100% i tak po prostu trwa przez całą wieczność, możesz oczekiwać, że wszystkie wartości zbliżą się do „1”.

Zasadniczo jest to tak wydajne przetwarzanie, jak to tylko możliwe, bez strat spowodowanych przełączaniem kontekstu.

Jednak w nowoczesnych wielozadaniowych systemach operacyjnych istnieje więcej niż jedna rzecz, która wymaga uwagi procesora, więc przy umiarkowanym obciążeniu z jednego procesu średnia wartość obciążenia powinna wynosić od 0,8 do 2.

Jeśli zdecydujesz się zrobić coś szalonego, na przykład zbudować jądro make -j 60, pomimo posiadania tylko jednego procesora logicznego, średnia ładowność przyspieszy do 60, a komputer będzie dla ciebie niesamowicie bezużyteczny (śmierć przez zmianę kontekstu).

Należy również zauważyć, że ta metryka jest niezależna od liczby rdzeni / procesorów. W przypadku systemu z dwoma rdzeniami uruchomienie jednego procesu, który zużywa cały rdzeń (pozostawiając drugi bezczynny), powoduje obciążenie średnio o wartości 1,0. Aby zdecydować, jak obciążony jest system, musisz znać liczbę rdzeni i sam dokonać podziału.

Kent Fredric
źródło
1
Zatem średnia wartość obciążenia mniejsza niż 1 oznacza „Procesy zazwyczaj nigdy nie muszą czekać”? Czy mogę zinterpretować średnią wartość obciążenia 2 jako „Każdy proces trwa około dwa razy dłużej niż w idealnych warunkach”? (Wiem, że są też wejścia / wyjścia, o które należy się martwić)
John Fouhy,
Tak, to ma sens, ignorując IO;)
Kent Fredric
@KentFredric „Ogólnie rzecz biorąc, jest to tak wydajne przetwarzanie, jak to tylko możliwe, bez strat z powodu przełączników kontekstu.” ... Czy 1 proces działa w 100% przez cały czas w ogóle? Z pewnością brakuje mi tutaj czegoś fundamentalnego. Czy mógłbyś wyjaśnić, co miałeś na myśli? Jestem zdezorientowany, ponieważ jak można opisać jeden proces blokujący wszystkie zasoby procesora?
Geek
2
Wiem, że proces działający w 100% nie wydaje się zbyt „wydajny”, ale jeśli proces samowolnie ograniczy się do użycia tylko 20%, zajęłoby to 5 razy dłużej. Zatem wydajność oznacza „optymalne wykorzystanie zasobów”.
Kent Fredric,
1
Tak więc w przypadku systemu z rdzeniem typu n średnia wartość obciążenia n oznacza, że ​​każdy rdzeń obsługuje proces w 100% czasu i dlatego jest najbardziej wydajny?
joshreesjones
9

mężczyzna 5 proc:

/ proc / loadavg Pierwsze trzy pola w tym pliku to średnie wartości obciążenia, podające liczbę zadań w kolejce uruchomień (stan R) lub oczekujących na we / wy dysku (stan D) średnio w ciągu 1, 5 i 15 minut . Są one takie same, jak średnie wartości obciążenia podane przez czas pracy (1) i inne programy.

fho
źródło
3

Zasadniczo mierzy liczbę aktywnych procesów w danym czasie, ale mierniki użyte do ich obliczenia różnią się w niektórych systemach. Jedyny artykuł, który znalazłem dość dobrze to wyjaśnia, to ten .

John T.
źródło
2
Ten link ma datę 03. Od tego czasu wyszedł Linux 2.6. (Zauważysz, że używają 2.0, Ouch.) Wskaźniki wydają się teraz nieco inne w praktyce niż te podane na tej stronie.
Kent Fredric
Oto jeden z końca 2006 roku, który nie różni się tak bardzo od powiązanego artykułu: linuxjournal.com/article/9001
nagul
Twój link nadal działa, a jego dane wyjściowe pochodzą z 2001 r. 😂 Jak wspaniale
MS Berends
2

Cytuję z referencji kursu:

Średnia obciążeń to średnia z liczby obciążeń w danym okresie czasu. Uwzględnia procesy, które są:

  • Aktywnie działa na procesorze.
  • Uważany za działający, ale czeka na udostępnienie procesora.
  • Uśpienie: tzn. Oczekiwanie na dostęp do pewnego rodzaju zasobów (zwykle I / O).

Cytuję dalej o interpretowaniu średniej obciążenia :

Średnia obciążenia jest wyświetlana przy użyciu trzech różnych zestawów liczb, jak pokazano w poniższym przykładzie:

Ostatnią informacją jest średnie obciążenie systemu. Zakładając, że nasz system jest systemem jednoprocesorowym, wartość 0,25 oznacza, że ​​w ostatniej chwili system był wykorzystywany średnio w 25%. 0,12 na następnej pozycji oznacza, że ​​w ciągu ostatnich 5 minut system był wykorzystywany średnio w 12%; a 0,15 w końcowej pozycji oznacza, że ​​w ciągu ostatnich 15 minut średnio system był wykorzystywany w 15%. Gdybyśmy zobaczyli wartość 1,00 na drugiej pozycji, oznaczałoby to, że system z jednym procesorem był używany w 100% średnio w ciągu ostatnich 5 minut; to dobrze, jeśli chcemy w pełni korzystać z systemu. Wartość powyżej 1,00 dla systemu jednoprocesorowego oznacza, że ​​system był nadmiernie wykorzystywany: procesor wymagał więcej procesów niż procesor był dostępny.

Gdybyśmy mieli więcej niż jeden procesor, powiedzmy cztero-procesorowy, podzielilibyśmy średnie wartości obciążenia przez liczbę procesorów. W tym przypadku, na przykład, obserwowanie 1-minutowej średniej obciążenia wynoszącej 4,00 oznacza, że ​​system jako całość był w 100% (4,00 / 4) wykorzystany w ostatniej minucie.

Krótkoterminowe wzrosty zwykle nie stanowią problemu. Wysoki pik, który widzisz, jest prawdopodobnie wybuchem aktywności, a nie nowym poziomem. Na przykład podczas uruchamiania rozpoczyna się wiele procesów, a następnie aktywność się uspokaja. Jeśli wysoki pik jest widoczny w 5 i 15 minutach średnich obciążeń, może to być powodem do niepokoju.

Ely
źródło
Przydałoby się dodać link do referencji.
Pierz
To jest trudne. Jest to kurs online od Linux Foundation przygotowujący do egzaminu LFCS.
Ely,