Cosa significa caricare media su Unix / Linux?


68

Se corro uptime, ottengo qualcosa del genere:

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

Cosa significano quei numeri alla fine? La pagina man mi dice che è "la media del carico del sistema negli ultimi 1, 5 e 15 minuti". Ma qual è la scala? 1.27 è alto? Basso? Dipende dal mio sistema?


2
Mi chiedo come debba essere interpretata la media del carico su un sistema CPU multi-core.
nagul

3
Come regola generale, è necessario dividere la media del carico per il numero di CPU per sistemi multi core. Quindi un carico di 2,0 su un sistema dual core equivale all'incirca a 1,0 su un sistema single core. Questo non è del tutto vero, a causa di cose come l'I / O del disco e il traffico di rete, ma il carico è comunque una stima approssimativa.
Mike Cooper,

1
Ho trovato questo blog davvero utile: Comprendere il carico della CPU Linux
atmaish,

Risposte:


59

La media del carico è un indicatore del numero medio di processi che richiedono contemporaneamente l'attenzione della CPU.

Generalmente, se hai un processo in esecuzione al 100% e rimane così per l'eternità, puoi aspettarti che tutti i valori si avvicinino a "1".

In genere, si tratta di un'elaborazione quanto più efficiente possibile, nessuna perdita dovuta ai cambi di contesto.

Tuttavia, sui moderni sistemi operativi multitasking, c'è più di una cosa che richiede attenzione della CPU, quindi con una moderata quantità di carico da un singolo processo, la media del carico dovrebbe fluttuare tra 0,8 e 2.

Se decidi di fare qualcosa di folle, come costruire un kernel con make -j 60, nonostante abbia solo un processore logico, la media del carico si precipiterebbe verso 60 e il tuo computer sarebbe incredibilmente inutile per te (morte per cambio di contesto).

Inoltre, questa metrica è indipendente da quanti core / CPU ci sono. Per un sistema a due core, l'esecuzione di un processo che consuma un intero core (lasciando l'altro inattivo) produce una media di carico di 1,0. Per decidere quanto è caricato un sistema, devi conoscere il numero di core ed eseguire tu stesso la divisione.


1
Quindi una media di carico inferiore a 1 significa "I processi generalmente non devono mai aspettare"? Posso interpretare una media di carico di 2 come "Ogni processo impiega circa il doppio di quanto sarebbe nelle condizioni ideali"? (So ​​che c'è anche l'I / O di cui preoccuparsi)
John Fouhy,

Sì, ha senso, ignorando IO che è;)
Kent Fredric,

@KentFredric "In generale, si tratta di un'elaborazione quanto più efficiente possibile, senza perdite dovute a cambi di contesto." ... 1 processo è sempre in esecuzione al 100%? Sicuramente mi manca qualcosa di fondamentale qui. Potresti spiegare cosa intendevi per favore? Sono confuso: come si può definire efficiente un processo che registra tutte le risorse della CPU?
Geek,

2
So che un processo in esecuzione al 100% non sembra molto "efficiente", ma se il processo si limitasse arbitrariamente a utilizzare solo il 20%, impiegherebbe 5 volte di più. Quindi qui efficienza significa "utilizzo ottimale delle risorse".
Kent Fredric,

1
Quindi, per un sistema con n-core, una media di carico di n significa che ogni core gestisce / gestiva un processo al 100% delle volte ed è quindi più efficiente?
joshreesjones,

9

man 5 proc:

/ proc / loadavg I primi tre campi di questo file sono dati sulla media del carico che indicano il numero di lavori nella coda di esecuzione (stato R) o in attesa di I / O del disco (stato D) mediamente superiore a 1, 5 e 15 minuti . Sono gli stessi dei numeri medi di carico forniti da uptime (1) e altri programmi.


3

In generale misura il numero di processi attivi in ​​un determinato momento, ma le metriche utilizzate per calcolarlo differiscono su alcuni sistemi. L'unico articolo che ho trovato che lo spiega abbastanza bene è questo .


2
Tale link è datato '03. Da allora è uscito Linux 2.6. (Noterai che stanno usando 2.0, Ouch.) Le metriche sembrano ora essere leggermente diverse nella pratica rispetto a quelle dichiarate in quella pagina.
Kent Fredric,

Eccone uno dalla fine del '06, che non è così diverso dall'articolo collegato: linuxjournal.com/article/9001
nagul

Il tuo collegamento funziona ancora e il loro output del terminale è del 2001 😂 Fantastico
MS Berends

2

Cito da un riferimento di un corso:

La media del carico è la media del numero di carico per un determinato periodo di tempo. Tiene conto dei processi che sono:

  • In esecuzione attivamente su una CPU.
  • Considerabile eseguibile, ma in attesa della disponibilità di una CPU.
  • Sleeping: ovvero, in attesa che un tipo di risorsa (in genere, I / O) diventi disponibile.

Cito ulteriormente sull'interpretazione del carico medio :

La media del carico viene visualizzata utilizzando tre diversi set di numeri, come mostrato nell'esempio seguente:

L'ultima informazione è il carico medio del sistema. Supponendo che il nostro sistema sia un sistema a CPU singola, lo 0,25 significa che negli ultimi minuti, in media, il sistema è stato utilizzato al 25%. 0.12 nella posizione successiva significa che negli ultimi 5 minuti, in media, il sistema è stato utilizzato al 12%; e 0,15 nella posizione finale indicano che negli ultimi 15 minuti, in media, il sistema è stato utilizzato al 15%. Se vedessimo un valore di 1,00 nella seconda posizione, ciò implicherebbe che il sistema a CPU singola è stato utilizzato al 100%, in media, negli ultimi 5 minuti; questo è utile se vogliamo utilizzare completamente un sistema. Un valore superiore a 1,00 per un sistema a CPU singola implica che il sistema è stato utilizzato in modo eccessivo: c'erano più processi che richiedevano CPU di quanti ne fosse disponibile la CPU.

Se avessimo più di una CPU, diciamo un sistema quad-CPU, divideremmo i numeri medi di carico per il numero di CPU. In questo caso, ad esempio, vedere una media di carico di 1 minuto di 4,00 implica che il sistema nel suo complesso è stato utilizzato al 100% (4,00 / 4) durante l'ultimo minuto.

Gli aumenti a breve termine di solito non sono un problema. Un picco elevato che vedi è probabilmente uno scoppio di attività, non un nuovo livello. Ad esempio, all'avvio, molti processi iniziano e quindi l'attività si stabilizza. Se si osserva un picco elevato nelle medie di carico di 5 e 15 minuti, potrebbe essere motivo di preoccupazione.


Sarebbe utile aggiungere un link al tuo riferimento.
Pierz,

È difficile. È un corso online della Linux Foundation per preparare l'esame LFCS.
Ely,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.