processus icdd consommant beaucoup de mémoire sur macOS

13

Au cours de la semaine dernière, le processus «icdd» a démarré de temps en temps et lorsqu'il le fait, il consomme une quantité énorme de RAM (jusqu'à 7 Go). Lorsque cela se produit, mon MacBook Pro devient essentiellement non fonctionnel jusqu'à ce que je puisse ouvrir le moniteur d'activité et tuer le processus de force.

J'ai joint une capture d'écran du moniteur d'activité montrant icdd utilisant plus de 7 Go de RAM et faisant monter en flèche la pression de la mémoire.

entrez la description de l'image ici

Est-ce que quelqu'un sait ce qu'est ce processus ou comment je peux empêcher ce problème de se produire toutes les 30 minutes environ?

Zach
la source
1
Vous n'êtes pas la première personne à avoir ce problème. Voir si cette réponse aide: superuser.com/questions/748933/…
NoahL
1
icdd est lié à Image Capture.app/service. Avez-vous des appareils comme un scanner, une imprimante-scanner ou un appareil photo?
klanomath
Aussi - si vous vous déconnectez puis vous reconnectez - comment le 7.24 utilisé (1.08 App, 1.75 Wired. 4.41 Compressed) change-t-il? Il peut s'agir d'une simple fuite de mémoire qui se déconnecte et disparaît. Si ce n'est pas clair, j'essaierais de désactiver le scanner de virus et de redémarrer et de voir si la mémoire grimpe aussi vite.
bmike
Cette solution n'était pas applicable à mon problème. @klanomath Je n'ai aucun périphérique externe connecté à mon MacBook.
Zach
@Zach lcdd est contrôlé par un agent de lancement. Il contient une clé "Activer la sortie de pression" qui est désactivée par défaut. Vous pouvez l'activer temporairement (= tuer lcdd si la pression de la mémoire devient trop élevée) et vérifier le résultat. Comme bmike l'a déjà mentionné, la vraie raison est probablement une fuite de mémoire ...
klanomath

Réponses:

6

