Co to jest obciążenie systemu?


13

W mojej pracy mamy repozytorium danych z uruchomionym interfejsem CLI Ubuntu 12.04.03, a ponieważ sprawdzałem je dziś rano, gdy się zalogowałem, zamiast podawać mi normalne informacje, powiedział, że nie można wyświetlić informacji, ponieważ obciążenie systemu przekracza 2 i Zastanawiałem się, co to znaczy? Właśnie go ponownie uruchomiłem, ponieważ nie reaguje. Czy ma to coś wspólnego z procesem uruchamiania i uruchamiania wszystkiego?

Odpowiedzi:


17

Uruchom polecenia toplub uptime:

$ uptime
 19:36:03 up 5 days,  9:12,  8 users,  load average: 0.05, 0.16, 0.21
$ top -bn1 | head -1
top - 19:36:07 up 5 days,  9:13,  8 users,  load average: 0.05, 0.16, 0.21

Podane tutaj średnie obciążenia to :

/proc/loadavg
          The  first  three  fields  in this file are load average figures
          giving the number of jobs in the run queue (state R) or  waiting
          for disk I/O (state D) averaged over 1, 5, and 15 minutes.  They
          are the same as the load average numbers given by uptime(1)  and
          other  programs. 

Rozważ moje średnie obciążenia: 0.05, 0.16, 0.21
oznacza to, że w ostatniej chwili średnio 0,05 procesów czekało na zasoby.

Czy należy się martwić, że średnia wartość obciążenia wynosi 2? Ogólnie rzecz biorąc, jeśli średnia obciążenie jest większa niż liczba dostępnych procesorów, to jakiś proces musiał bezczynnie czekać na gniazdo procesora.

Jeśli średnia wartość obciążenia jest mniejsza niż wydajność nproc, nie musisz się martwić.

Zobacz także: Co oznacza średnia wartość obciążenia w unix / linux? Jak zauważa Braiam, procesy nie muszą czekać tylko na procesor: zrozumienie średniego obciążenia vs. użycie procesora


To bardzo pomocne, ale zaraz po ponownym uruchomieniu powinno działać tak gorąco, biorąc pod uwagę, że nie widzieliśmy tego wcześniej? Działa z dwurdzeniowym procesorem AMD Athlon (tm) 64 X2 4200+ i nie obsługuje grafiki ani dodatkowych procesów.
Sean G,

@SeanG może, w zależności od tego, co jeszcze działa. To może być wydarzenie jednorazowe. Jeśli zdarza się to wielokrotnie, użyj czegoś takiego jak program rozruchowy, aby zobaczyć, co się dzieje podczas rozruchu.
muru

„Oznacza to, że w ciągu ostatniej minuty procesor oczekiwał średnio 0,05.” w rzeczywistości jest to niekompletne, zasobem może być dowolny sprzęt, a nie tylko procesor. Może to być dysk, sieć, GPU itp.
Braiam

@Braiam true (uczyniłem to stwierdzenie zbyt uproszczonym). Natknąłem się na to q, gdy ładowałem google, ale nie pomyślałem, aby to uwzględnić.
muru

Zaraz po ponownym uruchomieniu średnia wartość obciążenia może być naprawdę wysoka, ponieważ system właśnie przeszedł przez intensywną sekwencję inicjowania. Jak wyjaśniono w odpowiedzi, liczba minut spada do normy. Zaległe prace anakronowe mogą wydłużyć ten okres.
Emil Jeřábek 3.0

7

Obciążenie systemu lub obciążenie systemu Średnie

Jest to kolejka uruchomieniowa, tj. Kolejka procesów oczekujących na dostępność zasobu (procesora, we / wy itp.).

Traktuj jeden rdzeń cpujako pojedynczy pas ruchu z mostem i procesem jak samochody.

Teraz w tej sytuacji obciążenie systemu wynosi

  • 0.0 - Jeśli na drodze nie ma ruchu.
  • 1.0 -Jeśli ruch na drodze jest dokładnie przepustowością mostu.
  • Więcej niż 1 - Jeśli ruch drogowy jest większy niż przepustowość mostu, a samochody muszą czekać na przejazd przez most.

Ta liczba nie jest znormalizowana zgodnie z Twoim cpu. W systemie wieloprocesorowym obciążenie 2 oznacza 100% wykorzystania, gdy korzystamy z dwurdzeniowego procesora, obciążenie 4 oznacza 100% wykorzystania, jeśli używamy czterordzeniowego.

