Trovare i processi che rallentano il Mac da Terminale

I comandi top e ps permettono di trovare i processi che rallentano il Mac da Terminale senza installare applicazioni aggiuntive. top mostra in tempo reale l’utilizzo di CPU e memoria, mentre ps offre un elenco dettagliato dei processi attivi e dei relativi identificativi. La combinazione dei due strumenti aiuta a distinguere un’applicazione che usa troppa CPU da un processo che occupa molta RAM. Prima di terminare un processo è però necessario identificarlo con attenzione, perché forzare un componente di macOS può causare perdita di dati o instabilità.

Come usare top per vedere i processi più pesanti

top è disponibile in macOS e aggiorna periodicamente l’elenco dei processi attivi. Apri Terminale dalla cartella Applicazioni > Utility oppure cercandolo con Spotlight, quindi esegui:

top

Nella schermata iniziale sono presenti informazioni come il carico medio del sistema, il numero di processi e le percentuali di utilizzo della CPU. La tabella sottostante contiene normalmente il PID, cioè l’identificativo numerico del processo, la percentuale CPU, la percentuale di memoria e il nome del processo.

Per ordinare i processi in base all’uso della CPU, usa:

top -o cpu

Il processo che compare in cima non è necessariamente difettoso. Un’applicazione può usare molta CPU durante l’esportazione di un video, la compilazione di un progetto o l’indicizzazione dei file; il problema diventa più significativo quando l’utilizzo resta elevato anche senza attività apparenti.

Per ottenere una fotografia del sistema invece di una schermata che continua ad aggiornarsi, utilizza:

top -l 1 -o cpu -n 15

L’opzione -l 1 richiede una sola rilevazione, -o cpu ordina i risultati per CPU e -n 15 limita l’output ai primi 15 processi. Per osservare l’andamento per alcuni secondi puoi usare più rilevazioni:

top -l 5 -s 2 -o cpu -n 15

In questo caso macOS acquisisce cinque campioni a intervalli di due secondi. Il confronto tra più campioni è più utile di una singola lettura, perché consente di capire se un processo è costantemente impegnato oppure sta svolgendo un’operazione temporanea.

top può mostrare valori CPU superiori al 100% su un Mac con più core. Questo comportamento indica che il processo sta usando più core contemporaneamente e non rappresenta automaticamente un errore.

Come usare ps per filtrare e identificare i processi

Il comando ps visualizza i processi in un formato più adatto alla consultazione e all’elaborazione con altri comandi Unix. Per elencare i processi di tutti gli utenti con le informazioni principali, esegui:

ps aux

L’opzione a include i processi degli utenti, u mostra un formato dettagliato e x comprende anche i processi senza terminale associato. Le colonne più importanti sono:

  • USER, l’utente proprietario del processo
  • PID, l’identificativo del processo
  • %CPU, la percentuale di CPU utilizzata
  • %MEM, la percentuale di memoria occupata
  • STAT, lo stato del processo
  • COMMAND, il comando o il percorso associato

Per visualizzare direttamente i processi ordinati dal maggiore al minore utilizzo della CPU, puoi combinare ps, sort e head:

ps aux | sort -nrk 3 | head -20

sort -nrk 3 ordina numericamente e in ordine decrescente la terza colonna, che nel formato ps aux corrisponde a %CPU. head -20 mostra soltanto le prime 20 righe, evitando un elenco troppo lungo.

Per ordinare invece in base alla memoria occupata, modifica la colonna usata da sort:

ps aux | sort -nrk 4 | head -20

La memoria indicata da %MEM rappresenta la quota di RAM utilizzata dal processo rispetto alla memoria disponibile. Un processo con una percentuale elevata può essere normale se appartiene a un’applicazione che gestisce file molto grandi; è più utile osservare se l’uso cresce continuamente e se macOS inizia a utilizzare intensamente la memoria virtuale.

Per ottenere un elenco più leggibile con PID, processo padre, CPU, memoria e durata, usa:

ps -Ao pid,ppid,%cpu,%mem,etime,command | sort -nrk 3 | head -20

