Proceso icdd que consume una cantidad considerable de memoria en macOS

Durante la semana pasada, el proceso 'icdd' se inició de vez en cuando y, cuando lo hace, consume una gran cantidad de RAM (más de 7 GB). Cuando esto sucede, mi MacBook Pro esencialmente deja de funcionar hasta que puedo abrir el Monitor de actividad y forzar la finalización del proceso.

Adjunté una captura de pantalla del monitor de actividad que muestra icdd usando más de 7 GB de RAM y haciendo que la presión de la memoria se dispare.

ingrese la descripción de la imagen aquí

¿Alguien sabe qué es este proceso o cómo puedo evitar que este problema ocurra cada 30 minutos más o menos?

No eres la primera persona que tiene este problema. Vea si esta respuesta ayuda: superuser.com/questions/748933/…
icdd está relacionado con Image Capture.app/service. ¿Tiene algún dispositivo conectado como un escáner, una impresora-escáner o una cámara?
Además, si cierra la sesión y luego vuelve a iniciarla, ¿cómo cambia el 7.24 usado (1.08 App, 1.75 Wired. 4.41 Compressed)? Podría ser una simple fuga de memoria que se borre al cerrar sesión y al entrar. Si no se borra, intentaría deshabilitar el escáner de virus y reiniciar y ver si la memoria sube tan rápido.
Esa solución no era aplicable a mi problema. @klanomath No tengo dispositivos externos conectados a mi MacBook.
@Zach lcdd está controlado por un agente de lanzamiento. Contiene una tecla "Habilitar salida de presión" que está deshabilitada por defecto. Puede habilitarlo temporalmente (= matar lcdd si la presión de la memoria es demasiado alta) y verificar el resultado. Como bmike ya mencionó, la verdadera razón probablemente sea una pérdida de memoria ...
He estado solucionando este problema durante algunas semanas, es un gran gasto de batería. Se enciende cada pocos minutos y quema alrededor del 5% de la batería en unos segundos, ejecutando uno o más núcleos al 100%.
Todo lo que he podido averiguar es que se acerca para escanear la red en busca de escáneres en red. Esto parece suceder cada pocos minutos (y, en una universidad, aparentemente hay muchos escáneres en red). Mirando la consola, solo está agregando y eliminando escáneres en red constantemente.
Además, he intentado deshabilitar SIP y editar com.apple.icdd.plist para habilitar la salida de memoria presionada; no sirve de nada De hecho, he probado casi todas las configuraciones allí; disabled evita que suceda, pero también rompe por completo Preview.app.

Respuestas (4)

He estado trabajando con un asesor técnico sénior de Apple en este tema durante más de un año y trabajé con otro asesor sénior durante algún tiempo antes de eso. Realizamos "captura de datos" para enviar a los ingenieros de Apple en varias ocasiones y realizamos grabaciones de pantalla en varias ocasiones para demostrar lo que sucede en el Monitor de actividad, Captura de imagen y, en última instancia, en una lista que icdd mantiene en /Users/user_name /Library/Application Support/icdd/deviceInfoCache.plist (mostrándolo en Xcode).

En este punto, aquí está mi mejor estimación de lo que está sucediendo:

