icdd-Prozess verbraucht unter macOS erheblichen Speicherplatz

In der letzten Woche oder so hat der Prozess 'icdd' von Zeit zu Zeit gestartet und wenn er dies tut, verbraucht er eine enorme Menge an RAM (ab 7 GB). In diesem Fall funktioniert mein MacBook Pro im Wesentlichen nicht mehr, bis ich den Aktivitätsmonitor öffnen und den Prozess erzwingen kann.

Ich habe einen Screenshot des Aktivitätsmonitors angehängt, der zeigt, wie icdd über 7 GB RAM verwendet und den Speicherdruck in die Höhe schnellen lässt.

Geben Sie hier die Bildbeschreibung ein

Weiß jemand, was dieser Prozess ist oder wie ich verhindern kann, dass dieses Problem etwa alle 30 Minuten auftritt?

Du bist nicht der erste, der dieses Problem hat. Sehen Sie, ob diese Antwort hilft: superuser.com/questions/748933/…
icdd ist mit Image Capture.app/service verwandt. Haben Sie irgendwelche Geräte wie einen Scanner, Drucker-Scanner oder eine Kamera angeschlossen?
Außerdem - wenn Sie sich abmelden und dann wieder anmelden - wie ändert sich die verwendete 7.24 (1.08 App, 1.75 Wired. 4.41 Compressed)? Es könnte ein einfaches Speicherleck sein, das durch Ab- und Anmelden gelöscht wird. Wenn es nicht gelöscht wird, würde ich versuchen, den Virenscanner zu deaktivieren und neu zu starten und zu sehen, ob der Speicher so schnell ansteigt.
Diese Lösung war für mein Problem nicht anwendbar. @klanomath Ich habe keine externen Geräte an mein MacBook angeschlossen.
@Zach lcdd wird von einem Startagenten gesteuert. Es enthält einen Schlüssel "Druckausgang aktivieren", der standardmäßig deaktiviert ist. Sie können es vorübergehend aktivieren (= lcdd beenden, wenn der Speicherdruck zu hoch wird) und das Ergebnis überprüfen. Wie bmike bereits erwähnt hat, ist der wahre Grund wahrscheinlich ein Speicherleck ...
Ich habe das Problem jetzt seit einigen Wochen behoben, es ist ein großer Batterieverbrauch. Es wird alle paar Minuten gestartet und verbraucht in wenigen Sekunden etwa 5 % der Batterie, wobei ein oder mehrere Kerne mit 100 % betrieben werden.
Alles, was ich herausfinden konnte, ist, dass es kommt, um das Netzwerk nach vernetzten Scannern zu scannen. Dies scheint alle paar Minuten zu passieren (und an einer Universität gibt es anscheinend sehr viele vernetzte Scanner). Wenn Sie die Konsole beobachten, werden ständig vernetzte Scanner hinzugefügt und entfernt.
Außerdem habe ich versucht, SIP zu deaktivieren und die com.apple.icdd.plist zu bearbeiten, um den Druckspeicherausgang zu aktivieren. es bringt nichts. Tatsächlich habe ich fast alle Einstellungen dort ausprobiert; deaktiviert verhindert dies, bricht aber auch Preview.app vollständig.

Antworten (4)

Ich arbeite seit über einem Jahr mit einem Senior Technical Advisor bei Apple an diesem Problem und davor einige Zeit mit einem anderen Senior Advisor. Wir haben bei mehreren Gelegenheiten eine „Datenerfassung“ durchgeführt, um sie an Apple-Ingenieure zu senden, und bei mehreren Gelegenheiten Bildschirmaufnahmen gemacht, um zu zeigen, was im Aktivitätsmonitor, in der Bilderfassung und schließlich in einer Plist vor sich geht, die icdd unter /Benutzer/Benutzername verwaltet /Library/Application Support/icdd/deviceInfoCache.plist (durch Anzeigen in Xcode).

