processo icdd che consuma molta memoria su macOS


13

Nell'ultima settimana il processo 'icdd' è stato avviato di tanto in tanto e quando lo fa consuma una quantità enorme di RAM (fino a 7 GB). Quando ciò accade, il mio MacBook Pro diventa essenzialmente non funzionale fino a quando non riesco ad aprire Activity Monitor e forzare il processo.

Ho allegato uno screenshot del monitor attività che mostra icdd utilizzando oltre 7 GB di RAM e facendo salire la pressione della memoria.

inserisci qui la descrizione dell'immagine

Qualcuno sa cos'è questo processo o come posso evitare che si verifichi questo problema ogni 30 minuti circa?


1
Non sei la prima persona ad avere questo problema. Vedi se questa risposta aiuta: superuser.com/questions/748933/…
NoahL

1
icdd è correlato a Image Capture.app/service. Hai dispositivi come scanner, stampante-scanner o fotocamera collegati?
klanomath,

Inoltre, se ti disconnetti e poi accedi di nuovo, come cambia la 7.24 utilizzata (1.08 App, 1.75 Wired. 4.41 Compressed)? Potrebbe essere una semplice perdita di memoria che si disconnette e cancella. Se non si cancella, proverei a disabilitare lo scanner antivirus e riavviare e vedere se la memoria si arrampica più velocemente.
bmike

Tale soluzione non era applicabile al mio problema. @klanomath Non ho dispositivi esterni collegati al mio MacBook.
Zach,

@Zach lcdd è controllato da un agente di avvio. Contiene un tasto "Abilita uscita pressione" che è disabilitato di default. È possibile abilitarlo temporaneamente (= kill lcdd se la pressione della memoria aumenta) e controllare il risultato. Come già detto da bmike, la vera ragione probabilmente è una perdita di memoria ...
klanomath,

Risposte:


6

Ho lavorato con un consulente tecnico senior di Apple su questo problema per oltre un anno e ho lavorato con un altro consulente senior per qualche tempo prima. Abbiamo fatto "acquisizione dati" da inviare agli ingegneri Apple in diverse occasioni e registrazioni di schermate in diverse occasioni per dimostrare cosa sta succedendo in Activity Monitor, Image Capture e, infine, in un piano che icdd mantiene su / Users / nome_utente / Library / Application Support / icdd / deviceInfoCache.plist (visualizzandolo in Xcode).

A questo punto, ecco la mia migliore stima di ciò che sta accadendo:

Il processo icdd (Image Capture Device Database) vede gli scanner entrare e uscire su una rete occupata. Tenta di mantenere un elenco dei loro file icona in una tabella hash, che scrive anche nel file deviceInfoCache.plist menzionato sopra. Sì, sembra folle, mantiene i riferimenti ai file delle icone degli scanner. Ma ancora più folle è che, per qualche motivo, quasi tutte le voci in questo file indicano file .icns che non esistono. Di diversi sistemi che ho visto, ci sono state molte migliaia di voci nel file, ma solo alcuni dei file .icns esistevano su una delle macchine, e nessuno esisteva sugli altri. Credo che quando questo file diventa grande, icdd impiega molto tempo a cercare l'esistenza di voci nel file .plist e a modificare il file. Lo credo per due motivi. Innanzitutto, quando porto il mio laptop a casa, il processo icdd a volte continua a funzionare al 100% circa di una CPU, ma quando poi lo uccido, ritorna al "normale" circa dallo 0,0 allo 0,1%, ogni volta. Quindi, penso che a volte stia ancora cercando di elaborare informazioni sulle voci quando le apro a casa. Ma quando lo uccido mentre sono su una rete occupata, spesso ritorna immediatamente al 100%. Quando il numero di scanner mostrato in Image Capture diminuisce (cosa che spesso accade, ma aumenterà periodicamente per qualche motivo), alla fine Icdd si stabilizzerà. E in secondo luogo, l'eliminazione del file deviceInfoCache.plist provoca un comportamento ragionevole di icdd per un breve periodo, fino a quando il numero di voci non si accumula nuovamente. Nota che icdd conserva una copia di queste voci in memoria, quindi se elimini il file dall'account utente, icdd lo riscrive immediatamente. Ed ovviamente, non puoi uccidere icdd abbastanza a lungo per eliminare il file, quindi devi disconnetterti ed eliminare il file da un altro account amministratore tramite il terminale. icdd ricrea il file quando si accede nuovamente, ma avrà relativamente poche voci e funzionerà bene per un po '.

