Proses icdd menghabiskan banyak memori pada macOS

13

Dalam seminggu terakhir ini proses 'icdd' telah dimulai dari waktu ke waktu dan ketika itu mengkonsumsi banyak sekali RAM (lebih dari 7 GB). Ketika ini terjadi, MacBook Pro saya pada dasarnya menjadi tidak berfungsi sampai saya bisa membuka Monitor Aktivitas dan mematikan proses secara paksa.

Saya telah memasang tangkapan layar monitor aktivitas yang menunjukkan icdd menggunakan lebih dari 7GB RAM dan membuat tekanan memori meroket.

masukkan deskripsi gambar di sini

Apakah ada yang tahu apa proses ini atau bagaimana saya dapat mencegah masalah ini terjadi setiap 30 menit atau lebih?

Zach
sumber
1
Anda bukan orang pertama yang memiliki masalah ini. Lihat apakah jawaban ini membantu: superuser.com/questions/748933/…
NoahL
1
icdd terkait dengan Image Capture.app/service. Apakah Anda memiliki perangkat seperti pemindai, pemindai printer atau kamera yang terpasang?
klanomath
Juga - jika Anda keluar dan kembali - bagaimana 7.24 digunakan (Aplikasi 1.08, Kabel 1.75. 4.41 Terkompresi) berubah? Ini bisa menjadi kebocoran memori sederhana yang logout dan membersihkan. Jika tidak jelas, saya akan mencoba menonaktifkan pemindai virus dan me-reboot dan melihat apakah memori naik secepat.
bmike
Solusi itu tidak berlaku untuk masalah saya. @klanomath Saya tidak memiliki perangkat eksternal yang terpasang pada MacBook saya.
Zach
@Zach lcdd dikendalikan oleh agen peluncuran. Ini berisi kunci "Aktifkan tekanan keluar" yang dinonaktifkan secara default. Anda dapat mengaktifkannya sementara (= matikan lcdd jika tekanan memori terlalu tinggi) dan periksa hasilnya. Seperti bmike yang telah disebutkan alasan sebenarnya mungkin karena kebocoran memori ...
klanomath

Jawaban:

6

Saya telah bekerja dengan penasihat teknis senior di Apple untuk masalah ini selama lebih dari setahun, dan bekerja dengan penasihat senior lain untuk beberapa waktu sebelum itu. Kami telah melakukan "pengambilan data" untuk mengirim ke Apple Engineers pada beberapa kesempatan dan melakukan perekaman layar pada beberapa kesempatan untuk menunjukkan apa yang terjadi di Activity Monitor, Image Capture, dan, pada akhirnya, dalam sebuah plist yang disimpan oleh icdd di / Users / user_name / Library / Dukungan Aplikasi / icdd / deviceInfoCache.plist (dengan menampilkannya dalam Xcode).

Pada titik ini, inilah perkiraan terbaik saya tentang apa yang terjadi:

Proses icdd (Database Perangkat Pengambilan Gambar) melihat pemindai datang dan pergi di jaringan yang sibuk. Itu mencoba untuk menyimpan daftar file ikon mereka di tabel hash, yang juga menulis ke file deviceInfoCache.plist yang disebutkan di atas. Ya - ini terdengar gila - ia menyimpan referensi ke file ikon pemindai. Tetapi yang lebih gila lagi adalah, karena alasan tertentu, hampir semua entri dalam file ini menunjuk ke .icns file yang tidak ada. Dari beberapa sistem yang saya lihat, ada ribuan entri dalam file, namun hanya beberapa file .icns yang ada di salah satu mesin, dan tidak ada yang ada di yang lain. Saya percaya bahwa ketika file ini menjadi besar, icdd menghabiskan banyak waktu untuk memeriksa keberadaan entri dalam file .plist dan memodifikasi file tersebut. Saya percaya ini karena dua alasan. Pertama, ketika saya membawa pulang laptop saya, proses icdd kadang-kadang terus berjalan pada sekitar 100% CPU, tetapi ketika saya kemudian membunuhnya, ia kembali ke "normal" sekitar 0,0 hingga 0,1%, setiap saat. Oleh karena itu, saya pikir kadang-kadang masih mencoba untuk memproses informasi tentang entri ketika saya membukanya di rumah. Tetapi ketika saya membunuhnya saat berada di jaringan yang sibuk, sering kembali mendekati 100% segera. Ketika jumlah pemindai yang diperlihatkan dalam Pengambilan Gambar turun (yang sering terjadi, tetapi secara berkala akan melonjak karena suatu alasan), icdd akhirnya akan tenang. Dan kedua, menghapus file deviceInfoCache.plist menyebabkan icdd berperilaku wajar untuk sementara waktu - hingga jumlah entri bertambah. Perhatikan bahwa icdd menyimpan salinan entri ini dalam memori, jadi jika Anda menghapus file dari akun pengguna, icdd langsung menulis ulang segera. Dan tentu saja, Anda tidak dapat membunuh icdd cukup lama untuk menghapus file, jadi Anda harus keluar dan menghapus file dari akun administrator lain melalui terminal. icdd akan membuat ulang file ketika Anda masuk kembali, tetapi itu akan memiliki entri yang relatif sedikit dan berperilaku baik untuk sementara waktu.

