ReportCrash elevato utilizzo CPU su Mac

ReportCrash elevato utilizzo CPU su Mac

David Balaban

Cos'è ReportCrash su Mac?

Su macOS, ReportCrash è il gestore di crash integrato che opera sotto il processo genitore "launchd". Ogni volta che un'app o un processo in background muore inaspettatamente, questo componente si sveglia, ispeziona l'accaduto e scrive un rapporto diagnostico su disco in modo che gli sviluppatori (e talvolta tu) possano vedere cosa è andato storto.

ReportCrash CPU drain on Mac

Tecnicamente, ReportCrash funziona in due varianti:

  • come LaunchAgent per i processi a livello utente, scrivendo rapporti nella tua cartella
    ~/Library/Logs/DiagnosticReports/;
  • come LaunchDaemon per i processi di sistema e di proprietà di root, archiviando rapporti nelle directory di log diagnostici a livello di sistema.

Nelle recenti versioni di macOS, la familiare finestra di dialogo "l'app si è chiusa inaspettatamente, inviare ad Apple?" fa parte di uno stack di reporting più ampio con Problem Reporter come front-end visibile e ReportCrash che svolge gran parte del lavoro pesante dietro le quinte.

In circostanze normali, noti a malapena questa attività. Un'app si blocca, ReportCrash interviene brevemente, scrive un log ed esce. L'utilizzo della CPU ha un picco per un momento e poi torna a zero. È così che dovrebbe funzionare.


Perché ReportCrash può monopolizzare la CPU

Quando vedi ReportCrash consumare il 50-300% della CPU (su sistemi multi-core) e riapparire costantemente in Monitoraggio Attività (Activity Monitor), non è quasi mai il vero colpevole. È il messaggero. Il vero problema è qualcos'altro che continua a bloccarsi in un ciclo stretto.

Il modello comune è:

  1. Un processo si avvia.
  2. Si blocca quasi immediatamente.
  3. launchd lo riavvia.
  4. ReportCrash si sveglia per elaborare un altro fallimento.
  5. Questo si ripete senza sosta.

ReportCrash activity monitor macOS

Poiché generare e comprimere rapporti sui crash non è un lavoro banale, un processo bloccato in questo ciclo può tenere impegnato ReportCrash tutto il giorno. Numerosi rapporti degli utenti su forum e siti di domande e risposte mostrano la stessa storia: un elevato e persistente utilizzo della CPU da parte di ReportCrash è quasi sempre correlato a un agente in background, un'estensione o un framework che non smette di bloccarsi e riavviarsi.

I tipici colpevoli sottostanti includono:

  • Demoni di sincronizzazione e indicizzazione (ad esempio, contatti, suggerimenti o servizi relativi alla ricerca) che si soffocano su dati corrotti;
  • App della barra dei menu di terze parti o helper che si sono rotti dopo un aggiornamento di macOS;
  • Residui di app disinstallate i cui LaunchAgents o LaunchDaemons continuano ad avviare binari che non esistono più;
  • Strumenti per sviluppatori o simulatori (Xcode, simulatori iOS, ecc.) in cui un componente si blocca ripetutamente durante i test.

In breve, ReportCrash è rumoroso perché qualcos'altro è malato. L'obiettivo è trovare quel "qualcosa", risolverlo o rimuoverlo, e solo allora considerare di toccare lo stesso ReportCrash.

A proposito, questo modello è molto simile ad altre storie di CPU elevata che ho trattato che coinvolgono chronod, contactsd, syspolicyd e wdavdaemon – un piccolo lavoratore in background va fuori dai binari e trascina giù le prestazioni del sistema con sé.


Come risolvere l'elevato utilizzo della CPU di ReportCrash su Mac

Passo 1. Identifica cosa si blocca in un ciclo

Se fai solo una cosa, fai questa. Devi sapere quale processo sta trascinando ReportCrash in modalità overkill.

  1. Apri Console
    • Premi Command–Space, digita Console e premi Return.
  2. Nella barra laterale, cerca Resoconti crash (Crash Reports) (o usa la sezione "Crash Reports" sotto "Resoconti").
  3. Ordina per Data e controlla le voci più recenti:
    • Probabilmente vedrai lo stesso nome del processo ripetuto molte volte in un breve lasso di tempo.
  4. Se i Resoconti crash sembrano vuoti, passa a:
    • system.log o Tutti i messaggi (All Messages), quindi cerca termini come crash, Service only

Crash Reports