Je travaille avec un conseiller technique principal d'Apple sur cette question depuis plus d'un an et je travaillais avec un autre conseiller principal depuis un certain temps auparavant. Nous avons effectué la «capture de données» à envoyer aux ingénieurs Apple à plusieurs reprises et effectué des enregistrements d'écran à plusieurs reprises pour montrer ce qui se passe dans le moniteur d'activité, la capture d'image et, finalement, dans une liste que l'icdd maintient dans / Users / user_name / Library / Application Support / icdd / deviceInfoCache.plist (en l'affichant dans Xcode).

À ce stade, voici ma meilleure estimation de ce qui se passe:

Le processus icdd (Image Capture Device Database) voit les scanners aller et venir sur un réseau occupé. Il tente de conserver une liste de leurs fichiers d'icônes dans une table de hachage, qu'il écrit également dans le fichier deviceInfoCache.plist mentionné ci-dessus. Oui - cela semble fou - cela garde les références aux fichiers d'icônes des scanners. Mais encore plus fou, pour une raison quelconque, presque toutes les entrées de ce fichier pointent vers des fichiers .icns qui n'existent pas. Sur plusieurs systèmes que j'ai examinés, il y a eu plusieurs milliers d'entrées dans le fichier, mais seulement quelques-uns des fichiers .icns existaient sur l'une des machines, et aucun n'existait sur les autres. Je crois que lorsque ce fichier devient volumineux, icdd passe beaucoup de temps à essayer de vérifier l'existence d'entrées dans le fichier .plist et à modifier le fichier. Je crois cela pour deux raisons. Tout d'abord, quand je ramène mon ordinateur portable à la maison, le processus icdd continue parfois de fonctionner à environ 100% d'un processeur, mais quand je le tue, il revient à la "normale" environ 0,0 à 0,1%, à chaque fois. Par conséquent, je pense qu'il essaie parfois encore de traiter les informations sur les entrées lorsque je les ouvre à la maison. Mais quand je le tue sur le réseau occupé, il revient souvent à près de 100% tout de suite. Lorsque le nombre de scanners affichés dans Image Capture diminue (ce qui est souvent le cas, mais augmente périodiquement pour une raison quelconque), icdd finira par se stabiliser. Et deuxièmement, la suppression du fichier deviceInfoCache.plist fait que icdd se comporte raisonnablement pendant un court instant - jusqu'à ce que le nombre d'entrées se reconstitue. Notez que icdd conserve une copie de ces entrées en mémoire, donc si vous supprimez le fichier du compte utilisateur, icdd le réécrit immédiatement. Et bien sûr, vous ne pouvez pas tuer icdd assez longtemps pour supprimer le fichier, vous devez donc vous déconnecter et supprimer le fichier d'un autre compte administrateur via le terminal. icdd recréera le fichier lorsque vous vous reconnecterez, mais il aura relativement peu d'entrées et se comportera bien pendant un certain temps.

Pour donner une idée des échelles, les ingénieurs Apple ont été choqués de voir que j'avais jusqu'à 85 scanners affichés dans Image Capture. Souvent, cependant, ce nombre s'établira à environ 6 sur le même système et dans les mêmes délais. Le fichier deviceInfoCache.plist a eu entre 8 000 et 12 600 entrées sur les systèmes que j'ai examinés qui ont eu des problèmes icdd - le mien est le plus grand, et je crois que cela a été transféré d'une ancienne machine depuis que j'avais des problèmes icdd à partir du moment où j'ai installé mon nouveau MacBook Pro en 2016-décembre. Lorsque j'ai supprimé le fichier plist, le nombre d'entrées initiales dans le fichier nouvellement créé était de 44, et pendant quelques jours, l'utilisation du processeur icdd a oscillé près de 0,0%. Cependant, après environ 5 jours sur le campus, mon dossier de plist compte 964 entrées, et l'utilisation du processeur graphique icdd rebondira régulièrement entre 30% et 90% sur le réseau occupé de l'université. Lorsque je suis à la maison, le fichier plist n'augmentera son nombre d'entrées que de 0 à 2 au cours d'une journée. Sur les 12 600 entrées de mon fichier plist précédent, seulement 2 d'entre elles contiennent un "nom de périphérique", les autres contiennent un "iconPathLocation", qui pointent tous vers des fichiers .icns inexistants. Avec le plist actuel, il y a toujours exactement 2 entrées qui contiennent un "deviceName" et les autres contiennent un "iconPathLocation" qui n'existe pas. qui pointent tous vers des fichiers .icns inexistants. Avec le plist actuel, il y a toujours exactement 2 entrées qui contiennent un "deviceName" et les autres contiennent un "iconPathLocation" qui n'existe pas. qui pointent tous vers des fichiers .icns inexistants. Avec le plist actuel, il y a toujours exactement 2 entrées qui contiennent un "deviceName" et les autres contiennent un "iconPathLocation" qui n'existe pas.

Ainsi, la solution à court terme consiste à supprimer le fichier plist d'un autre compte administrateur via le terminal tout en étant déconnecté de votre compte utilisateur. Si tout va bien, avec cette information étant maintenant fournie aux ingénieurs Apple par mon conseiller principal, les ingénieurs Apple auront suffisamment d'informations pour comprendre pourquoi icdd agit de cette façon et résoudre le problème. Bien sûr, il serait probablement utile que vous puissiez vérifier ma solution à court terme et continuer à signaler ce que vous trouvez à Apple.

boîte à outils
la source
Bonne entrée, cela donne une compréhension sous le capot du comportement de l'icdd. Mais à quoi ça sert? où ces icônes (au moins celles existantes) sont-elles affichées? De quelle fonction cet icdd est-il responsable? et lorsque vous supprimez les fichiers .plist, quelles fonctionnalités perdez-vous? De plus, dans mon cas, il y a 5 utilisateurs sur le même Mac, et leurs fichiers icdd .plist ne sont PAS d'accord, mais cela provoque le blocage occasionnel d'icdd et ne pas collecter les déchets et le porc sur le processeur.
Motti Shneor
@Motti Shneor Le deviceInfoCache.plist aurait de temps en temps un périphérique réel répertorié, et je pense que c'est le but prévu. Je pense que c'était un bogue qui le faisait suivre les fichiers d'image d'icône - dont la plupart n'existaient pas. C'était ma supposition initiale, mais je le dis avec plus de confiance maintenant, car en regardant ma version actuelle de cette liste, elle a exactement une entrée, qui est pour un appareil réel. Par conséquent, je pense qu'Apple a corrigé cela dans une version du système d'exploitation (je pense que dans Catalina).
datatoolbox
@Motti Shneor En supprimant la liste, je n'ai jamais remarqué de changement de fonctionnalité - le système d'exploitation vient de reconstruire le fichier au besoin, ce qui ne semble pas prendre beaucoup de temps. Chaque utilisateur a sa propre liste pour cela, et intentionnellement - si un utilisateur utilise un scanner et pas un autre, je m'attendrais à ce que ses listes reflètent cette différence. Je doute donc que les listes d'utilisateurs différents aient un effet d'interaction.
datatoolbox
3

Je traite ce problème depuis un certain temps et j'ai vérifié partout! C'est frustrant ... Enfin j'ai trouvé un lien qui m'a permis de stopper cette stupide folie. Je ne sais pas si c'est la source du problème mais cela pourrait l'arrêter. Voici les étapes:

1) désactiver SIP ( lien )