El proceso icdd (Base de datos de dispositivos de captura de imágenes) ve los escáneres ir y venir en una red ocupada. Intenta mantener una lista de sus archivos de iconos en una tabla hash, que también escribe en el archivo deviceInfoCache.plist mencionado anteriormente. Sí, esto suena loco, mantiene referencias a los archivos de iconos de los escáneres. Pero aún más loco es que, por alguna razón, casi todas las entradas en este archivo apuntan a archivos .icns que no existen. De varios sistemas que he examinado, ha habido muchos miles de entradas en el archivo, pero solo unos pocos de los archivos .icns existían en una de las máquinas y ninguno existía en las otras. Creo que cuando este archivo aumenta de tamaño, icdd dedica mucho tiempo a intentar verificar la existencia de entradas en el archivo .plist y modificar el archivo. Creo esto por dos razones. Primero, cuando me llevo mi laptop a casa, el proceso icdd a veces continúa ejecutándose aproximadamente al 100% de una CPU, pero cuando lo elimino, vuelve a la "normalidad" aproximadamente de 0.0 a 0.1%, cada vez. Por lo tanto, creo que a veces todavía está tratando de procesar información sobre las entradas cuando lo abro en casa. Pero cuando lo elimino mientras estoy en la red ocupada, a menudo vuelve casi al 100% de inmediato. Cuando la cantidad de escáneres que se muestran en Image Capture disminuye (lo que ocurre a menudo, pero aumenta periódicamente por alguna razón), icdd eventualmente se estabilizará. Y segundo, eliminar el archivo deviceInfoCache.plist hace que icdd se comporte razonablemente por un corto tiempo, hasta que la cantidad de entradas se acumula nuevamente. Tenga en cuenta que icdd mantiene una copia de estas entradas en la memoria, por lo que si elimina el archivo de la cuenta de usuario, icdd simplemente lo reescribe de inmediato. Y, por supuesto, puedes' t matar icdd el tiempo suficiente para eliminar el archivo, por lo que debe cerrar sesión y eliminar el archivo de otra cuenta de administrador a través de la terminal. icdd volverá a crear el archivo cuando vuelva a iniciar sesión, pero tendrá relativamente pocas entradas y se comportará bien durante un tiempo.

Para dar una idea de las escalas, los ingenieros de Apple se sorprendieron al ver que tenía hasta 85 escáneres en Image Capture. Sin embargo, a menudo, este número se establecerá en aproximadamente 6 en el mismo sistema y durante los mismos períodos de tiempo. El archivo deviceInfoCache.plist ha tenido entre 8000 y 12 600 entradas en los sistemas que he examinado que han tenido problemas de icdd; el mío es el más grande y creo que se transfirió de una máquina más antigua porque tenía problemas de icdd desde el momento en que configuré mi nuevo MacBook Pro en 2016-dic. Cuando eliminé el archivo plist, la cantidad de entradas iniciales en el archivo recién creado era 44 y, durante unos días, el uso de la CPU icdd estuvo cerca del 0,0 %. Sin embargo, después de unos 5 días en el campus, mi archivo plist tiene 964 enteros, y el uso de la CPU icdd rebotará rutinariamente entre un 30 % y un 90 % en la red ocupada de la universidad. Cuando estoy en casa, el archivo plist solo aumentará su número de entradas de 0 a 2 en el transcurso de un día. De las 12 600 entradas en mi archivo plist anterior, solo 2 de ellas contienen un "nombre de dispositivo", el resto contiene un "iconPathLocation", todo lo cual apunta a archivos .icns inexistentes. Con el plist actual, todavía hay exactamente 2 entradas que contienen un "nombre de dispositivo" y el resto contiene un "iconPathLocation" que no existe. todo lo cual apunta a archivos .icns inexistentes. Con el plist actual, todavía hay exactamente 2 entradas que contienen un "nombre de dispositivo" y el resto contiene un "iconPathLocation" que no existe. todo lo cual apunta a archivos .icns inexistentes. Con el plist actual, todavía hay exactamente 2 entradas que contienen un "nombre de dispositivo" y el resto contiene un "iconPathLocation" que no existe.

Entonces, la solución a corto plazo es eliminar el archivo plist de otra cuenta de administrador a través de la terminal mientras está desconectado de su cuenta de usuario. Con suerte, con esta información ahora proporcionada a los ingenieros de Apple por mi asesor principal, los ingenieros de Apple tendrán suficiente información para descubrir por qué icdd está actuando de esta manera y solucionar el problema. Por supuesto, probablemente ayudaría si puede verificar mi solución a corto plazo y continuar informando lo que encuentre a Apple.