An dieser Stelle ist hier meine beste Einschätzung dessen, was passiert:

Der icdd-Prozess (Image Capture Device Database) sieht, dass Scanner in einem ausgelasteten Netzwerk kommen und gehen. Es versucht, eine Liste ihrer Symboldateien in einer Hash-Tabelle zu führen, die es auch in die oben erwähnte Datei deviceInfoCache.plist schreibt. Ja – das klingt verrückt – es enthält Verweise auf die Symboldateien der Scanner. Aber noch verrückter ist, dass aus irgendeinem Grund fast alle Einträge in dieser Datei auf .icns-Dateien verweisen, die nicht existieren. Von mehreren Systemen, die ich mir angeschaut habe, gab es viele tausend Einträge in der Datei, aber nur wenige der .icns-Dateien existierten auf einem der Rechner und keine auf den anderen. Ich glaube, wenn diese Datei groß wird, verbringt icdd viel Zeit damit, zu versuchen, das Vorhandensein von Einträgen in der .plist-Datei zu überprüfen und die Datei zu ändern. Ich glaube das aus zwei Gründen. Erstens, wenn ich meinen Laptop nach Hause nehme, Der icdd-Prozess läuft manchmal mit etwa 100% einer CPU weiter, aber wenn ich ihn dann beende, geht er jedes Mal auf die "normalen" ungefähr 0,0 bis 0,1% zurück. Daher denke ich, dass es manchmal noch versucht, Informationen über die Einträge zu verarbeiten, wenn ich es zu Hause öffne. Aber wenn ich es lösche, während ich im ausgelasteten Netzwerk bin, kommt es oft sofort auf fast 100% zurück. Wenn die Anzahl der in Image Capture angezeigten Scanner sinkt (was häufig der Fall ist, aber aus irgendeinem Grund regelmäßig ansteigt), wird sich icdd schließlich beruhigen. Und zweitens führt das Löschen der Datei deviceInfoCache.plist dazu, dass sich icdd für kurze Zeit vernünftig verhält - bis sich die Anzahl der Einträge wieder aufbaut. Beachten Sie, dass icdd eine Kopie dieser Einträge im Speicher behält. Wenn Sie also die Datei aus dem Benutzerkonto löschen, schreibt icdd sie einfach sofort neu. Und natürlich kannst du' Sie können icdd nicht lange genug beenden, um die Datei zu löschen, daher müssen Sie sich abmelden und die Datei von einem anderen Administratorkonto über das Terminal löschen. icdd erstellt die Datei neu, wenn Sie sich wieder anmelden, aber sie wird relativ wenige Einträge haben und sich eine Zeit lang gut verhalten.

Um eine Vorstellung von den Maßstäben zu geben: Die Apple-Ingenieure waren schockiert, als sie sahen, dass in Image Capture bis zu 85 Scanner angezeigt wurden. Oft wird sich diese Zahl jedoch auf dem gleichen System und im gleichen Zeitrahmen auf etwa 6 einpendeln. Die Datei deviceInfoCache.plist hatte zwischen 8.000 und 12.600 Einträge auf den Systemen, die ich mir angeschaut habe und die icdd-Probleme hatten - meins ist das größere, und ich glaube, das wurde von einem älteren Rechner übernommen, da ich icdd-Probleme hatte seit ich mein neues MacBook Pro im Dezember 2016 eingerichtet habe. Als ich die Plist-Datei löschte, betrug die Anzahl der anfänglichen Einträge in der neu erstellten Datei 44, und einige Tage lang bewegte sich die icdd-CPU-Auslastung nahe bei 0,0 %. Nach ungefähr 5 Tagen auf dem Campus enthält meine Plist-Datei jedoch 964 Einträge. und die icdd-CPU-Auslastung wird im ausgelasteten Netzwerk der Universität routinemäßig zwischen 30 % und 90 % schwanken. Wenn ich zu Hause bin, erhöht die plist-Datei die Anzahl der Einträge im Laufe eines Tages nur um 0 auf 2. Von den 12.600 Einträgen in meiner vorherigen Plist-Datei enthalten nur 2 einen "deviceName", der Rest einen "iconPathLocation", die alle auf nicht vorhandene .icns-Dateien verweisen. Mit der aktuellen plist gibt es noch genau 2 Einträge, die einen "deviceName" enthalten, und der Rest enthält einen "iconPathLocation", der nicht existiert. die alle auf nicht vorhandene .icns-Dateien verweisen. Mit der aktuellen plist gibt es noch genau 2 Einträge, die einen "deviceName" enthalten, und der Rest enthält einen "iconPathLocation", der nicht existiert. die alle auf nicht vorhandene .icns-Dateien verweisen. Mit der aktuellen plist gibt es noch genau 2 Einträge, die einen "deviceName" enthalten, und der Rest enthält einen "iconPathLocation", der nicht existiert.