Untuk memberikan gambaran tentang skala, Insinyur Apple terkejut melihat bahwa saya memiliki sebanyak 85 pemindai yang ditampilkan dalam Pengambilan Gambar. Namun, sering kali angka ini akan berkurang menjadi sekitar 6 pada sistem yang sama dan selama jangka waktu yang sama. File deviceInfoCache.plist memiliki antara 8.000 dan 12.600 entri pada sistem yang telah saya lihat yang memiliki masalah icdd - milik saya adalah yang lebih besar, dan saya percaya ini terbawa dari mesin yang lebih lama sejak saya mengalami masalah icdd sejak saya mengatur MacBook Pro baru saya di 2016-Des. Ketika saya menghapus file plist, jumlah entri awal dalam file yang baru dibuat adalah 44, dan selama beberapa hari penggunaan icdd cpu hampir mencapai 0,0%. Namun, setelah sekitar 5 hari di kampus, file plist saya memiliki 964 entires, dan penggunaan icdd cpu secara rutin akan meningkat antara 30% dan 90% di jaringan sibuk di universitas. Ketika saya di rumah, file plist hanya akan menambah jumlah entri sebanyak 0 hingga 2 selama sehari. Dari 12.600 entri dalam file plist saya sebelumnya, hanya 2 yang berisi "deviceName", sisanya berisi "iconPathLocation", yang semuanya mengarah ke file .icns yang tidak ada. Dengan plist saat ini, masih ada persis 2 entri yang berisi "deviceName", dan sisanya berisi "iconPathLocation" yang tidak ada. yang semuanya mengarah ke file .icns yang tidak ada. Dengan plist saat ini, masih ada persis 2 entri yang berisi "deviceName", dan sisanya berisi "iconPathLocation" yang tidak ada. yang semuanya mengarah ke file .icns yang tidak ada. Dengan plist saat ini, masih ada persis 2 entri yang berisi "deviceName", dan sisanya berisi "iconPathLocation" yang tidak ada.

Jadi, solusi jangka pendeknya adalah menghapus file plist dari akun administrator lain melalui terminal saat keluar dari akun pengguna Anda. Mudah-mudahan, dengan informasi ini sekarang diberikan kepada Apple Engineers dari Senior Advisor saya, Apple Engineers akan memiliki informasi yang cukup untuk mencari tahu mengapa icdd bertindak seperti ini dan memperbaiki masalah. Tentu saja, mungkin akan membantu jika Anda dapat memverifikasi solusi jangka pendek saya dan terus melaporkan apa yang Anda temukan ke Apple.

datatoolbox
sumber
Entri yang bagus, yang memberikan beberapa pemahaman di bawah kap tentang bagaimana icdd berperilaku. Tapi untuk apa ini? di mana ikon-ikon ini (setidaknya yang sudah ada) ditampilkan? Apa fungsi icdd yang bertanggung jawab ini? dan ketika Anda menghapus file .plist, fungsi apa yang hilang dari Anda? Juga, dalam kasus saya, ada 5 pengguna pada Mac yang sama, dan file .plist icdd mereka TIDAK setuju, tetapi itu menyebabkan icdd crash sesekali dan tidak mengumpulkan sampah dan babi di CPU.
Motti Shneor
@Motti Shneor DeviceInfoCache.plist sesekali akan memiliki perangkat yang sebenarnya terdaftar di dalamnya, dan saya pikir ini adalah tujuan yang dimaksud. Saya pikir itu adalah bug yang menyebabkannya melacak file ikon-gambar - sebagian besar tidak ada. Ini adalah tebakan awal saya, tetapi saya mengatakan ini dengan lebih percaya diri sekarang karena melihat versi saya saat ini dari plist, ia memiliki tepat satu entri, yaitu untuk perangkat yang sebenarnya. Oleh karena itu, saya pikir Apple memperbaikinya di beberapa versi OS (saya curiga di Catalina).
datatoolbox
@Motti Shneor Dalam menghapus plist, saya tidak pernah melihat adanya perubahan fungsi - OS hanya membangun kembali file sesuai kebutuhan, yang sepertinya tidak memakan banyak waktu. Setiap pengguna memiliki plist mereka sendiri untuk ini, dan sengaja demikian - jika satu pengguna menggunakan pemindai dan yang lain tidak, saya akan mengharapkan plist mereka untuk mencerminkan perbedaan ini. Jadi saya ragu pengguna yang berbeda akan memiliki efek interaksi.
datatoolbox
3

