Quanto può arrivare il carico di sistema?


12

Ogni volta che accedo ai miei server tramite SSH, mi vengono visualizzate alcune informazioni sul server. Indirizzo IP IE, uso di scambio, utilizzo della memoria, ecc. Una delle altre cose che mi fa lampeggiare è Carico di sistema. Ora la maggior parte delle volte il numero di caricamento del sistema è <0.10 ma altre volte l'ho visto salire a 0,89 (di solito all'avvio).

Questo fa sorgere la domanda: quanto può arrivare il carico di sistema? Ad esempio è possibile che salga fino a 2,00 anche 100,00?


La parte frazionaria indica l'utilizzo della CPU, la parte decimale il numero di processi in attesa. Qualcosa del genere 100.89sarebbe più probabile di100.00
Lekensteyn,

possibile duplicato della media del carico accettabile
Caleb,

@Caleb, non sono d'accordo che sia un duplicato. È possibile che l'OP intendesse chiedere qualcosa di simile, ad esempio "quanto può arrivare il carico del sistema (e comunque eseguirlo in modo accettabile)?". Ma come espresso, non è la stessa domanda.
Ciclope,

@Cyclops: Se l'OP non avesse intenzione di chiedere livelli accettabili sui server e si ponesse una domanda puramente teorica su come funzionavano i sistemi * nix, non sarebbe fuori tema qui e un candidato per la migrazione a unix.SE?
Caleb,

Risposte:


17

Questo fa sorgere la domanda: quanto può arrivare il carico di sistema? Ad esempio è possibile che salga fino a 2,00 anche 100,00?

Assolutamente. Guardando la uptimepagina man:

   System load averages is the average number of processes that are either
   in a runnable or uninterruptable state.  A process in a runnable  state
   is  either  using the CPU or waiting to use the CPU. A process in unin‐
   terruptable state is waiting for some I/O access, eg waiting for  disk.
   The  averages  are  taken over the three time intervals.  Load averages
   are not normalized for the number of CPUs in a system, so a load  aver‐
   age  of 1 means a single CPU system is loaded all the time while on a 4
   CPU system it means it was idle 75% of the time.

Quindi, se hai molti processi in attesa di esecuzione (o molti processi sono bloccati in attesa di I / O), avrai una media di carico elevato. Questo articolo ne parla in modo più dettagliato e contiene collegamenti utili ad altre risorse.

Su un sistema senza carico, la media del carico sarà generalmente compresa nell'intervallo 0 <= load_average <= n , dove n è il numero di core sul sistema.


1
Sì, in attesa di I / O è un modo semplice per creare un sacco di carico: montare una condivisione nfs, girare il server nfs, avviare 10.000 processi che provano a toccare qualcosa sulla condivisione nfs: boom, carico di 10.000
Jens Timmerman,

5

Ho visto i sistemi vivi colpire le migliaia. Load Average: una misura relativa basata sui processi di attesa di quanta concorrenza c'è per attirare l'attenzione dei kernel e ottenere un po 'di tempo sulla CPU. Se la macchina è sommersa da lavori o arresti anomali, ciò può richiedere molto tempo.

Il livello accettabile dipende dalla macchina, dal numero di core, dal tipo di scheduler del kernel in uso e dai lavori che ci si aspetta che faccia. Ho alcune macchine che sono abbastanza felici nella gamma ~ 10 ma impantanano se colpiscono ~ 40-50. Altri diventano notevolmente ritardati a 2 e sarebbero inutilizzabili a 10.

Non è insolito che il carico sia elevato durante l'avvio poiché molte cose vengono fatte contemporaneamente e la macchina si sta caricando. Considererei ~ 1 un carico abbastanza normale da colpire durante l'avvio di un desktop Linux, per poi stabilizzarsi a ~ 0.1 senza fare nulla.


3
Correzione minore: la media del carico non è una misura del tempo. È il numero medio di processi in attesa. Non c'è modo di distinguere tra 1) un processo che registra una CPU e un altro che non la ottiene mai, e 2) due processi che si scambiano continuamente. Sarebbero entrambi carichi di 1,0.
Plutor,

1
Ho visto 1500+ su un Linux box seriamente sbiadito. Poi è morto.
Tom O'Connor,

3

Su Linux, i valori medi di caricamento del sistema sono costituiti da processi in uno di tre stati diversi. In generale, si potrebbe dire che la media del carico è la quantità di processi in attesa di tempo CPU o che consumano tempo CPU. I tre valori nella panoramica della media del carico sono la media del carico nell'ultimo minuto, negli ultimi 5 minuti e negli ultimi 15 minuti.

I tre diversi stati dei processi conteggiati nella media del carico sono: (1) processi in esecuzione sulla CPU, (2) processi in attesa del tempo della CPU e (3) processi in modalità di sospensione ininterrotta. L'ultima categoria, pur non generando carico sulla CPU, può aumentare significativamente la media del carico del sistema.

Ad esempio, una dozzina di processi in attesa di letture da un disco molto occupato o non disponibile genererà una media di carico di 12 come processi in modalità di sospensione ininterrotta, ma nel frattempo la CPU può essere perfettamente inattiva.

Quindi, sì, la media del carico può facilmente salire a due cifre. Quanto male dipende piuttosto dal tuo hardware. Se hai 16 core, avere 16 processi in attesa del tempo della CPU non è poi così male. Su una macchina single core, avere 3 processi in attesa del tempo della CPU può essere molto negativo.


Penso che sia negativo solo se sono processi legati alla CPU, il che è raro. La maggior parte dei grandi processi sono associati a IO o / e RAM.
Peter - Ripristina Monica il

3

Crea un semplice processo C eseguendo infiniti loop in 10000 thread. Dagli una priorità molto bassa (+20). Il tuo carico sarà 10000, mentre il tuo sistema sarà ancora utilizzabile. Utilizzerà solo pochissima RAM (al massimo alcuni megabyte).

Sebbene sia una configurazione abbastanza rara, nei sistemi reali non lo troverai.

Il caricamento del sistema indica solo il numero medio di processi in attesa di un intervallo di tempo della CPU, né meno né più. Ecco un'altra risposta sul modo corretto di interpretare il caricamento del sistema .

Nell'esperienza quotidiana, un carico superiore a 30+ significa soprattutto qualche problema.


2

Pochi secondi dopo aver ucciso un processo che stava consumando un vecchio CPU 450Mhz:

inserisci qui la descrizione dell'immagine


1

Quando avvii ripetutamente processi che si bloccano immediatamente, il carico sarà elevato quanto il numero di processi che riesci ad avviare. Supponendo che tu abbia abbastanza RAM da non scambiare il sistema, il sistema rimarrà anche reattivo poiché il carico dovuto ai processi di blocco non è davvero dannoso.


1

Ho visto un server in esecuzione a> 200 di carico.

Vorrei stress test e vedere.

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.