Come trovo il processo con il carico più elevato?


10

Ho un VPS single core con una media di carico che a volte supera i 25. Quando arriva a questo, diventa insopportabilmente lento e anche i comandi vengono eseguiti dash, che è più veloce e utilizza meno RAM di bash, richiede un po 'di tempo per essere eseguito. Come posso rintracciare quale processo sta causando il carico elevato?


2
sudo apt install htopoffre un utile strumento in modalità testo per questo scopo (più intuitivo rispetto allo standard top). Ma topva bene se vuoi una piccola impronta.
sudodus,

2
La lunghezza della coda di caricamento indica quanti processi sono pronti per l'uso della CPU. Questo potrebbe non essere necessariamente un singolo processo che causa il problema.
Thorbjørn Ravn Andersen,

Risposte:


16

È possibile installare htop. La cosa positiva htopè che ti mostrerà il tuo utilizzo per CPU, oltre a un grafico testuale significativo della tua memoria e l'utilizzo dello swap in alto.

Per installare htop:

sudo apt-get install htop

Avviarlo:

htop

inserisci qui la descrizione dell'immagine

Premere F6per ordinare i processi, quindi utilizzando il tasto di navigazione è possibile scegliere PERCENT_CPUe premere Invio.

inserisci qui la descrizione dell'immagine

Oppure puoi usare topin questo modo ( fonte ):

top -b -n 1 | head -n 12

2
Come scorciatoia, è possibile utilizzare Pper ordinare in base all'utilizzo del processore, Mper la memoria o Tper il tempo e tper tornare al layout dell'albero.
Delta

È interessante notare che htopha un supporto di base per il mouse. Se fai clic sulle colonne, ti permetterà di ordinare anche per loro (se non sbaglio). Ci sono alcune altre operazioni che funzionano con il mouse.
Ismael Miguel,

11

Quanto segue viene semplicemente rubato da Unix.SE: trova il processo che richiede il massimo utilizzo della CPU se l'utilizzo della CPU è superiore al 60%? , sebbene ovviamente adattato a questa domanda.

elenca i processi in base all'utilizzo specifico della CPU

ps ahux --sort=-c | awk '{if($3>0.0)printf"%s %6d %s\n",$3,$2,$11}'

Questo fornisce un elenco dei processi che hanno un >0.0% di utilizzo della CPU , è possibile modificare questo valore in base alle proprie esigenze, ad es >50.0. Ogni riga contiene l'utilizzo della CPU in percentuale, il PID e il file del processo.

elenca i processi con il maggior utilizzo di CPU

ps ahux --sort=-c | awk 'NR<=5{printf"%s %6d %s\n",$3,$2,$11}'

Questo mostra i primi 5 ( NR<=5) processi che attualmente causano il maggior carico della CPU.


1

Ieri stavo studiando awke ho giocato con le altre due risposte. Ecco il risultato:

  • Ottieni solo il processo con l'utilizzo della CPU più elevato, utilizzando ps aux:

    ps auxh | awk -v max=0 '{if($3>max){CPU=$3; PID=$2; NAME=$11; max=$3}} END{printf "%5s %6d %s\n",CPU,PID,NAME}'
    
  • Ottieni i tre processi con l'utilizzo della CPU più elevato, utilizzando top:

    top -b -n 1 | awk 'NR>7 && NR<11 {printf "top: %5s %6d %s %s\n",$9,$1,$12,$13}'
    
  • Ottieni i tre processi con l'utilizzo della CPU più elevato, utilizzando ps aux:

    ps auxh --sort=-c | awk 'NR<=3 {printf "ps:  %5s %6d %s\n",$3,$2,$11}'
    

Ho provato a eseguire gli ultimi due comandi contemporaneamente (con <command>; wait; <command>e <command> & <command> &), ma poi ho capito che non è possibile affatto :)


Riferimenti:


L'ultimo non mostra il processo con il maggior utilizzo di CPU, ma inizia con il secondo, probabilmente intendevi NR>=2lì - risulta che psfornisce l'opzione hche omette la riga di intestazione, vedi la mia risposta aggiornata.
dessert,

@dessert, hai ragione, prima lo era NR>=2, ma NR>1è breve :) Ho aggiornato la risposta.
pa4080,

1

Usa il topcomando

top- visualizza i processi Linux

Il programma principale fornisce una visualizzazione dinamica in tempo reale di un sistema in esecuzione. Può visualizzare informazioni di riepilogo del sistema, nonché un elenco di processi o thread attualmente gestiti dal kernel Linux. I tipi di informazioni di riepilogo del sistema visualizzate e i tipi, l'ordine e la dimensione delle informazioni visualizzate per i processi sono tutti configurabili dall'utente e tale configurazione può essere resa persistente attraverso i riavvii.

fonte

buon tutorial su YouTube

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.