Процес icdd, що використовує значну пам’ять на macOS


13

За останній тиждень або близько того процес 'icdd' почався час від часу і коли він витрачає величезну кількість оперативної пам’яті (до 7 ГБ). Коли це трапляється, мій MacBook Pro по суті стає нефункціональним, поки я не можу відкрити Монітор активності та примусити вбити процес.

Я додав скріншот монітора активності, на якому показано icdd, використовуючи понад 7 ГБ оперативної пам’яті та зробивши підвищення тиску в пам'яті.

введіть тут опис зображення

Хтось знає, що це за процес чи як я можу запобігти виникненню цієї проблеми кожні 30 хвилин чи так?


1
Ви не перша людина, яка має цю проблему. Дивіться, чи допомагає ця відповідь: superuser.com/questions/748933/…
NoahL

1
icdd пов'язаний з Image Capture.app/service. Чи є у вас приєднані такі пристрої, як сканер, принтер-сканер або камера?
кланомат

Також - якщо ви виходите з системи та повертаєтесь назад - як змінюється використовуваний 7,24 (1,08 додаток, 1,75 провідний. 4,41 стислий)? Це може бути простий витік пам'яті, який виходить із системи та очищається. Якщо це не зрозуміло, я б спробував відключити сканер вірусів і перезавантажити і побачити, чи пам’ять піднімається так швидко.
bmike

Це рішення не стосувалося мого питання. @klanomath У мене на MacBook не встановлені зовнішні пристрої.
Зак

