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.
¿Alguien sabe qué es este proceso o cómo puedo evitar que este problema ocurra cada 30 minutos más o menos?
Respuestas:
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.
fuente
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:
Enlace original: https://havecamerawilltravel.com/photographer/prevent-photos-app-mac-osx
Espero que ayude.
fuente
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:
fuente
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, le 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.
fuente