Per dare un'idea delle scale, gli ingegneri Apple sono rimasti scioccati nel vedere che avevo Image 85 scanner visualizzati in Image Capture. Spesso, tuttavia, questo numero si riduce a circa 6 sullo stesso sistema e negli stessi tempi. Il file deviceInfoCache.plist ha avuto tra le 8.000 e le 12.600 voci sui sistemi che ho visto che hanno avuto problemi con icdd - il mio è il più grande, e credo che questo sia stato riportato da una macchina precedente poiché avevo problemi con icdd dal momento in cui ho installato il mio nuovo MacBook Pro nel 2016-dicembre. Quando ho eliminato il file plist, il numero di voci iniziali nel file appena creato era 44 e per alcuni giorni l'utilizzo della CPU icdd si è avvicinato allo 0,0%. Tuttavia, dopo circa 5 giorni nel campus, il mio file plist ha 964 entires, e l'utilizzo della CPU icdd rimbalzerà di routine tra il 30% e il 90% sulla rete occupata dell'università. Quando sono a casa, il file plist aumenterà il suo numero di voci solo da 0 a 2 nel corso della giornata. Delle 12.600 voci nel mio precedente file plist, solo 2 contengono un "deviceName", il resto contiene un "iconPathLocation", che indicano tutti i file .icns inesistenti. Con l'attuale plist, ci sono ancora esattamente 2 voci che contengono un "deviceName", e il resto contiene un "iconPathLocation" che non esiste. tutti che puntano a file .icns inesistenti. Con l'attuale plist, ci sono ancora esattamente 2 voci che contengono un "deviceName", e il resto contiene un "iconPathLocation" che non esiste. tutti i quali puntano a file .icns inesistenti. Con l'attuale plist, ci sono ancora esattamente 2 voci che contengono un "deviceName", e il resto contiene un "iconPathLocation" che non esiste.

Pertanto, la soluzione a breve termine è eliminare il file plist da un altro account amministratore tramite terminale mentre si è disconnessi dal proprio account utente. Spero che queste informazioni vengano ora fornite agli ingegneri Apple dal mio consulente senior, gli ingegneri Apple disporranno di informazioni sufficienti per capire perché icdd si sta comportando in questo modo e risolvere il problema. Certo, probabilmente sarebbe di aiuto se tu potessi verificare la mia soluzione a breve termine e continuare a riferire ciò che trovi ad Apple.


Una buona entrata, che dà una comprensione nascosta di come si comporta l'Idddd. Ma a cosa serve? dove vengono visualizzate queste icone (almeno quelle esistenti)? Di quale funzione è responsabile questo icdd? e quando elimini i file .plist, quale funzionalità perdi? Inoltre, nel mio caso, ci sono 5 utenti sullo stesso Mac e i loro file .plist icdd NON sono d'accordo, ma ciò causa l'arresto anomalo di icdd di tanto in tanto e non raccoglie spazzatura e porco sulla CPU.
Motti Shneor,

@Motti Shneor Il deviceInfoCache.plist occasionalmente avrebbe un dispositivo reale elencato in esso, e penso che questo sia lo scopo previsto. Penso che sia stato un bug a causare la traccia dei file icona-immagine, la maggior parte dei quali non esisteva. Questa era la mia ipotesi iniziale, ma lo dico con maggiore sicurezza ora perché guardando la mia versione attuale di questo plist, ha esattamente una voce, che è per un dispositivo reale. Quindi, penso che Apple abbia risolto questo problema con alcune versioni del sistema operativo (sospetto in Catalina).
datatoolbox