Możesz uzyskać obciążenie systemu za pomocą

  • uptime
  • cat /proc/loadavg
  • top

    $ uptime 22:49:47 do 11:47, 4 użytkowników, średnie obciążenie: 2,20, 1,03, 0,82

Tutaj ostatnie trzy liczby reprezentujące średnią obciążenie systemu odpowiednio przez 1, 5 i 15 minut.

Powyższy przykład wskazuje, że średnio 2,20 procesów czekało na zaplanowanie w kolejce uruchomieniowej mierzonej w ostatniej chwili.


To nie wyjaśnia, jaka jest średnia obciążenia.
Braiam

dodał to w odpowiedzi.
g_p

2

Obciążenie systemu jest odpowiednie do liczby rdzeni procesora, na przykład jeśli masz procesor czterordzeniowy (4 rdzenie), wartość 1 oznacza, że ​​obciążenie systemu wynosi 25%, a 4 oznacza 100%.


To nie wyjaśnia, co to jest średnie obciążenie, i jest błędne w związku między czasem% procesora a średnią obciążeniem.
Braiam

0

Jeśli wpiszesz czas bezczynności terminala , zobaczysz coś takiego: średnia ładowanie i trzy kolumny cyfr, które są ładowaniami od jednej, pięciu i piętnastu minut. Jeśli masz procesor dwurdzeniowy 2 oznacza 100% wykorzystania, 1 oznacza 50% itd.


To nie wyjaśnia, co to jest średnie obciążenie, i jest błędne w związku między czasem% procesora a średnią obciążeniem.
Braiam

1
Tak. Z ręcznego czasu pracy: średnia wartość obciążenia 1 oznacza, że ​​system z jednym procesorem jest cały czas ładowany, natomiast w systemie z 4 procesorami oznacza to, że przez 75% czasu był bezczynny.
EdiD,

Nie ma związku między obciążeniem procesora a średnią obciążeniem. Sprawdź ponownie.
Braiam

0

Obciążenie systemu 2,0 nie jest bardzo wysokie. W systemie wielordzeniowym procesor może być nawet częściowo bezczynny.

Średnia obciążeń jest miarą obciążenia procesora rdzeniem pod względem liczby procesów, które chcą go jednocześnie wykorzystać.

Następujące zakładają procesor z jednym rdzeniem (z jednym wątkiem):

  • 0,0

    Procesor nic nie robi. Gdyby proces zaczął używać procesora, byłby to jedyny, który go używa.

  • 1.0

    Procesor jest w maksymalnym użyciu, ale między procesami o wykorzystanie procesora nie ma rywalizacji. Oznacza to, że działa tylko jeden proces, więc jest w stanie odzyskać 100% czasu procesora. Alternatywnie działa wiele procesów, ale żaden nie żąda 100% mocy procesora, a ich łączne użycie procesora stanowi 100%. Wszystkie nadal działają tak szybko, jak by działały, nawet gdyby procesor był całkowicie dla nich.

  • Większy niż 1,0

    Procesor jest w maksymalnym użyciu i istnieje wiele procesów, które chcą go używać jednocześnie, więc działają wolniej niż w przeciwnym razie byłyby w stanie uruchomić, gdyby miały wyłączne wykorzystanie procesora. Na przykład średnia wartość obciążenia 3,0 wskazuje, że procesy działają z jedną trzecią prędkości, którą chcą uruchomić. Średnia wartość obciążenia 50,0 wskazuje, że procesy działają z szybkością 1/50, którą chcą uruchomić, ze względu na wszystkie inne uruchomione procesy. Oznacza to, że liczby wyższe niż 1,0 wskazują, że dostępny procesor jest dzielony między coraz bardziej aktywne procesy.

Posiadanie procesora wielordzeniowego nie zmienia znaczenia liczb, ale zmienia sposób ich interpretacji. Na przykład, jeśli masz 4-rdzeniowy procesor, wówczas obciążenie 1,0 jest nadal równoważne jednemu procesowi wykorzystującemu 100% procesora na jednym rdzeniu, ale istnieją trzy inne rdzenie. Tak więc na czterordzeniowym procesorze punkt maksymalnej wydajności wynosi 4,0, a nie 1,0, a momentem, w którym wszystko działa z wydajnością 1/3, jest 12,0, a nie 3,0. Aby zwiększyć złożoność, pojedynczy proces może mieć więcej niż jeden wątek, z których każdy żąda własnego procesora. Tak więc pojedynczy proces może wykorzystywać 100% wszystkich 4 rdzeni, jeśli jest wielowątkowy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.