icdd进程消耗了macOS上的大量内存


13

在过去一周左右的时间里,“ icdd”进程一直在启动,并且在启动时会消耗大量RAM(最多7 GB)。发生这种情况时,在我可以打开活动监视器并强制终止该过程之前,我的MacBook Pro实际上就无法使用。

我已经附上了活动监视器的屏幕截图,其中显示了使用超过7GB RAM的icdd并使内存压力激增。

在此处输入图片说明

有谁知道这个过程是什么,或者我怎样才能每30分钟左右防止该问题发生?


1
您不是第一个遇到此问题的人。看看这个答案是否有帮助:superuser.com/questions/748933/…–
NoahL

1
icdd与Image Capture.app/service有关。是否连接了扫描仪,打印机扫描仪或照相机等设备?
klanomath

另外-如果您注销然后再登录-使用的7.24(1.08 App,1.75 Wired。4.41 Compressed)有什么变化?注销并清除可能是一次简单的内存泄漏。如果不清楚,我将尝试禁用病毒扫描程序并重新启动,以查看内存是否能以同样的速度爬升。
bmike

该解决方案不适用于我的问题。@klanomath我的MacBook没有连接任何外部设备。
扎克

@Zach lcdd由启动代理控制。它包含一个键“启用压力出口”,默认情况下处于禁用状态。您可以临时启用它(如果内存压力过高,请杀死lcdd)并检查结果。就像bmike已经提到过的,真正的原因虽然可能是内存泄漏...
klanomath 16-10-22

Answers:


6

在此问题上,我一直与Apple的一名高级技术顾问合作,并在此之前与另一名高级顾问合作了一段时间。我们已经完成了“数据捕获”,几次发送给Apple工程师,并多次进行了屏幕录像,以演示Activity Monitor,Image Capture以及icdd保持在/ Users / user_name的plist中发生的情况/ Library / Application Support / icdd / deviceInfoCache.plist(通过在Xcode中显示)。

在这一点上,这是我对正在发生的事情的最佳估计:

icdd(图像捕获设备数据库)进程可看到扫描仪在繁忙的网络上来来往往。它尝试将其图标文件列表保留在哈希表中,并将其写入上述的deviceInfoCache.plist文件中。是的-听起来很疯狂-它保留了对扫描仪图标文件的引用。但是更疯狂的是,由于某种原因,该文件中几乎所有条目都指向不存在的.icns文件。在我研究过的几个系统中,文件中有成千上万个条目,但是其中一台机器上只存在少数.icns文件,而其他机器上则不存在。我相信,当此文件变大时,icdd将花费大量时间尝试检查.plist文件中是否存在条目并修改文件。我相信有两个原因。首先,当我将笔记本电脑带回家时,icdd进程有时会继续在大约100%的CPU上运行,但是当我杀死它时,每次都会回到大约0.0%到0.1%的“正常”状态。因此,我认为当我在家中打开条目时,有时仍会尝试处理有关条目的信息。但是当我在繁忙的网络上杀死它时,它通常立即恢复到接近100%的速度。当Image Capture中显示的扫描仪数量减少时(通常会发生这种情况,但由于某些原因会定期增加),icdd最终会稳定下来。其次,删除deviceInfoCache.plist文件会导致icdd短时合理运行-直到条目数量再次增加。请注意,icdd在内存中保留了这些条目的副本,因此,如果您从用户帐户中删除文件,icdd只会立即对其进行重写。而且当然,您无法杀死icdd足够长时间以删除该文件,因此您必须注销并通过终端从另一个管理员帐户中删除该文件。当您重新登录时,icdd将重新创建该文件,但是它的条目相对较少,并且在一段时间内表现良好。

为了给出一些比例的概念,Apple工程师震惊地看到我在Image Capture中显示了多达85台扫描仪。但是,在同一系统上,在相同的时间范围内,此数字通常会减少到大约6。在我所查看的系统上,deviceInfoCache.plist文件在icdd问题上具有8,000至12,600个条目-我的是较大的条目,我相信这是由于我遇到icdd问题而从一台较旧的机器继承来的从我在2016年12月设置新的MacBook Pro开始。当我删除plist文件时,新创建的文件中的初始条目数为44,几天后icdd cpu的使用量徘徊在0.0%左右。但是,在校园里待了大约5天后,我的plist文件已全部964个,而icdd cpu的使用率通常会在大学繁忙的网络上反弹30%至90%。当我在家时,plist文件在一天的过程中只会将其条目数增加0到2。在我以前的plist文件中的12,600个条目中,只有2个包含“ deviceName”,其余的包含“ iconPathLocation”,所有这些都指向不存在的.icns文件。对于当前的plist,仍然只有2个条目包含“ deviceName”,其余条目包含不存在的“ iconPathLocation”。所有这些都指向不存在的.icns文件。对于当前的plist,仍然只有2个条目包含“ deviceName”,其余条目包含不存在的“ iconPathLocation”。所有这些都指向不存在的.icns文件。对于当前的plist,仍然只有2个条目包含“ deviceName”,其余条目包含不存在的“ iconPathLocation”。