Il campo PPID identifica il processo padre, mentre ETIME indica da quanto tempo il processo è attivo. Queste informazioni sono utili quando un’applicazione genera più processi collegati oppure quando un servizio viene riavviato automaticamente.

Come capire quale processo sta rallentando macOS

Un processo sospetto deve essere valutato considerando nome, durata e andamento delle risorse. Un uso elevato della CPU per pochi secondi è spesso legato a un’attività prevista, mentre un processo che mantiene valori alti per diversi minuti senza un’operazione visibile merita un controllo.

Per cercare un processo specifico nell’elenco, puoi usare grep:

ps aux | grep -i nome-app

Il parametro -i ignora la differenza tra lettere maiuscole e minuscole. La riga relativa a grep può comparire nei risultati perché contiene il termine cercato; per evitarla puoi usare:

ps aux | grep -i '[n]ome-app'

Per consultare i dettagli di un singolo PID, sostituisci 12345 con l’identificativo reale:

ps -p 12345 -o pid,ppid,user,%cpu,%mem,etime,stat,command

Il PID può cambiare ogni volta che l’applicazione viene riaperta, quindi non va memorizzato come identificativo permanente. Se il nome del processo non è chiaro, il percorso completo mostrato dalla colonna COMMAND può aiutare a capire se appartiene a un’app installata dall’utente o a un componente di macOS.

Non terminare automaticamente i processi di sistema come kernel_task, launchd, WindowServer o altri servizi essenziali. kernel_task, in particolare, può aumentare il proprio utilizzo CPU per contribuire alla gestione della temperatura del Mac; forzarlo non è una soluzione sicura.

Come chiudere un processo senza rischiare dati

La procedura più sicura consiste nel chiudere prima l’applicazione dal suo menu oppure con Comando-Opzione-Esc, selezionando l’app e scegliendo Uscita forzata. Il Terminale dovrebbe essere usato quando l’applicazione non risponde o quando il processo non è visibile nell’interfaccia grafica.

Per chiedere a un processo di terminare normalmente, usa il segnale TERM:

kill 12345

Il comando kill invia per impostazione predefinita un segnale di terminazione al PID indicato. Se il processo non si chiude dopo alcuni secondi, puoi forzarne la chiusura con:

kill -KILL 12345

SIGKILL interrompe il processo senza consentirgli di salvare dati o completare le operazioni in corso. Va quindi utilizzato soltanto come ultima risorsa e mai su processi di sistema non identificati con certezza.

Dopo la chiusura, controlla nuovamente l’elenco con top o ps. Se lo stesso processo ricompare subito, potrebbe essere avviato da un elemento di login, da un agente in background, da un’estensione o dall’applicazione principale. In questo caso è preferibile aggiornare o disinstallare il software responsabile, invece di terminare ripetutamente il processo.

Per chiudere un’applicazione in base al nome puoi usare pkill, ma il comando può interessare più processi con nomi simili:

pkill -TERM -x NomeProcesso

L’opzione -x richiede una corrispondenza esatta del nome. Anche in questo caso è importante verificare prima il nome visualizzato da ps, perché il nome dell’applicazione e quello del processo possono essere diversi.

La combinazione di top e ps consente di trovare i processi che rallentano il Mac dal Terminale con dati aggiornati e senza strumenti aggiuntivi.

Per approfondire, consulta la documentazione ufficiale.

Potrebbe interessarti anche:

FAQ

top aggiorna continuamente i dati e mostra l’attività in tempo reale, mentre ps genera un elenco statico dei processi presenti in un determinato momento.

Esegui top -o cpu oppure ps aux | sort -nrk 3 | head -20. Il processo in cima all’elenco è quello con il maggiore utilizzo CPU rilevato.

Non necessariamente. Su un Mac con più core un processo può usare contemporaneamente più core e superare il 100%; bisogna osservare anche la durata e il comportamento del sistema.

No. kill -KILL può causare perdita di dati e instabilità se usato su processi di sistema o su applicazioni con file aperti.

Altri articoli di questa serie:

PDF Strumenti PDF gratis Nel browser, senza upload Apri gli strumenti