Buena entrada, que brinda una comprensión interna de cómo se comporta el icdd. Pero ¿para qué sirve? ¿Dónde se muestran estos iconos (al menos los existentes)? ¿De qué función es responsable este icdd? y cuando elimina los archivos .plist, ¿qué funcionalidad pierde? Además, en mi caso, hay 5 usuarios en la misma Mac, y sus archivos icdd .plist NO están de acuerdo, pero eso hace que icdd se bloquee ocasionalmente y no recolecte basura y acapare la CPU.
@Motti Shneor DeviceInfoCache.plist ocasionalmente tendría un dispositivo real en la lista, y creo que este es el propósito previsto. Creo que fue un error lo que provocó que realizara un seguimiento de los archivos de imágenes de iconos, la mayoría de los cuales no existían. Esta fue mi suposición inicial, pero ahora lo digo con más confianza porque al mirar mi versión actual de este plist, tiene exactamente una entrada, que es para un dispositivo real. Por lo tanto, creo que Apple solucionó esto en alguna versión del sistema operativo (sospecho que en Catalina).
@Motti Shneor Al eliminar la plist, nunca noté ningún cambio en la funcionalidad: el sistema operativo simplemente reconstruyó el archivo según sea necesario, lo que no parece llevar mucho tiempo. Cada usuario tiene su propio plist para esto, e intencionalmente: si un usuario usa un escáner y otro no, espero que sus plist reflejen esta diferencia. Así que dudo que las plists de diferentes usuarios tengan un efecto de interacción.

¡He estado lidiando con este problema por un tiempo y he estado revisando por todas partes! Es frustrante... Finalmente encontré un enlace que podía detener esta estúpida locura. No estoy seguro de si esta es la fuente del problema, pero podría detenerlo. Aquí están los pasos:

1) deshabilitar SIP ( enlace )

2) escriba los siguientes comandos:

cd /Aplicaciones

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

cd /Sistema/Biblioteca/Imagen\ Captura/Soporte/

sudo mv icdd icdd-disable

3) reiniciar

4) habilite SIP si le importa

Enlace original: https://havecamerawilltravel.com/photographer/prevent-photos-app-mac-osx

Espero que ayude

He estado luchando con este problema también. Al no encontrar respuestas en línea y no querer meterme con la terminal, llamé al Soporte de Apple. Inicialmente, pensaron que mi disco duro estaba dañado (lo estaba, eso se arregló pero no solucionó el problema). El problema persistió después de aumentar mi RAM. Impulsado por un comentario en Internet sobre las búsquedas de escáneres de red, noté que ICDD solo se volvía loco cuando se habilitaba el Wi-Fi. Si me desconectaba de wi-Fi y salía de ICDD, no se reiniciaba ni aumentaba el uso de RAM o CPU (hasta que se volviera a habilitar Wi-Fi).

Llamé nuevamente al Soporte de Apple, que parece haber solucionado el problema al restablecer SMC y NVRAM. Ahora ICDD se ejecuta a un nivel bajo (10-20 MB) en lugar de consumir más de 10 GB de RAM. He agregado enlaces a continuación para hacer eso, pero recomendaría llamar al Soporte de Apple para su problema específico.

Su explicación de por qué sucede esto tiene que ver con mi RAM obstruida o llena de cachés de Internet, etc. Por qué acaba de hacerse evidente y si está asociado con Sierra, no puedo decirlo.

¡Espero que esto ayude a algunas personas!

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

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

Solución de 10-15 minutos.

Mis especificaciones:

  • principios de 2011 MacBook Pro de 13"
  • SSD Samsung de 500 GB (actualizado hace aproximadamente 1,5 años)
  • 8 GB de RAM (actualizado hace ~1 mes)
  • macOS Sierra 10.12.3 (hasta
  • Parallels 10 con Windows 10 para software SAS

Si bien las respuestas anteriores brindan mejores datos técnicos, me gustaría agregar una nota general.

Con lo que estamos lidiando es probablemente con una pieza de software pésima, que contiene errores antiguos durante años, que no se probó correctamente y que probablemente nunca se arregle. Eso es todo. En la última década, la ingeniería de software de Apple se está deteriorando de manera constante, y tenemos que soportar tales escenarios todo el tiempo.

Por lo general, restablecer dichas piezas de software a su estado original (por ejemplo, eliminando cachés y configurando archivos, .plists o incluso restableciendo sus valores predeterminados de usuario) aliviaría el problema durante algún tiempo.

Otra forma es restablecer el subsistema relacionado con el sistema operativo. En este caso, por ejemplo, un clic derecho en el panel de preferencias del sistema de impresorasle permitirá "restablecer el sistema de impresión", lo que probablemente aclarará la cabeza de icdd por un tiempo, pero lo obligará a configurar su entorno de impresión nuevamente.

Y, por supuesto, abrir nuevas entradas de RADR a Apple puede eventualmente llamar su atención sobre el subsistema defectuoso.