@Zach lcdd контролюється запускаючим агентом. Він містить клавішу "Увімкнути вихід тиску", яка за замовчуванням відключена. Ви можете ввімкнути його тимчасово (= вбити lcdd, якщо тиск у пам'яті підвищиться) і перевірити результат. Як і раніше згадуваний bmike, справжня причина, ймовірно, - це витік пам'яті, хоча ...
klanomath

Відповіді:


6

Я працюю з старшим технічним радником Apple в цьому питанні вже більше року, і деякий час до цього працював з іншим старшим радником. Ми зробили "захоплення даних", щоб декілька разів надсилати інженерам Apple, і кілька разів робили записи на екрані, щоб продемонструвати, що відбувається в "Моніторі діяльності", "Захопленні зображень", і, нарешті, в списку, який підтримує icdd в / Користувачі / Ім'я користувача / Бібліотека / Підтримка програм / icdd / deviceInfoCache.plist (відображаючи його в Xcode).

На даний момент ось моя найкраща оцінка того, що відбувається:

Процес icdd (база даних пристроїв захоплення зображень) бачить, як сканери приходять і переходять у зайняту мережу. Він намагається зберегти список їхніх файлів значків у хеш-таблиці, яку він також записує у згаданий вище файл deviceInfoCache.plist. Так - це звучить божевільно - він зберігає посилання на файли значків сканерів. Але навіть більш божевільним є те, що чомусь майже всі записи цього файлу вказують на файли .icns, які не існують. З декількох систем, які я переглянув, у файл було багато тисяч записів, але лише кілька файлів .icns існували на одній із машин, а на інших - жодної. Я вважаю, що коли цей файл набуває великих розмірів, icdd витрачає багато часу, намагаючись перевірити наявність записів у файлі .plist та змінити файл. Я вважаю це з двох причин. По-перше, коли я беру свій ноутбук додому, Процес icdd іноді продовжує працювати приблизно на 100% процесора, але коли я його вбиваю, він щоразу повертається до "нормального" приблизно від 0,0 до 0,1%. Отже, я думаю, що іноді все ще намагаються обробити інформацію про записи, коли я відкриваю її вдома. Але коли я вбиваю його, перебуваючи в напруженій мережі, він часто повертається майже на 100% відразу. Коли кількість сканерів, зображених у програмі Capture Image, зменшиться (що це часто робиться, але періодично з певних причин періодично зростає), icdd з часом вщухне. По-друге, видалення файлу deviceInfoCache.plist змушує icdd поводитись розумно ненадовго - доки кількість записів знову не накопичується. Зауважте, що icdd зберігає копію цих записів у пам'яті, тому якщо ви видалите файл з облікового запису користувача, icdd просто переписує його негайно. І звичайно, ви не можете вбити icdd досить довго, щоб видалити файл, тому вам доведеться вийти та видалити файл з іншого облікового запису адміністратора через термінал. icdd відтворить файл, коли ви знову ввійдете в систему, але він буде мати відносно мало записів і буде добре поводитися деякий час.

Щоб дати уявлення про масштаби, інженери Apple були шоковані, побачивши, що у мене є аж 85 сканерів, що відображаються в програмі Image Capture. Однак часто ця кількість може відповідати приблизно 6 в тій же системі та протягом тих же часових кадрів. У файлі deviceInfoCache.plist було від 8000 до 12 600 записів у системах, які я переглянув, у яких виникли проблеми з icdd - моя більша, і я вважаю, що це перенесло на старіші машини, оскільки у мене виникли проблеми з icdd з часу, коли я створив свій новий MacBook Pro у 2016-му грудні. Коли я видалив файл plist, кількість початкових записів у новоствореному файлі становила 44, і протягом декількох днів використання процесора icdd cpu становило близько 0,0%. Однак, приблизно через 5 днів у кампусі, у моєму файлі плістів налічується 964 учасники, та використання ICDD-процесора регулярно відскакує від 30% до 90% у напруженій мережі університету. Коли я вдома, файл plist лише збільшить кількість записів на 0 до 2 протягом дня. З 12 600 записів у моєму попередньому файлі плістів, лише 2 містять "deviceName", решта містять "iconPathLocation", усі вони вказують на неіснуючі файли .icns. У поточному списку є ще рівно 2 записи, які містять "deviceName", а решта містять "iconPathLocation", який не існує. всі вони вказують на неіснуючі файли .icns. У поточному списку є ще рівно 2 записи, які містять "deviceName", а решта містять "iconPathLocation", який не існує. всі вони вказують на неіснуючі файли .icns. У поточному списку є ще рівно 2 записи, які містять "deviceName", а решта містять "iconPathLocation", який не існує.

Отже, короткострокове рішення - видалити файл plist з іншого облікового запису адміністратора через термінал під час виходу з облікового запису користувача. Сподіваємось, що ця інформація зараз надається інженерам Apple від мого старшого радника, у Apple Engineers буде достатньо інформації, щоб зрозуміти, чому icdd діє таким чином, і вирішити проблему. Звичайно, це, мабуть, допоможе, якщо ви зможете перевірити моє короткострокове рішення і продовжувати звітувати про те, що ви знайдете в Apple.


Хороший запис, який дає певне розуміння того, як поводиться icdd. Але для чого це? де відображаються ці значки (принаймні існуючі)? За яку функцію відповідає цей icdd? і коли ви видаляєте файли .plist, яку функціональність ви втрачаєте? Крім того, в моєму випадку на тому ж Mac є 5 користувачів, і їхні файли icdd .plist НЕ згодні, але це призводить до того, що icdd періодично виходить з ладу і не збирає сміття та свиня на процесорі.
Motti Shneor

@Motti Shneor У пристроїInfoCache.plist періодично є фактичний пристрій, перелічений у ньому, і я думаю, що це призначено. Я думаю, що саме помилка змусила його відслідковувати файли зображень-значків - більшості з яких не існувало. Це було моїм початковим припущенням, але я говорю це з більшою впевненістю, тому що, дивлячись на мою поточну версію цього списку, він має точно один запис, який призначений для фактичного пристрою. Отже, я думаю, що Apple виправила це в якійсь версії ОС (я підозрюю, що в Каталіні).
datatoolbox

@Motti Shneor Видаляючи список, я ніколи не помічав жодних змін у функціональності - ОС просто переробляла файл у міру необхідності, що, здається, не займе багато часу. Кожен користувач має свій власний список для цього, і навмисно так - якщо один користувач використовує сканер, а інший - ні, я би сподівався, що їхні списки відображають цю різницю. Тому я сумніваюся, що списки різних користувачів матимуть ефект взаємодії.
datatoolbox

3

Я певний час займався цією проблемою і перевіряю всюди! Це засмучує ... Нарешті я знайшов посилання, що можу зупинити це дурне безумство. Я не впевнений, що це джерело проблеми, але це може її зупинити. Ось такі кроки:

1) відключити SIP ( посилання )

