Proceso icdd que consume memoria sustancial en macOS


13

En la última semana más o menos, el proceso 'icdd' ha comenzado 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 no funciona hasta que puedo abrir el Monitor de actividad y forzar el proceso.

He adjuntado 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?


1
No eres la primera persona en tener este problema. A ver si esta respuesta ayuda: superuser.com/questions/748933/...
NoahL

1
icdd está relacionado con Image Capture.app/service. ¿Tiene algún dispositivo como un escáner, impresora-escáner o cámara conectada?
klanomath

Además, si cierra la sesión y luego vuelve a iniciarla, ¿cómo cambia la versión 7.24 utilizada (1.08 aplicación, 1.75 con cable. 4.41 comprimida)? Podría ser una simple pérdida de memoria que se cierra y cierra sesión. Si no se aclara, intentaría deshabilitar el antivirus y reiniciar y ver si la memoria sube tan rápido.
bmike

Esa solución no era aplicable a mi problema. @klanomath No tengo dispositivos externos conectados a mi MacBook.
Zach

@Zach lcdd es controlado por un agente de lanzamiento. Contiene una clave "Habilitar salida de presión" que está deshabilitada por defecto. Puede habilitarlo temporalmente (= matar a lcdd si la presión de la memoria llega a ser alta) y verificar el resultado. Como bmike ya mencionó, la verdadera razón probablemente sea una pérdida de memoria ...
klanomath

Respuestas:


6

He estado trabajando con un asesor técnico senior en Apple sobre este tema durante más de un año, y estuve trabajando con otro asesor senior durante algún tiempo antes de eso. Hemos realizado "captura de datos" para enviar a los ingenieros de Apple en varias ocasiones y hemos realizado grabaciones de pantalla en varias ocasiones para demostrar lo que está sucediendo en Activity Monitor, Image Capture 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 (Image Capture Device Database) ve a 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, es mantener 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 visto, ha habido muchos miles de entradas en el archivo, pero solo unos pocos archivos .icns existían en una de las máquinas, y ninguno existía en los demás. Creo que cuando este archivo se hace grande, icdd pasa mucho tiempo tratando de verificar la existencia de entradas en el archivo .plist y modificar el archivo. Creo esto por dos razones. Primero, cuando llevo mi computadora portátil a casa, el proceso icdd a veces continúa ejecutándose a aproximadamente el 100% de una CPU, pero cuando lo mato, vuelve a la "normalidad" aproximadamente de 0.0 a 0.1%, cada vez. Por lo tanto, creo que a veces todavía estoy tratando de procesar información sobre las entradas cuando la abro en casa. Pero cuando lo mato mientras estoy en la red ocupada, a menudo vuelve casi al 100% de inmediato. Cuando el número de escáneres que se muestran en Captura de imagen disminuye (lo que suele ocurrir, pero se disparará periódicamente por algún motivo), icdd finalmente se estabilizará. Y segundo, eliminar el archivo deviceInfoCache.plist hace que icdd se comporte razonablemente por un corto tiempo, hasta que el número de entradas se acumule 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, no puede matar a 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 del terminal. icdd volverá a crear el archivo cuando vuelva a iniciar sesión, pero tendrá relativamente pocas entradas y se comportará bien por un tiempo.

Para dar una idea de las escalas, los ingenieros de Apple se sorprendieron al ver que tenía hasta 85 escáneres que se mostraban en Captura de imagen. Sin embargo, a menudo, este número se establecerá en aproximadamente 6 en el mismo sistema y durante los mismos plazos. El archivo deviceInfoCache.plist ha tenido entre 8,000 y 12,600 entradas en los sistemas que he visto que han tenido problemas con icdd: el mío es el más grande, y creo que esto se transfirió desde una máquina más antigua ya que tenía problemas con icdd desde el momento en que configuré mi nuevo MacBook Pro en 2016-dic. Cuando eliminé el archivo plist, el número de entradas iniciales en el archivo recién creado fue de 44, y durante unos días el uso de la CPU icdd estuvo cerca del 0.0%. Sin embargo, después de aproximadamente 5 días en el campus, mi archivo plist tiene 964 entradas, y el uso de la CPU icdd rebotará rutinariamente entre 30% y 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 "deviceName", el resto contiene un "iconPathLocation", todas las cuales apuntan a archivos .icns inexistentes. Con el plist actual, todavía hay exactamente 2 entradas que contienen un "deviceName", 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 "deviceName", 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 "deviceName", y el resto contiene un "iconPathLocation" que no existe.

Por lo tanto, la solución a corto plazo es eliminar el archivo plist de otra cuenta de administrador a través del terminal mientras está desconectado de su cuenta de usuario. Afortunadamente, con esta información ahora proporcionada a los ingenieros de Apple de 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 pudiera verificar mi solución a corto plazo y continuar informando lo que encuentre a Apple.


Buena entrada, que da una comprensión poco profunda de cómo se comporta el icdd. Pero para que 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 ocasiona que icdd se bloquee ocasionalmente y no recolecte basura y acapare en la CPU.
Motti Shneor

@Motti Shneor El 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 que causaba que rastreara los archivos de imágenes de iconos, la mayoría de los cuales no existían. Esta fue mi suposición inicial, pero lo digo con más confianza ahora porque al ver 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).
datatoolbox

@Motti Shneor Al eliminar el plist, nunca noté ningún cambio en la funcionalidad: el sistema operativo simplemente reconstruyó el archivo según sea necesario, lo que no parece tomar mucho tiempo. Cada usuario tiene su propia opción para esto, y de manera intencional, si un usuario usa un escáner y otro no, esperaría que sus listas reflejen esta diferencia. Así que dudo que las listas de usuarios diferentes tengan un efecto de interacción.
datatoolbox

3

He estado lidiando con este problema por un tiempo y he estado revisando en todas partes Es frustrante ... Finalmente encontré un enlace para poder 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 / System / Library / Image \ Capture / Support /

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.


0

He estado luchando con este problema también. Al no encontrar respuestas en línea y no querer meterse con el terminal, llamé al Soporte de Apple. Inicialmente, pensaron que mi HD estaba dañado (lo estaba, eso se solucionó pero no solucionó el problema). El problema persistió después de aumentar mi RAM. Debido a un comentario de Internet sobre las búsquedas de escáner de red, noté que ICDD solo se volvería loco cuando se habilitara el Wi-Fi. Si me desconectara de Wi-Fi y saliera de ICDD, no se reiniciaría y subiría el uso de RAM o CPU (hasta que se vuelva a habilitar Wi-Fi).

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

Su explicación de por qué está sucediendo esto tiene que ver con que mi RAM esté obstruida o llena de cachés de Internet, etc. Por qué ahora se ha vuelto evidente y si está asociado con Sierra, no puedo decir.

¡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

10-15 minutos de reparación.

Mis especificaciones:

  • principios de 2011 13 "MacBook Pro
  • 500 GB Samsung SSD (actualizado hace ~ 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

0

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

Con lo que estamos lidiando es probablemente con una pésima pieza de software, que lleva errores viejos durante años, que no se probó correctamente y que probablemente nunca se reparará. 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 dichos componentes de software a su estado original (por ejemplo, eliminando cachés y configurando archivos, listas o incluso restableciendo sus valores predeterminados de usuario) aliviaría el problema por 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 despejará 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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.