Die kurzfristige Lösung besteht also darin, die Plist-Datei von einem anderen Administratorkonto über ein Terminal zu löschen, während Sie von Ihrem Benutzerkonto abgemeldet sind. Hoffentlich haben die Apple-Ingenieure mit diesen Informationen, die Apple-Ingenieuren jetzt von meinem Senior Advisor zur Verfügung gestellt werden, genügend Informationen, um herauszufinden, warum sich icdd so verhält, und um das Problem zu beheben. Natürlich wäre es wahrscheinlich hilfreich, wenn Sie meine kurzfristige Lösung überprüfen und Apple weiterhin berichten könnten, was Sie finden.

Guter Einstieg, der ein gewisses Verständnis dafür vermittelt, wie sich der icdd verhält. Aber wofür ist es? Wo werden diese Symbole (zumindest die vorhandenen) angezeigt? Für welche Funktion ist dieser icdd zuständig? und wenn Sie die .plist-Dateien löschen, welche Funktionalität verlieren Sie? Außerdem gibt es in meinem Fall 5 Benutzer auf demselben Mac, und ihre icdd .plist-Dateien stimmen NICHT überein, aber das führt dazu, dass icdd gelegentlich abstürzt und keinen Müll sammelt und die CPU belastet.
@Motti Shneor In der deviceInfoCache.plist ist gelegentlich ein tatsächliches Gerät aufgeführt, und ich denke, dies ist der beabsichtigte Zweck. Ich denke, es war ein Fehler, der dazu führte, dass Symbolbilddateien verfolgt wurden - von denen die meisten nicht existierten. Dies war meine anfängliche Vermutung, aber ich sage dies jetzt mit mehr Selbstvertrauen, da meine aktuelle Version dieser Plist genau einen Eintrag enthält, der für ein tatsächliches Gerät gilt. Daher denke ich, dass Apple dies bei einer Betriebssystemversion behoben hat (ich vermute in Catalina).
@Motti Shneor Beim Löschen der Plist habe ich nie eine Änderung der Funktionalität bemerkt - das Betriebssystem hat die Datei nur nach Bedarf neu erstellt, was nicht viel Zeit in Anspruch zu nehmen scheint. Jeder Benutzer hat dafür seine eigene Plist, und das absichtlich - wenn ein Benutzer einen Scanner verwendet und ein anderer nicht, würde ich erwarten, dass seine Plists diesen Unterschied widerspiegeln. Daher bezweifle ich, dass die Listen verschiedener Benutzer einen Interaktionseffekt haben würden.

Ich beschäftige mich seit einiger Zeit mit diesem Problem und habe überall nachgesehen! Es ist frustrierend ... Endlich habe ich einen Link gefunden, mit dem ich diesen dummen Wahnsinn stoppen könnte. Ich bin mir nicht sicher, ob dies die Ursache des Problems ist, aber es könnte es stoppen. Hier sind die Schritte:

1) SIP deaktivieren ( Link )