2) введіть такі команди:

CD / Програми

sudo mv Image \ Capture.app/ Вимкнути \ Зображення \ Capture.app/

cd / Система / Бібліотека / Зображення \ Захоплення / Підтримка /

sudo mv icdd icdd-відключити

3) перезавантажити

4) увімкніть SIP, якщо вам все одно

Оригінальне посилання: https://havecamerawilltravel.com/photographer/prevent-photos-app-mac-osx

Сподіваємось, це допомагає.


0

Я також боровся з цією проблемою. Не знаходячи відповідей в Інтернеті і не бажаючи возитися з терміналом, я зателефонував у службу підтримки Apple. Спочатку вони вважали, що мій HD пошкоджений (це було - це було виправлено, але не виправили проблему). Проблема не зникала після збільшення моєї оперативної пам’яті. Запросивши коментар в Інтернеті щодо пошуку мережевого сканера, я помітив, що ICDD з глузду з'їде лише тоді, коли буде включений Wi-Fi. Якщо я відключився від Wi-Fi і вийшов з ICDD, він не перезапуститься і не перейде в оперативну пам’ять або використання процесора (поки Wi-Fi не ввімкнеться знову).

Я знову зателефонував до служби підтримки Apple, яка, здається, усунула проблему, скинувши SMC та NVRAM. Тепер ICDD працює на низькому рівні (10-20 МБ), а не споживає 10+ ГБ оперативної пам’яті. Нижче я додав посилання для їх виконання, але рекомендую зателефонувати в службу підтримки Apple для вашої конкретної проблеми.

Їх пояснення, чому це відбувається, було пов'язане з тим, що моя оперативна пам'ять забита або заповнена інтернет-кешами і т. Д. Чому це тільки зараз стало очевидним і чи пов’язане воно з Sierra, я не можу сказати.

Я сподіваюся, що це допомагає деяким людям!

Скинути SMC: https://support.apple.com/en-us/ht201295

Скиньте NVRAM: https://support.apple.com/en-us/ht204063

Виправити 10-15 хвилин.

Мої характеристики:

  • початок 2011 року 13 "MacBook Pro
  • 500 Гб Samsung SSD (оновлено ~ 1,5 р. Тому)
  • 8 Гб оперативної пам’яті (оновлено ~ 1 місяць тому)
  • macOS Sierra 10.12.3 (до
  • Паралелі 10 з Windows 10 для програмного забезпечення SAS

0

Хоча наведені вище відповіді надають кращі технічні дані, я хотів би додати загальну примітку.

З чим ми маємо справу - це, мабуть, хитра частина програмного забезпечення, яка несе старі помилки роками, яка не перевірена належним чином і, ймовірно, ніколи не виправиться. Це все. В останнє десятиліття інженерія програмного забезпечення Apple постійно погіршується, і нам доводиться постійно миритися з такими сценаріями.

Зазвичай скидання таких фрагментів програмного забезпечення до їх початкового стану (скажімо, видалення кешів та встановлення файлів, .plists або навіть скидання налаштувань за замовчуванням) полегшить проблему на деякий час.

Інший спосіб - скинути підсистему, пов’язану з ОС. Наприклад, у такому випадку клацніть правою кнопкою миші на панелі налаштувань принтерівви дозволите "скинути систему друку", яка, ймовірно, на деякий час очистить голову icdd - але змусить вас знову налаштувати середовище друку.

І звичайно, відкриття нових записів RADR для Apple може врешті привернути їх увагу до несправної підсистеми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.