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 processoPID, l’identificativo del processo%CPU, la percentuale di CPU utilizzata%MEM, la percentuale di memoria occupataSTAT, lo stato del processoCOMMAND, 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:
- Mostrare file nascosti macOS Terminale: comando rapido
- Disattivare riapertura finestre macOS: metodo rapido
- Personalizzare anteprime icone Finder con defaults
- Percorso completo Finder macOS nella barra del titolo
- Disattivare DS_Store unità di rete Mac: metodo rapido
- Ricerca metadati Spotlight Terminale con mdls e mdfind
- Ricostruire indice Spotlight macOS Terminale
- Controllare consumo energetico Mac Terminale con powermetrics
- Controllare la pressione memoria macOS Terminale
- Come misurare l’avvio lento delle app su Mac
- Leggere log macOS da Terminale: comandi utili
- Rapporto processi bloccati macOS spindump: come crearlo
- Verificare firma applicazioni macOS Terminale
- Permessi privacy delle app Mac: come controllarli
- Gestire programmi avvio automatico macOS con launchctl
- Creare servizio launchd macOS per attività periodiche
- Confrontare cartelle macOS Terminale con diff
- Rinominare file in massa su macOS dal Terminale
- Proteggere file sensibili su macOS dal Terminale