Saya telah berurusan dengan masalah ini untuk sementara waktu dan telah memeriksa di mana-mana! Sangat menyebalkan ... Akhirnya saya menemukan tautan bahwa saya bisa menghentikan kegilaan bodoh ini. Saya tidak yakin apakah ini sumber masalahnya tetapi bisa menghentikannya. Berikut langkah-langkahnya:

1) nonaktifkan SIP ( tautan )

2) ketikkan perintah berikut:

cd / Aplikasi

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

cd / Sistem / Perpustakaan / Gambar \ Capture / Dukungan /

sudo mv icdd icdd-disable

3) reboot

4) aktifkan SIP jika Anda peduli

Tautan asli: https://havecamerawilltravel.com/photographer/prevent-photos-app-mac-osx

Semoga bermanfaat.

Tuan Boy
sumber
0

Saya telah berjuang dengan masalah ini juga. Tidak menemukan jawaban online dan tidak ingin mengacaukan terminal, saya menelepon Dukungan Apple. Awalnya, mereka mengira HD saya rusak (itu - yang diperbaiki tetapi tidak memperbaiki masalah). Masalahnya bertahan setelah meningkatkan RAM saya. Diminta oleh komentar internet tentang pencarian pemindai jaringan, saya perhatikan bahwa ICDD hanya akan menjadi gila ketika Wi-Fi diaktifkan. Jika saya terputus dari wi-Fi dan berhenti dari ICDD, itu tidak akan restart dan naik dalam penggunaan RAM atau CPU (sampai Wi-Fi diaktifkan kembali).

Saya menghubungi Dukungan Apple lagi yang tampaknya telah memperbaiki masalah dengan mengatur ulang SMC dan NVRAM. Sekarang ICDD berjalan pada level rendah (10-20 MB) daripada mengkonsumsi 10+ GB RAM. Saya telah menambahkan tautan di bawah ini untuk melakukan itu, tetapi saya sarankan menghubungi Dukungan Apple untuk masalah spesifik Anda.

Penjelasan mereka tentang mengapa hal ini terjadi berkaitan dengan RAM saya yang tersumbat atau penuh dengan cache internet, dll. Mengapa sekarang menjadi jelas dan apakah itu terkait dengan Sierra, saya tidak bisa mengatakan.

Saya harap ini membantu beberapa orang!

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

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

10-15mins memperbaiki.

Spesifikasi saya:

  • awal 2011 13 "MacBook Pro
  • SSD Samsung 500 GB (ditingkatkan ~ 1,5 tahun yang lalu)
  • RAM 8 GB (ditingkatkan ~ 1 bulan lalu)
  • macOS Sierra 10.12.3 (hingga
  • Parallels 10 dengan Windows 10 untuk perangkat lunak SAS
Gary
sumber
0

Sementara jawaban di atas memberikan data teknis yang lebih baik, saya ingin menambahkan catatan umum.

Apa yang kita hadapi mungkin adalah perangkat lunak yang buruk, yang membawa bug lama selama bertahun-tahun, yang tidak diuji dengan benar, dan mungkin tidak akan pernah diperbaiki. Itu saja. Dalam dekade terakhir, rekayasa perangkat lunak Apple memburuk dengan cara yang konstan, dan kami harus selalu menghadapi skenario seperti itu setiap saat.

Biasanya mengatur ulang perangkat lunak seperti itu ke keadaan semula (misalnya, dengan menghapus cache dan mengatur file, .plist, atau bahkan mengatur ulang pengguna-default-nya) akan meringankan masalah untuk beberapa waktu.

Cara lain adalah mengatur ulang subsistem terkait OS. Dalam hal ini misalnya, klik kanan di panel preferensi sistem printerakan memungkinkan Anda "mengatur ulang sistem pencetakan", yang mungkin akan menghapus kepala icdd untuk sementara waktu - tetapi akan memaksa Anda untuk mengatur kembali lingkungan pencetakan Anda.

Dan tentu saja, membuka entri RADR baru untuk Apple pada akhirnya dapat menarik perhatian mereka ke subsistem yang salah.

Motti Shneor
sumber