Annota:

  • il nome del processo incriminato (ad esempio, suggestd, un'app della barra dei menu, qualche helper),
  • il suo percorso se visibile, e
  • approssimativamente quanto spesso si blocca.

Questo è il tuo principale sospettato.


Passo 2. Rimuovi o ripara l'app o il componente incriminato

Una volta che sai cosa si blocca, la soluzione migliore è solitamente aggiornare, ripristinare o disinstallare quell'elemento specifico.

  1. Se è un'app normale che conosci e usi:
    • Esci dall'app se è in esecuzione.
    • Controlla se c'è un aggiornamento nel suo menu (spesso NomeApp ▸ Cerca aggiornamenti) o tramite l'App Store.
    • Se i crash continuano, prova una reinstallazione pulita:
      • Trascina l'app da Applicazioni al Cestino.
      • Riavvia.
      • Scarica una nuova copia dalla fonte ufficiale e reinstalla.
  2. Se è un'app di cui non ti importa più:
    • In Applicazioni, rimuovila insieme agli ovvi strumenti di supporto (disinstallatori, programmi di aggiornamento).
    • Quindi controlla se ci sono componenti residui in:
      • ~/Library/Application Support/
      • ~/Library/LaunchAgents/
      • /Library/LaunchDaemons/
    • Elimina solo gli elementi chiaramente correlati a quell'app (che corrispondono al nome o al fornitore).

Delete offending items

  1. Se è un servizio di sistema (ad esempio, suggestd, relativo ai contatti o sincronizzazione iCloud):
    • Disabilita temporaneamente le funzionalità associate:
      • Disattiva gli account problematici in Impostazioni di Sistema ▸ Account Internet.
      • Disattiva servizi come Contatti iCloud, Suggerimenti di Siri e Spotlight o elementi simili, aspetta un po', quindi riattivali.
    • Se la tempesta della CPU si calma dopo aver disabilitato un account o una funzionalità specifici, è probabile che sia lì che risiedono i dati corrotti.

iCloud Contacts

L'idea è semplice: se la cosa che continua a bloccarsi scompare o inizia a comportarsi bene, ReportCrash non ha più motivo di funzionare ininterrottamente.


Passo 3. Pulisci log dei crash e diagnostica sovradimensionati

Anche dopo aver domato il ciclo di crash, il sistema potrebbe essere disseminato di migliaia di vecchi rapporti sui crash. Di solito non causano picchi di CPU da soli, ma sprecano spazio su disco e possono rendere l'analisi rumorosa.

Puoi eliminarli in sicurezza come segue:

  1. Nel Finder, premi Shift–Command–G per aprire Vai alla cartella…
  2. Visita queste posizioni una per una:
    • ~/Library/Logs/DiagnosticReports/
    • /Library/Logs/DiagnosticReports/ (potresti aver bisogno dei diritti di amministratore)
  3. Sposta i file .crash e .panic più vecchi nel Cestino (o in una cartella di archivio se vuoi un backup).
  4. Svuota il Cestino quando sei sicuro che tutto sia stabile.

DiagnosticReports

Questo non fermerà direttamente l'utilizzo della CPU di ReportCrash se la causa principale persiste, ma mantiene il tuo Mac ordinato e può ridurre leggermente l'I/O in background.


Passo 4. Disabilita elementi di login problematici ed helper in background

Uno scenario molto comune è un elemento di login o LaunchAgent per un'app dimenticata da tempo che cerca di avviare qualcosa che non esiste più. Quel binario non riesce ad avviarsi correttamente, si blocca all'istante e ReportCrash viene spammato.

Esegui la seguente pulizia:

  1. Controlla gli Elementi di login
    • Vai a Impostazioni di Sistema ▸ Generali ▸ Elementi di login.
    • Sotto sia Apri al login che Consenti in background, disabilita gli elementi che non riconosci o non usi più.
  2. Ispeziona LaunchAgents e LaunchDaemons
    Nel Finder, usa Vai ▸ Vai alla cartella… e guarda in:
    • ~/Library/LaunchAgents/
    • /Library/LaunchAgents/
    • /Library/LaunchDaemons/

  3. Per ogni cartella:
    • Ordina per Nome e cerca elementi che appartengono ovviamente ad app disinstallate.
    • Sposta i file .plist sospetti in una cartella temporanea sulla tua Scrivania invece di eliminarli subito.
    • Riavvia e osserva Monitoraggio Attività per vedere se ReportCrash si calma.

LaunchDaemons

Se tutto funziona bene per alcuni giorni, puoi eliminare in sicurezza quei file .plist in quarantena. Se qualcosa di importante si rompe, spostali indietro.


Passo 5. Test in Modalità sicura

La Modalità sicura è un modo rapido per capire se sono coinvolti componenti di terze parti. In questa modalità diagnostica, macOS carica solo le estensioni essenziali e disabilita la maggior parte degli elementi di login e LaunchAgents.

  1. Spegni il tuo Mac.
  2. Accendilo e tieni premuto il tasto appropriato per il tuo tipo di CPU:
    • Mac Intel: tieni premuto Shift immediatamente dopo il suono di avvio finché non vedi la finestra di login.
    • Mac Apple silicon:
      • Tieni premuto il pulsante di accensione finché non appare "Carico opzioni di avvio".
      • Seleziona il tuo disco di avvio, tieni premuto Shift, quindi fai clic su Continua in Modalità sicura.
  3. Effettua il login e apri Monitoraggio Attività (Activity Monitor).

Se ReportCrash è silenzioso in Modalità sicura ma impazzisce di nuovo dopo un riavvio normale, hai quasi certamente a che fare con software di terze parti (elementi di login, estensioni del kernel, strumenti helper). Usa quell'indizio per rivisitare i passaggi 2 e 4 in modo più aggressivo.


Passo 6. Reimposta SMC e NVRAM (per casi ostinati)

Sebbene non sia direttamente legato a ReportCrash, anomalie di basso livello nella gestione dell'alimentazione o nello stato dell'hardware a volte si manifestano come crash casuali e ripetuti e instabilità del sistema. Reimpostare l'SMC (Mac Intel) e la NVRAM può aiutare a eliminare quelle ragnatele.

La procedura dipende dal modello del tuo Mac, ma in generale:

  • Reset NVRAM (Mac Intel):
    1. Spegni il tuo Mac.
    2. Accendilo e tieni premuto immediatamente Option–Command–P–R.
    3. Continua a tenere premuti i tasti per circa 20 secondi, quindi rilascia.
  • Reset SMC (Mac Intel):
    I passaggi differiscono per MacBook con/senza batteria rimovibile, iMac e Mac mini. Fai riferimento alle istruzioni di Apple per il tuo modello esatto e versione di macOS.

Sui Mac Apple silicon, non esiste un reset separato di SMC o NVRAM – una sequenza di spegnimento e accensione pulita fa effettivamente la stessa cosa.

Se l'elevato utilizzo della CPU di ReportCrash persiste anche dopo aver escluso cause a livello di app ed eseguito questi reset, sei nel territorio delle "modifiche avanzate".


Passo 7. (Avanzato) Disabilita temporaneamente ReportCrash

Questo passaggio è facoltativo e rivolto a utenti esperti. In ambienti in cui esiste un ciclo di crash noto e inevitabile (ad esempio, fuzzing, configurazioni di test specifiche), alcuni amministratori scelgono di disabilitare ReportCrash in modo che non sprechi risorse generando log infiniti.

Per un normale Mac domestico o da ufficio, raccomando questo solo come una soluzione alternativa a breve termine mentre rintracci il vero colpevole, non come una correzione permanente. Perderai la diagnostica automatica dei crash e potresti nascondere segni di problemi più profondi.

Se vuoi comunque procedere, puoi scaricare il LaunchAgent e LaunchDaemon di ReportCrash da Terminale:

  1. Apri Terminale da Applicazioni ▸ Utility.
  2. Esegui questi comandi con attenzione (ti verrà chiesta la password di amministratore per il secondo):

launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist

Temporarily disable ReportCrash in Terminal

Questo impedisce a ReportCrash di avviarsi automaticamente per i processi utente e di sistema.

Per riabilitare la segnalazione dei crash in seguito, esegui:

launchctl load -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist

Ancora una volta, trattalo come un'ultima risorsa, non come la tua prima mossa. Se disabilitare ReportCrash sembra "risolvere" il problema, hai in realtà solo rimosso il termometro, non curato la febbre.


Come prevenire problemi con ReportCrash in futuro

Non puoi fermare ogni crash, ma puoi ridurre le probabilità di un incidente ReportCrash fuori controllo attenendoti a alcune abitudini:

  • Mantieni aggiornati macOS e le app principali: Le correzioni di stabilità sono una costante nelle note di rilascio di sistema e app.
  • Sii selettivo con gli elementi di avvio: Rivedi regolarmente gli Elementi di login e disabilita tutto ciò che non hai bisogno di caricare ad ogni avvio.
  • Disinstalla le app in modo pulito: Quando smetti di usare un'app, rimuovi i suoi file di supporto e gli helper di avvio, non solo il bundle principale in Applicazioni.
  • Evita installatori e bundle dubbi: Adware e agenti in background scritti male sono una fonte comune di strani crash, non solo di dirottatori di browser.
  • Tieni d'occhio Monitoraggio Attività: Se le tue ventole girano all'improvviso, una rapida occhiata alle schede CPU ed Energia può catturare processi che si comportano male prima che si trasformino in problemi cronici.

Conclusioni

Quando l'impatto sulla CPU si fa sentire, incolpare lo stesso ReportCrash è un malinteso. Quando il processo monopolizza la CPU per ore, è un forte indicatore che qualche app, servizio o componente residuo è bloccato in un ciclo implacabile di crash e riavvio.

La soluzione è solitamente metodica piuttosto che drammatica: identifica cosa si blocca, riparalo o rimuovilo, pulisci gli elementi di login e i LaunchAgents, e solo allora considera misure avanzate come disabilitare temporaneamente ReportCrash. Una volta che l'instabilità sottostante è sparita, il tuo Mac dovrebbe tornare al suo solito comportamento silenzioso, fresco e discreto.

FAQ

1. ReportCrash è un virus o un malware su Mac?

2. È sicuro terminare il processo ReportCrash in Monitoraggio Attività?

3. Come faccio a sapere quale app sta causando l'elevato utilizzo della CPU da parte di ReportCrash?

4. Posso disabilitare la segnalazione dei crash sul mio Mac in modo permanente?

5. Quando dovrei considerare la reinstallazione di macOS per risolvere i problemi di ReportCrash?

Questo articolo è stato utile? Per favore, valuta questo.