Risoluzione e identificazione del sovraccarico del server su Linux
Load average è una metrica chiave per misurare le prestazioni della CPU e le prestazioni del sistema su Linux. Il carico medio del sistema non è altro che il lavoro computazionale svolto dal sistema. Questo valore viene visualizzato come numero e lo chiamiamo Load Averenge (Carico del Server). Avere sotto occhio il carico del server è fondamentale per comprendere le prestazioni del server; in caso di sovraccarico, è necessario interrompere o ottimizzare i processi che consumano quantità elevate di risorse o fornire più risorse per bilanciare il carico di lavoro.
- Comprendere la media del carico su Linux
- Esempio di carico medio
- Controlla la media del carico di sistema elevato su Linux
Comprensione della media del carico
Cos’è il caricamento del sistema in Linux? Il carico di sistema è una misura della quantità di lavoro (ovvero il numero di processi attualmente attivi e in coda) eseguiti dalla CPU come percentuale della capacità totale. Le medie di carico che rappresentano l’attività del sistema nel tempo, poiché presentano un’immagine molto più accurata dello stato del nostro sistema, sono un modo migliore per rappresentare questa metrica.
Il carico su un sistema è la quantità totale di processi in esecuzione e bloccanti. Ad esempio, se due processi erano in esecuzione e cinque erano bloccati per l’esecuzione, il carico del sistema sarebbe sette.
Il carico medio è la quantità di carico in un determinato periodo di tempo. In genere, la media del carico viene calcolata su 1 minuto, 5 minuti e 15 minuti. Ciò consente di vedere come cambia il carico nel tempo. Possiamo utilizzare il seguente comando ps -eo s,user,cmd | grep ^[RD] |wc -l per ottenere il processo in esecuzione e il processo di blocco. Dovrebbe essere uguale alla media del carico.
Un carico medio di 1,27 su un sistema con una CPU significherebbe che, in media, la CPU sta lavorando a pieno regime e un altro 27% dei processi sta aspettando il proprio turno con la CPU. Al contrario, un carico medio di 0,27 su un sistema con una CPU significherebbe che, in media, la CPU è rimasta inutilizzata per il 73% nel tempo. Su un sistema a quattro core, potremmo vedere medie di carico nell’intervallo di 2,1, che sarebbero poco più del 50% della capacità (o inutilizzate per circa il 52%).
Quindi il carico medio è correlato al numero di CPU sul nostro sistema Linux. Ad esempio, il carico medio di 20 con 20 CPU è totalmente diverso dal carico medio di 20 con 10 CPU.
Come verificare il carico medio
Abbiamo 4 modi per controllare il carico medio su Linux, utilizza i comandi qui sotto per verificare il LA del server
- cat /proc/loadavg
- uptime
- w
- top
Nella riga “Load average”, dovresti vedere un numero che è in costante aumento. Questo numero rappresenta il carico medio del sistema, che è una misura della quantità di lavoro svolto dal sistema in un dato momento. Se la media del carico di sistema è alta, significa che il tuo server è molto stressato e fatica a tenere il passo con la domanda. Ciò può causare problemi come un elevato utilizzo della CPU e prestazioni lente.
Un esempio di carico elevato della CPU sul nostro sistema di produzione. Il carico è passato a 170 per un server. Le vCPU totali per questo server sono 64.
Dopo un controllo, molti processi sono stati bloccati a causa della perdita di rete nell’archiviazione nfs. Il numero medio di carico del sistema è uguale al numero di processi bloccati. Abbiamo risolto il problema dopo aver riavviato il server.
Come correggere il medio di carico del server
Se stai riscontrando una media di carico elevata in Linux, ci sono alcune cose che puoi fare per provare a risolvere il problema. Quella che segue è una guida completa per correggere le medie di carico elevato in Linux:
- Identificare le cause dell’alto carico medio.
- Risolvi eventuali bottleneck delle risorse.
- Rivedere e ottimizzare i file di configurazione del sistema.
- Indagare e risolvere eventuali problemi software o sui siti pubblicati.
Identificare le cause di una media di carico elevata è il primo e più importante passo per risolvere il problema. Come accennato in precedenza, ci sono molte possibili cause di una media di carico elevata, quindi è importante restringere le possibilità prima di intraprendere ulteriori azioni.
La prima cosa da fare è controllare l’elenco dei processi e vedere quale processo utilizza più CPU. Puoi farlo digitando il seguente comando nel terminale: top Il comando “top” ti mostrerà un elenco di tutti i processi attualmente in esecuzione sul tuo computer e mostrerà la quantità di CPU utilizzata da ciascun processo. Se vedi un processo che utilizza molta CPU, puoi fermarlo digitando il seguente comando: kill <pid>
Il <pid> è l’ID del processo che si desidera interrompere.
Possiamo anche utilizzare il comando “netstat” per controllare le statistiche di rete. L’output del comando “netstat” ci mostrerà un elenco di connessioni di rete attive. Se sono state stabilite troppe connessioni, ciò potrebbe causare il problema della media di carico elevato.
Possiamo anche utilizzare il comando “ps” per verificare lo stato dei processi. L’output del comando “ps” ci mostrerà un elenco di tutti i processi in esecuzione sul sistema. Se ci sono troppi processi in esecuzione, ciò potrebbe causare problemi. Possiamo usare questi comandi per risolvere i problemi di rete su un sistema Linux. Utilizzando questi comandi, possiamo restringere la causa principale del problema e risolverlo.
Una volta identificate le possibili cause dell’elevato carico medio, puoi iniziare a esaminare ogni possibile soluzione finché il problema non viene risolto.
Ricorda, non esiste una soluzione valida per tutti per correggere una media di carico elevata, quindi potresti dover provare più soluzioni prima di trovare quella che funziona per la tua situazione particolare.
In alcuni casi, un carico medio elevato può essere causato da problemi software. In tal caso, dovrai esaminare il problema e determinare cosa è necessario fare per risolverlo.
Questo può spesso essere un compito più difficile rispetto alla risoluzione dei colli di bottiglia delle risorse o all’ottimizzazione dei file di configurazione del sistema, ma è importante identificare e risolvere eventuali problemi software che potrebbero causare problemi.