Perché il Mac è lento e come diagnosticarlo
Un Mac lento è un problema di latenza, e diversi colli di bottiglia possono dare la stessa sensazione: contesa della CPU, pressione sulla memoria, capacità di archiviazione, I/O del disco, limiti termici o un servizio di rete lento. L’obiettivo è capire quale risorsa è satura mentre il rallentamento si manifesta. Uno snapshot preso dopo che il problema è sparito non dimostra quasi nulla.
Ecco come funzionano i pezzi e i comandi per osservarli.
Il mito della RAM: la memoria libera non è l’obiettivo
L’istinto sbagliato più comune è guardare la «memoria libera» e allarmarsi quando è bassa. Su macOS, poca memoria libera è normale e salutare. La RAM inutilizzata è RAM sprecata, quindi il kernel la tiene volutamente piena: i file usati di recente restano in cache in memoria così la prossima lettura è istantanea, e quella cache viene rilasciata nel momento in cui un programma ha bisogno dello spazio.
macOS comprime anche la memoria. Da OS X Mavericks, quando la RAM si riempie, il sistema comprime le pagine inattive sul posto invece di scriverle subito su disco, così alcuni dati che altrimenti andrebbero nello swap più lento possono restare in RAM. Puoi osservare i contatori direttamente:
vm_stat
I numeri sono in pagine, con la dimensione della pagina stampata vicino all’inizio. Ciò che conta non è Pages free, ma la memory pressure e il tasso di variazione. Swapins e Swapouts sono cumulativi dall’avvio, quindi un numero grande da solo non prova un problema attuale. Esegui il comando due volte durante il rallentamento oppure usa Activity Monitor per vedere se swap e pressure continuano a salire.
La panoramica migliore è la memory pressure nella scheda Memory di Activity Monitor. La guida alla memoria di Apple definisce il verde come uso efficiente, il giallo come possibile pressure e il rosso come bisogno di più RAM. Leggi quel grafico insieme all’andamento dello swap e all’elenco delle app, non solo al valore di memoria libera.
Trova il vero collo di bottiglia
Apri Activity Monitor e leggine le schede in ordine, oppure usa la riga di comando:
- CPU: ordina per utilizzo con
top -o cpuin Terminal, o con la scheda CPU di Activity Monitor. Nota che %CPU è per core, quindi un valore sopra il 100% indica un processo che usa più core: normale per una build o un export, sospetto per un’app in idle. - Memory: il grafico della pressure, come sopra.
- Capacità del disco: esegui
df -h /. APFS usa lo spazio libero per swap e file temporanei, e un’unità quasi piena può bloccare gli aggiornamenti o lasciare un carico di lavoro senza spazio temporaneo. Non esiste una percentuale di sicurezza universale, quindi confronta la capacità disponibile con l’operazione che fallisce. Se è questo il problema, scopri cosa sta riempiendo il disco e libera spazio. - I/O del disco: nella scheda Disk di Activity Monitor, ordina per Bytes Written o Bytes Read e osserva il grafico mentre avviene la pausa.
iostat -w 1offre una vista live da riga di comando. Una sincronizzazione, un backup, una build o un’unità esterna in avaria possono causare latenza anche quando resta molta capacità. - Calore: trattato più sotto.
- Latenza di rete o di servizio: se solo un’app basata sul cloud è lenta mentre le app locali restano reattive, controlla la sua attività di rete e lo stato del servizio prima di modificare il Mac. Non ogni interazione lenta è un collo di bottiglia hardware.
Queste letture distinguono un collo di bottiglia di sistema da un’unica app lenta. Indovinare con una pulizia generica può cambiare più variabili e nascondere la causa reale.
Un processo fuori controllo
Se la CPU è al massimo, top -o cpu mostra il colpevole in cima. Un’app bloccata, un client di sincronizzazione che ri-scansiona o un helper in background in un loop sono i casi tipici. Se lo riconosci come sicuro da terminare, chiudilo. Se si riavvia da solo in pochi secondi, ha un job launchd dietro (vedi l’ultima sezione) e chiudere solo il processo non basta.
Fai attenzione ai processi di sistema. Un kernel_task in salita spesso significa che il sistema usa deliberatamente tempo di CPU per rallentare il chip quando è caldo, non un bug da uccidere. È un sintomo termico, non di memoria o di app.
Thermal throttling
Quando un Mac si surriscalda, il chip abbassa la frequenza di clock per raffreddarsi e il lavoro pesante sembra lento. Puoi confermarlo invece di indovinare:
pmset -g therm
Questo riporta lo stato registrato di avvisi termici e di prestazioni quando macOS lo espone. Per un campione dettagliato di potenza e pressione termica, usa:
sudo powermetrics --samplers thermal,cpu_power -n 1
Interpreta le tendenze sotto lo stesso carico di lavoro, non trattare una singola temperatura come un limite universale. Se il throttling è il collo di bottiglia, la soluzione è carico di lavoro, flusso d’aria o assistenza, non la pulizia della cache. Una ventola rumorosa può essere un indizio a supporto, ma anche i Mac senza ventola possono fare throttling, e perché la ventola del MacBook è rumorosa spiega cosa fare.
Spotlight e elementi di login
Due cause in background meritano di essere escluse. Dopo un aggiornamento di macOS, una migrazione o uno spostamento massiccio di file, Spotlight può ricostruire parti del proprio indice. mdutil -s / indica se l’indicizzazione è abilitata, non se una ricostruzione è attiva in quel momento. CPU e I/O del disco sostenuti da mds o mdworker, più l’UI di progresso di Spotlight, forniscono il contesto. La durata dipende dal volume di dati, dalla velocità dello storage, dai permessi e dal continuo rimescolamento dei file, quindi non c’è una promessa affidabile di «un’ora».
L’altro è il carico all’avvio. System Settings > General > Login Items & Extensions separa le app aperte al login dal software autorizzato a girare in background. Questi possono usare Service Management, launchd, estensioni o helper delle app. Disattiva un elemento noto alla volta e verifica che l’app proprietaria continui a funzionare.
Dietro le quinte: come un monitor legge tutto questo senza aggravarlo
Puoi saltare questa parte, ma spiega perché il consiglio sulla memoria di sopra è corretto e perché un monitor live non diventa a sua volta uno dei processi lenti. La CLI open-source di Mole (cmd/status) e l’app nativa per Mac usano collector separati, ma entrambe separano le letture veloci dall’arricchimento lento.
La CLI compila il valore di memoria in cache che la sua libreria di metriche multipiattaforma non può fornire su macOS parsando le pagine basate su file da vm_stat e moltiplicando per la dimensione di pagina riportata. Legge lo stato di pressure del sistema da memory_pressure invece di derivarlo dai byte liberi. L’app nativa arriva allo stesso risultato senza passare dalla shell: legge i contatori VM con host_statistics64 e il livello di pressure tramite kern.memorystatus_vm_pressure_level.
Restare leggeri è l’altra metà. Un monitor che rimisurasse tutto a ogni tick diventerebbe esso stesso un problema di prestazioni, quindi il collector campiona a livelli:
I numeri economici (CPU, memoria e rete) si aggiornano circa una volta al secondo. L’arricchimento di processi, GPU e disco gira su tick più pesanti, mentre le sonde di hardware e dispositivi riusano cache a vita più lunga. Le cronologie a dimensione fissa tengono solo i campioni recenti che disegnano le sparkline. Così un HUD nella barra dei menu può aggiornarsi in tempo reale senza trasformare il monitor nel carico di lavoro che stai cercando di diagnosticare.
Dove uno strumento aiuta
Tutto quanto sopra è leggibile con i comandi integrati, ed è questo il punto: non serve un’app per diagnosticare un Mac lento. Ciò che un’app ti risparmia è il montaggio. La vista Status di Mole mostra CPU, memory pressure, disco, temperatura e i processi principali su un’unica schermata con un readout live nella barra dei menu, e un clic su un processo spiega cosa l’ha avviato, se sta tenendo il Mac sveglio e cosa sta leggendo e scrivendo: lo stesso dettaglio di launchd e I/O che altrimenti raccoglieresti a mano. È una comodità rispetto ai comandi, non un sostituto della loro comprensione.
Qualunque cosa usi, evita le pulizie «velocizza» a un clic che cambiano stato non correlato. Non puoi creare un guadagno di prestazioni durevole forzando fuori dalla RAM una cache di file utile. Riavviare può essere una diagnostica utile per un processo bloccato ed è richiesto da alcuni aggiornamenti, ma macOS gestisce già memoria e swap in continuo.
Una diagnosi ripetibile
Riproduci il rallentamento, osserva CPU, memory pressure, capacità del disco, I/O del disco, stato termico e attività di rete, poi cambia una sola variabile. Misura di nuovo sotto lo stesso carico di lavoro. Così «il Mac sembra lento» diventa una causa falsificabile e si evita di scambiare un riavvio o una pulizia temporanea per una correzione permanente.