icdd-Prozess verbraucht unter macOS viel Speicher

13

In der letzten Woche hat der Prozess 'icdd' von Zeit zu Zeit begonnen und verbraucht dabei enorm viel RAM (ab 7 GB). In diesem Fall funktioniert mein MacBook Pro im Wesentlichen nicht mehr, bis ich den Aktivitätsmonitor öffnen und den Vorgang erzwingen kann.

Ich habe einen Screenshot des Aktivitätsmonitors angehängt, der icdd mit über 7 GB RAM zeigt 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?

Zach
quelle
1
Sie sind nicht die erste Person, die dieses Problem hat. Sehen Sie, wenn diese Antwort hilft: superuser.com/questions/748933/...
NoahL
1
icdd bezieht sich auf Image Capture.app/service. Haben Sie Geräte wie einen Scanner, einen Druckerscanner oder eine Kamera angeschlossen?
Klanomath
Wie ändert sich die verwendete Version 7.24 (1.08 App, 1.75 Wired. 4.41 Compressed), wenn Sie sich abmelden und dann wieder anmelden? Es könnte sich um einen einfachen Speicherverlust handeln, der beim Abmelden und Löschen behoben wird. Wenn es nicht klar ist, würde ich versuchen, den Virenscanner zu deaktivieren und neu zu starten und zu prüfen, ob der Speicher so schnell steigt.
bmike
Diese Lösung war auf mein Problem nicht anwendbar. @klanomath Ich habe keine externen Geräte an mein MacBook angeschlossen.
Zach
@Zach lcdd wird von einem Startagenten gesteuert. Es enthält eine Taste "Druckausgang aktivieren", die standardmäßig deaktiviert ist. Sie können es vorübergehend aktivieren (= lcdd töten, wenn der Speicherdruck zu hoch wird) und das Ergebnis überprüfen. Wie bmike bereits erwähnt hat, ist der wahre Grund wahrscheinlich ein Speicherverlust ...
klanomath

Antworten:

6

Ich arbeite seit über einem Jahr mit einem leitenden technischen Berater bei Apple an diesem Thema und habe zuvor einige Zeit mit einem anderen leitenden Berater zusammengearbeitet. Wir haben mehrfach "Datenerfassung" durchgeführt, um sie an Apple Engineers zu senden, und mehrmals Bildschirmaufzeichnungen durchgeführt, um zu demonstrieren, was in Activity Monitor, Image Capture und letztendlich in einer Liste, die icdd unter / Users / user_name verwaltet, vor sich geht / Library / Application Support / icdd / deviceInfoCache.plist (durch Anzeige in Xcode).

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

