Dlaczego / jak „uptime” pokazuje obciążenie procesora> 1?

14

Mam 1 rdzeniowy procesor zainstalowany na moim komputerze. Czasami uptimepokazuje obciążenie> 1. Jak to jest możliwe i co to oznacza?

EDYCJA: Wartości idą w górę 2.4

Richard Rodriguez
źródło
Uwaga: loadróżni się od load average. Jak powiedział @ michas, obciążenie jest wskaźnikiem liczby procesów oczekujących na wykonanie, ale średnie obciążenie to średnie obciążenie systemu obliczone w danym okresie 1, 5 i 15 minut.
Mohammad Kholghi,

Odpowiedzi:

20

Obciążenie nie jest równe zużyciu procesora. Jest to w zasadzie wskaźnik liczby procesów oczekujących na wykonanie.

Kilka przydatnych linków:

michas
źródło
Och, ok, to ma sens. Czy istnieje sposób, aby uzyskać użycie procesora, a nie ładować?
Richard Rodriguez
Ogólnie rzecz biorąc, możesz mieć wiele procesorów. Jeden może być całkowicie zajęty, a drugi po prostu bezczynnie. Rzuć okiem na htop„graficzny” przegląd.
michas
2
to jest niepoprawne. Średnia obciążenia jest miarą określającą liczbę procesów gotowych do wykonania. Obejmuje to procesy, które czekają, ale także procesy, które są obecnie wykonywane . Jeśli więc średnia obciążenia wynosi 1, oznacza to, że średnio (dla danego okresu) był używany jeden procesor; jeśli jest dwa, oznacza to, że średnio były używane dwa procesory. Jako taka, konkretna średnia obciążenia dla systemu z jednym procesorem nie jest tym samym, co ta sama średnia obciążenia dla systemu z wieloma rdzeniami.
Wouter Verhelst,
7

uptimepokazuje obciążenie systemu (nie do końca użycie procesora), co opisano man uptimeponiżej:

Średnie obciążenia systemu to średnia liczba procesów, które są w stanie uruchomionym lub nieprzerwanym. Proces w stanie wykonalnym albo korzysta z procesora, albo czeka na użycie procesora. Proces w stanie nieprzerwanym czeka na pewien dostęp do I / O, np. Na dysk. Średnie są brane z trzech przedziałów czasowych. Średnie obciążenia nie są znormalizowane dla liczby procesorów w systemie, więc średnia wartość obciążenia 1 oznacza, że ​​cały system z procesorem jest ładowany przez cały czas, podczas gdy w systemie z 4 procesorami oznacza to, że był bezczynny przez 75% czasu.

Dopóki obciążenie jest mniejsze niż liczba posiadanych rdzeni procesora, powinno być w porządku. Jeśli wzrośnie powyżej, oznacza to, że Twój system nie jest w stanie poradzić sobie z obciążeniem „w czasie rzeczywistym”. Dlatego niektóre procesy muszą czekać, aby uzyskać czas procesora (lub dostęp IO). Zostanie utworzona linia oczekiwania.

Jeśli masz ładowanie 2,7, oznacza to, że średnio (w ciągu ostatnich 1, 5 lub 15 minut, w zależności od wartości, na którą patrzysz), procesy 2.7 próbują wykonać równolegle, ale masz tylko 1 rdzeń, więc twój system jest przeciążony. Prosisz o to za dużo.

Nie panikuj, może to nie być taki problem: po zakończeniu pracy rzeczy zwykle wracają do normy.

Totor
źródło
4

Czas działania pokazuje wynik /proc/loadavgdla obciążeń.

Strona man 5 procmówi

   /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. 

Dzięki temu możesz mieć duże obciążenia, nawet jeśli masz 0% użycia procesora. Jeden rdzeń może uzyskać obciążenie do 100% lub 1 w systemach wieloprocesorowych.

Zobacz także Wysokie obciążenie procesora podczas operacji we / wy

Społeczność
źródło
-2
 ps aux --sort -rss |head -15

To posortuje 15 procesów najczęściej używanych przez pamięć rss

Spowoduje to również posortowanie najczęściej używanych procesów według procesora i pamięci

 ps aux --sort -pid |head -15

Jeśli masz 1 obciążenie procesora więcej niż 1 ostrzega, sprawdź listę procesów i zobacz, kto z nich używa najwięcej procesora i pamięci RAM

Kiedy zobaczysz, że najczęściej używane procesy starają się zobaczyć, z którymi plikami są otwarte

lsof -p [PID_most_used]

Byłoby również miło, gdybyś podał ouptut z najwyższego polecenia

klerk
źródło
1
rss nie jest związany ze średnim obciążeniem, o czym jesteś?
Wouter Verhelst,