@Motti Shneor Nell'eliminare il plist, non ho mai notato alcun cambiamento nella funzionalità: il sistema operativo ha appena ricostruito il file secondo necessità, il che non sembra richiedere molto tempo. Ogni utente ha il suo piano per questo, e intenzionalmente - se un utente usa uno scanner e un altro no, mi aspetto che i suoi piani riflettano questa differenza. Quindi dubito che le diverse pianificazioni degli utenti avrebbero un effetto di interazione.
datatoolbox

3

Ho affrontato questo problema per un po 'e ho controllato dappertutto! È frustrante ... Alla fine ho trovato un collegamento che potrei fermare questa stupida follia. Non sono sicuro che questa sia la fonte del problema, ma potrebbe fermarlo. Ecco i passaggi:

1) disabilitare SIP ( collegamento )

2) digitare i seguenti comandi:

cd / Applicazioni

sudo mv Image \ Capture.app/ Disabilita \ Image \ Capture.app/

cd / Sistema / Libreria / Immagine \ Capture / Support /

sudo mv icdd icdd-disable

3) riavviare

4) abilitare SIP se ti interessa

Link originale: https://havecamerawilltravel.com/photographer/prevent-photos-app-mac-osx

Speriamo che aiuti.


0

Ho avuto difficoltà anche con questo problema. Non trovando risposte online e non volendo scherzare con il terminale, ho chiamato il supporto Apple. Inizialmente, hanno pensato che il mio HD fosse corrotto (era - che era stato risolto ma non ha risolto il problema). Il problema persisteva dopo aver aumentato la mia RAM. Spinto da un commento su Internet riguardante le ricerche di scanner di rete, ho notato che ICDD sarebbe impazzito solo quando il Wi-Fi era abilitato. Se mi disconnettessi dal Wi-Fi e chiudessi ICDD, non si riavvierebbe e aumenterebbe l'utilizzo della RAM o della CPU (fino a quando il Wi-Fi non fosse riattivato).

Ho chiamato nuovamente il supporto Apple che sembra aver risolto il problema ripristinando SMC e NVRAM. Ora ICDD funziona a basso livello (10-20 MB) anziché consumare oltre 10 GB di RAM. Di seguito ho aggiunto collegamenti per farlo, ma ti consiglio di chiamare il supporto Apple per il tuo problema specifico.

La loro spiegazione del perché ciò sta accadendo ha avuto a che fare con la mia RAM intasata o piena di cache di Internet, ecc. Perché è appena diventato evidente e se è associato a Sierra, non posso dire.

Spero che questo aiuti alcune persone!

Ripristina SMC: https://support.apple.com/en-us/ht201295

Ripristina NVRAM: https://support.apple.com/en-us/ht204063

Correzione di 10-15 minuti.

Le mie specifiche:

  • inizio 2011 13 "MacBook Pro
  • SSD Samsung da 500 GB (aggiornato ~ 1,5 anni fa)
  • 8 GB RAM (aggiornato ~ 1 mese fa)
  • macOS Sierra 10.12.3 (fino a
  • Parallels 10 con Windows 10 per software SAS

0

Mentre le risposte di cui sopra forniscono dati tecnici migliori, vorrei aggiungere una nota generale.

Ciò di cui abbiamo a che fare è probabilmente un pessimo software, che porta per anni vecchi bug, che non è stato testato correttamente e probabilmente non verrà mai risolto. È tutto. Nell'ultimo decennio, l'ingegneria del software di Apple si sta costantemente deteriorando e dobbiamo sopportare scenari di questo tipo in ogni momento.

Di solito il ripristino di tali componenti software al loro stato originale (ad esempio, eliminando cache e impostando file, .plist o persino ripristinando le impostazioni predefinite dell'utente) faciliterebbe il problema per qualche tempo.

Un altro modo è ripristinare il sottosistema relativo al sistema operativo. In questo caso, ad esempio, un clic con il tasto destro nel pannello delle preferenze del sistema delle stampantivi permetterà di "resettare il sistema di stampa", che sarà probabilmente la testa chiara di ICDD per un po '- ma si costringerà a configurare l'ambiente la stampa di nuovo.

E, naturalmente, l'apertura di nuove voci RADR su Apple potrebbe eventualmente attirare la loro attenzione sul sottosistema difettoso.

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.