Beim icdd-Prozess (Image Capture Device Database) kommen und gehen Scanner in einem ausgelasteten Netzwerk. Es wird versucht, eine Liste ihrer Symboldateien in einer Hash-Tabelle zu speichern, die auch in die oben erwähnte Datei deviceInfoCache.plist geschrieben wird. Ja - das klingt verrückt - es werden Verweise auf die Symboldateien der Scanner beibehalten. 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 angesehen habe, gab es viele tausend Einträge in der Datei, aber nur einige der ICNS-Dateien waren auf einem der Computer vorhanden, und keiner war auf den anderen vorhanden. Ich glaube, wenn diese Datei groß wird, verbringt icdd viel Zeit damit, die Existenz 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 mit nach Hause nehme, Der icdd-Prozess läuft manchmal mit ungefähr 100% einer CPU weiter, aber wenn ich ihn dann töte, kehrt er jedes Mal zum "normalen" ungefähr 0,0 bis 0,1% zurück. Daher denke ich, dass es manchmal immer noch versucht, Informationen über die Einträge zu verarbeiten, wenn ich sie zu Hause öffne. Aber wenn ich es im geschäftigen Netzwerk töte, kommt es oft sofort zu fast 100% zurück. Wenn die Anzahl der in Image Capture angezeigten Scanner abnimmt (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 angemessen verhält - bis sich die Anzahl der Einträge wieder erhöht. Beachten Sie, dass icdd eine Kopie dieser Einträge im Speicher verwaltet. Wenn Sie die Datei also aus dem Benutzerkonto löschen, schreibt icdd sie sofort neu. Und natürlich, Sie können icdd nicht lange genug beenden, um die Datei zu löschen. Sie müssen sich daher abmelden und die Datei über das Terminal von einem anderen Administratorkonto löschen. icdd erstellt die Datei neu, wenn Sie sich wieder anmelden, hat jedoch relativ wenige Einträge und verhält sich eine Weile gut.

Apple Engineers war schockiert, als ich sah, dass in Image Capture bis zu 85 Scanner angezeigt wurden. Oft wird sich diese Zahl jedoch auf demselben System und in denselben Zeiträumen auf etwa 6 einstellen. Die Datei deviceInfoCache.plist hatte zwischen 8.000 und 12.600 Einträge auf den Systemen, die ich mir angesehen habe und bei denen icdd-Probleme aufgetreten sind - meine ist die größere, und ich glaube, dies wurde von einem älteren Computer übertragen, 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 ersten Einträge in der neu erstellten Datei 44, und einige Tage lang lag die ICDD-CPU-Auslastung nahe bei 0,0%. Nach ungefähr 5 Tagen auf dem Campus hat meine Plist-Datei jedoch 964 Entires, und die CPU-Auslastung von icdd springt routinemäßig zwischen 30% und 90% im ausgelasteten Netzwerk der Universität. Wenn ich zu Hause bin, erhöht die Plist-Datei die Anzahl der Einträge im Laufe eines Tages nur um 0 bis 2. Von den 12.600 Einträgen in meiner vorherigen Plist-Datei enthalten nur 2 einen "Gerätenamen", der Rest einen "iconPathLocation", die alle auf nicht vorhandene ICNS-Dateien verweisen. Mit der aktuellen Liste gibt es noch genau 2 Einträge, die einen "Gerätenamen" enthalten, und der Rest enthält einen "iconPathLocation", der nicht vorhanden ist. Alle diese Punkte verweisen auf nicht vorhandene ICNS-Dateien. Mit der aktuellen Liste gibt es noch genau 2 Einträge, die einen "Gerätenamen" enthalten, und der Rest enthält einen "iconPathLocation", der nicht vorhanden ist. Alle diese Punkte verweisen auf nicht vorhandene ICNS-Dateien. Mit der aktuellen Liste gibt es noch genau 2 Einträge, die einen "Gerätenamen" enthalten, und der Rest enthält einen "iconPathLocation", der nicht vorhanden ist.

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

Datenpoolbox
quelle
Guter Einstieg, der ein wenig 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 dieses icdd verantwortlich? und wenn Sie die .plist-Dateien löschen, welche Funktionalität verlieren Sie? In meinem Fall befinden sich 5 Benutzer auf demselben Mac, und ihre icdd .plist-Dateien stimmen NICHT überein. Dies führt jedoch dazu, dass icdd gelegentlich abstürzt und kein Müll und kein Schwein auf der CPU gesammelt wird.
Motti Shneor
@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 Icon-Image-Dateien 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 Liste genau einen Eintrag enthält, der für ein tatsächliches Gerät bestimmt ist. Daher denke ich, dass Apple dies bei einer Betriebssystemversion behoben hat (ich vermute in Catalina).
datatoolbox
@Motti Shneor Beim Löschen der Liste habe ich keine Änderung der Funktionalität bemerkt - das Betriebssystem hat die Datei nur nach Bedarf neu erstellt, was anscheinend nicht viel Zeit in Anspruch nimmt. Jeder Benutzer hat dafür seine eigene Liste, und das absichtlich - wenn ein Benutzer einen Scanner verwendet und ein anderer nicht, würde ich erwarten, dass seine Liste diesen Unterschied widerspiegelt. Daher bezweifle ich, dass die Listen verschiedener Benutzer einen Interaktionseffekt haben würden.
datatoolbox
3

Ich habe mich eine Weile mit diesem Problem beschäftigt und überall nachgesehen! Es ist frustrierend ... Endlich habe ich einen Link gefunden, mit dem ich diesen dummen Wahnsinn stoppen kann. Ich bin 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/ Deaktivieren \ Image \ Capture.app/

CD / System / Bibliothek / 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.

Mr. Boy
quelle
0

Ich habe auch mit diesem Problem zu kämpfen. Ich fand online keine Antworten und wollte mich nicht mit dem Terminal anlegen. Ich rief 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 mein RAM vergrößert wurde. Aufgefordert durch einen Internetkommentar bezüglich der Suche nach Netzwerkscannern bemerkte ich, dass ICDD nur verrückt werden würde, wenn Wi-Fi aktiviert war. Wenn ich die Verbindung zu Wi-Fi trennen und ICDD beenden würde, würde es nicht neu starten und die RAM- oder CPU-Auslastung erhöhen (bis Wi-Fi wieder aktiviert wird).

Ich rief erneut den Apple Support an, 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, warum dies geschieht, hatte damit zu tun, dass mein RAM verstopft oder voll mit Internet-Caches usw. war. Warum es gerade erst offensichtlich geworden ist 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 reparieren.

Meine Angaben:

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

Während die obigen Antworten bessere technische Daten liefern, möchte ich einen allgemeinen Hinweis 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 hat sich das Apple Software Engineering ständig verschlechtert, und wir müssen uns ständig mit solchen Szenarien abfinden.

Normalerweise würde das Zurücksetzen solcher Softwareteile auf ihren ursprünglichen Zustand (z. B. durch Löschen von Caches und Festlegen 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 können Sie beispielsweise Klicken Sie mit der rechten Maustaste in den Systemeinstellungen des Druckersdas Drucksystem "zurücksetzen", wodurch wahrscheinlich der Kopf von icdd für eine Weile gelöscht wird. Sie werden jedoch gezwungen, Ihre Druckumgebung erneut einzurichten.

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

Motti Shneor
quelle