2) Geben Sie die folgenden Befehle ein:

cd /Anwendungen

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

cd /System/Library/Image\ Capture/Support/

sudo mv icdd icdd-disable

3) Neustart

4) Aktivieren Sie SIP, wenn Sie sich interessieren

Ursprünglicher Link: https://havecamerawilltravel.com/photographer/prevent-photos-app-mac-osx

Hoffentlich hilft es.

Ich habe auch mit diesem Problem zu kämpfen. Da ich online keine Antworten fand und mich nicht mit dem Terminal anlegen wollte, rief ich den Apple Support an. Anfangs dachten sie, meine Festplatte sei beschädigt (es war - das wurde behoben, aber das Problem wurde nicht behoben). Das Problem blieb bestehen, nachdem ich meinen RAM erhöht hatte. Angeregt durch einen Internet-Kommentar zu Netzwerk-Scanner-Suchen bemerkte ich, dass ICDD nur verrückt wurde, wenn Wi-Fi aktiviert war. Wenn ich die Wi-Fi-Verbindung trennte und ICDD beendete, wurde es nicht neu gestartet und stieg in der RAM- oder CPU-Auslastung (bis Wi-Fi wieder aktiviert wurde).

Ich habe den Apple Support erneut angerufen, der das Problem anscheinend durch Zurücksetzen von SMC und NVRAM behoben hat. Jetzt läuft ICDD auf einem niedrigen Niveau (10–20 MB), anstatt mehr als 10 GB RAM zu verbrauchen. Ich habe unten Links hinzugefügt, um dies zu tun, aber ich würde empfehlen, den Apple Support für Ihr spezifisches Problem anzurufen.

Ihre Erklärung dafür, warum dies passiert, hatte damit zu tun, dass mein RAM verstopft oder voll mit Internet-Caches usw. war. Warum es gerade jetzt offensichtlich wurde und ob es mit Sierra zusammenhängt, kann ich nicht sagen.

Ich hoffe, das hilft einigen Leuten!

SMC zurücksetzen: https://support.apple.com/en-us/ht201295

NVRAM zurücksetzen: https://support.apple.com/en-us/ht204063

10-15 Minuten beheben.

Meine Spezifikationen:

  • Anfang 2011 13" MacBook Pro
  • 500 GB Samsung SSD (aktualisiert vor ca. 1,5 Jahren)
  • 8 GB RAM (vor ca. 1 Monat aktualisiert)
  • macOS Sierra 10.12.3 (bis zu
  • Parallels 10 mit Windows 10 für SAS-Software

Während die obigen Antworten bessere technische Daten liefern, möchte ich eine allgemeine Anmerkung hinzufügen.

Wir haben es wahrscheinlich mit einer miesen Software zu tun, die jahrelang alte Fehler enthält, die nicht richtig getestet wurde und wahrscheinlich nie behoben wird. Das ist alles. In den letzten zehn Jahren verschlechterte sich die Softwareentwicklung von Apple ständig, und wir müssen uns ständig mit solchen Szenarien abfinden.

Normalerweise würde das Zurücksetzen solcher Softwareteile in ihren ursprünglichen Zustand (z. B. durch Löschen von Caches und Setzen von Dateien, .plists oder sogar Zurücksetzen ihrer Benutzerstandards) das Problem für einige Zeit lösen.

Eine andere Möglichkeit besteht darin, das Betriebssystem-bezogene Subsystem zurückzusetzen. In diesem Fall Klicken Sie mit der rechten Maustaste in das Systemeinstellungsfenster des Druckerslässt Sie beispielsweise "das Drucksystem zurücksetzen", was icdd wahrscheinlich für eine Weile den Kopf frei machen wird - aber Sie dazu zwingen wird, Ihre Druckumgebung neu einzurichten.

Und natürlich kann das Öffnen neuer RADR-Einträge für Apple ihre Aufmerksamkeit auf das fehlerhafte Subsystem lenken.