2) tapez les commandes suivantes:

cd / Applications

sudo mv Image \ Capture.app/ Désactiver \ Image \ Capture.app/

cd / Système / Bibliothèque / Image \ Capture / Support /

sudo mv icdd icdd-disable

3) redémarrer

4) Activez SIP si vous vous souciez

Lien d'origine: https://havecamerawilltravel.com/photographer/prevent-photos-app-mac-osx

J'espère que cela aide.

Mr.Boy
la source
0

J'ai également eu du mal avec ce problème. Ne trouvant pas de réponses en ligne et ne voulant pas jouer avec le terminal, j'ai appelé le support Apple. Au départ, ils pensaient que ma HD était corrompue (c'était - c'était corrigé mais cela n'a pas résolu le problème). Le problème a persisté après avoir augmenté ma RAM. Invité par un commentaire sur Internet concernant les recherches de scanner de réseau, j'ai remarqué que l'ICDD ne deviendrait fou que lorsque le Wi-Fi était activé. Si je me déconnectais du Wi-Fi et quittais l'ICDD, il ne redémarrerait pas et n'augmenterait pas l'utilisation de la RAM ou du CPU (jusqu'à ce que le Wi-Fi soit réactivé).

J'ai de nouveau appelé le support Apple qui semble avoir résolu le problème en réinitialisant SMC et NVRAM. Désormais, l'ICDD fonctionne à un faible niveau (10-20 Mo) plutôt que de consommer plus de 10 Go de RAM. J'ai ajouté des liens ci-dessous pour les faire, mais je recommanderais d'appeler l'assistance Apple pour votre problème spécifique.

Leur explication de la raison pour laquelle cela se produit est liée au fait que ma mémoire RAM est obstruée ou pleine de caches Internet, etc.

J'espère que cela aidera certaines personnes!

Réinitialiser SMC: https://support.apple.com/en-us/ht201295

Réinitialisez la NVRAM: https://support.apple.com/en-us/ht204063

10-15 minutes de correction.

Mes spécifications:

  • début 2011 MacBook Pro 13 "
  • Disque SSD Samsung de 500 Go (mis à niveau il y a environ 1,5 an)
  • 8 Go de RAM (mis à jour il y a environ 1 mois)
  • macOS Sierra 10.12.3 (jusqu'à
  • Parallels 10 avec Windows 10 pour le logiciel SAS
Gary
la source
0

Bien que les réponses ci-dessus fournissent de meilleures données techniques, je voudrais ajouter une note générale.

Ce que nous avons affaire est probablement un logiciel moche, qui contient de vieux bogues depuis des années, qui n'a pas été testé correctement et qui ne sera probablement jamais corrigé. C'est tout. Au cours de la dernière décennie, l'ingénierie logicielle Apple s'est détériorée de manière constante et nous devons tout le temps accepter de tels scénarios.

Habituellement, la réinitialisation de ces éléments logiciels à leur état d'origine (par exemple, en supprimant les caches et en définissant les fichiers, .plists ou même en réinitialisant leurs paramètres par défaut) atténuerait le problème pendant un certain temps.

Une autre façon consiste à réinitialiser le sous-système lié au système d'exploitation. Dans ce cas, par exemple, un clic droit dans le panneau des préférences système des imprimantesvous permettra de "réinitialiser le système d'impression", ce qui effacera probablement la tête d'icdd pendant un certain temps - mais vous forcera à configurer à nouveau votre environnement d'impression.

Et bien sûr, l'ouverture de nouvelles entrées RADR à Apple pourrait éventuellement attirer leur attention sur le sous-système défectueux.

Motti Shneor
la source