因此,短期解决方案是从用户帐户注销时,通过终端从另一个管理员帐户删除plist文件。希望随着我的高级顾问现在将这些信息提供给Apple工程师,Apple工程师将有足够的信息来弄清楚icdd为什么以此方式行事并解决问题。当然,如果您可以验证我的短期解决方案并继续向Apple报告您的发现,那可能会有所帮助。


很好的入门知识,使您对icdd的行为有了一些内在的了解。但是,这是为了什么呢?这些图标(至少是现有图标)在哪里显示?此icdd负责什么功能?当您删除.plist文件时,您失去了什么功能?另外,以我为例,同一台Mac上有5个用户,他们的icdd .plist文件不同意,但这会导致icdd偶尔崩溃,并且无法在CPU上收集垃圾和生猪。
Motti Shneor

@Motti Shneor deviceInfoCache.plist 偶尔会在其中列出一个实际的设备,我认为这是预期的目的。我认为这是一个导致其跟踪图标图像文件的错误-大多数不存在。这是我最初的猜测,但是我现在更加自信地说这句话,因为在我当前的此plist版本中,它只有一个条目,用于实际设备。因此,我认为Apple已将其修复为某些操作系统版本(我怀疑在Catalina中)。
datatoolbox

@Motti Shneor在删除plist时,我从没注意到功能上的任何更改-操作系统只是根据需要重建了文件,这似乎并不需要花费很多时间。每个用户对此都有自己的清单,并且有意这样做-如果一个用户使用扫描仪,而另一个用户不使用扫描仪,我希望他们的专家反映出这种差异。因此,我怀疑不同用户的拳头会产生交互作用。
datatoolbox

3

我已经处理了一段时间,并且一直在检查!真令人沮丧……最终我找到了一个可以阻止这种愚蠢疯狂的链接。我不确定这是否是问题的根源,但可以阻止它。步骤如下:

1)禁用SIP(链接

2)键入以下命令:

cd /应用程序

sudo mv Image \ Capture.app/禁用\ Image \ Capture.app/

cd /系统/库/图像\捕获/支持/

sudo mv icdd icdd-disable

3)重启

4)如果您愿意,请启用SIP

原始链接:https : //havecamerawilltravel.com/photographer/prevent-photos-app-mac-osx

希望它会有所帮助。


0

我也一直在努力解决这个问题。我没有在网上找到答案,也不想弄乱终端,所以我打电话给Apple支持。最初,他们认为我的HD已损坏(这是-已修复,但未解决问题)。增加我的RAM后,问题仍然存在。在有关网络扫描仪搜索的互联网评论的提示下,我注意到ICDD仅在启用Wi-Fi时才会发疯。如果我断开wi-Fi的连接并退出ICDD,它将无法重新启动并增加RAM或CPU使用率(直到重新启用Wi-Fi)。

我再次致电Apple支持人员,他们似乎通过重置SMC和NVRAM解决了该问题。现在,ICDD的运行级别较低(10-20 MB),而不是消耗10+ GB的RAM。我在下面添加了执行这些操作的链接,但建议您针对特定问题致电Apple支持。

他们对为什么发生这种情况的解释与我的RAM被互联网缓存等阻塞或已满等有关。为什么它现在才变得显而易见,以及它是否与Sierra相关,我不能说。

希望这对某些人有所帮助!

重置SMC:https : //support.apple.com/zh-cn/ht201295

重置NVRAM:https : //support.apple.com/zh-cn/ht204063

修复10-15分钟。

我的规格:

  • 2011年初的13英寸MacBook Pro
  • 500 GB三星SSD(约1.5年前升级)
  • 8 GB RAM(约1个月前升级)
  • macOS Sierra 10.12.3(最高
  • Windows 10 for SAS软件的Parallels 10

0

尽管以上答案提供了更好的技术数据,但我想添加一个一般说明。

我们正在处理的可能是一个糟糕的软件,该软件载有多年的旧错误,未经正确测试,并且可能永远无法修复。就这样。在过去的十年中,Apple软件工程技术一直在不断恶化,我们必须时刻忍受这种情况。

通常,将此类软件重置为原始状态(例如,通过删除缓存和设置文件,.plists甚至重置其用户默认设置)可以在一段时间内缓解该问题。

另一种方法是重置与OS相关的子系统。例如,在这种情况下,在打印机系统首选项面板中单击鼠标右键将使您“重置打印系统”,这可能会使icdd的头部暂时消失-但会迫使您再次设置打印环境。

当然,向苹果开放新的RADR条目最终可能会引起他们对故障子系统的关注。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.