升级到10.7.5后如何修复慢的Spotlight和Time Machine?


21

自从更新到10.7.5以来,Spotlight和Time Machine都非常慢。

  • 要索引正常的系统驱动器,Spotlight计算需要花费几天的时间
  • 结果,Time Machine最多需要一个小时或更长时间才能完成约100 Mib的增量备份。

这些缓慢的Time Machine备份和Spotlight索引有什么解决方案?


我可以确认自10.7.5以来两者的放缓。最需要解决Time Machine缓慢问题的地方。Spotlight索引在几天之内完成,但是Time Machine运行了几天,并且只有11,59 GB的53,19 GB。
Pro Backup

但是,即使是耗时数天的Spotlight索引也是无法接受的。

Spotlight会结束索引的建立还是只是将剩余时间显示为几天?
Lri 2012年

@LauriRanta我没等:)

1
我发现有效的解决方案是删除/ var / folders然后重新启动。焦点索引时间从3天减少到51分钟。同样,在新安装/恢复的Lion上的Timemachine从30天缩短到大约11小时。
Grant Sayer 2012年

Answers:


5

2012年10月4日发布的OS X Lion 10.7.5补充更新包括:

解决了可能导致Time Machine备份花费很长时间才能完成的问题

经过测试,这似乎已经完全解决了问题。

请注意,对我来说,安装此更新后的第一次备份仍然花费了很长时间,并且包含许多com.apple.backupd[423]: Waiting for index to be ready (100)消息,因此Spotlight可能尚未正确重新索引驱动器。现在,几个小时后,小型备份以其通常的快速速度完成,一切都很好。


1
仅供参考。这可能已经解决了10.7.5的问题,但没有解决10.8.2的问题。
jschmidt 2012年

@jschmidt您尝试了10.8.2补充吗?10.7.5补充更新包括对lsboxd,xpchelper和许多音频内容的更改。还更改了xpchelper的SandBox权限以包括ocspd(尽管mdworker内容没有更改)。/System/Library/Sandbox/Profiles/com.apple.xpchelper.sb补充后看起来像什么?
旧版Pro

是。我在10.8.2上尝试了补充更新,但没有帮助。对我而言唯一有效的方法是彻底擦除系统并重新安装操作系统。我从另一个备份中手动复制了数据,但没有还原任何应用程序或设置。
jschmidt 2012年

自更新以来已经很长时间了,但是我仍然会时不时地遇到这个问题。有什么想法吗?
DA Vincent

10

我在该主题中发布了此变通办法。就是这样(这不是解决方案,只是临时的解决方法,可以让我的备份和Spotlight在发布修复程序之前起作用)。

使用终端:

  1. 我禁用了Spotlight索引:

    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
    
  2. 我删除了所有驱动器(包括备份驱动器)中的Spotlight索引:

    sudo rm -rf /.Spotlight-V100/Store-V1 /.Spotlight-V100/Store-V2  /.Spotlight-V100/VolumeConfiguration.plist
    
    sudo rm -rf /TimeMachineDrive/.Spotlight-V100/Store-V1 /TimeMachineDrive/.Spotlight-V100/Store-V2  /TimeMachineDrive/.Spotlight-V100/VolumeConfiguration.plist 
    

rm -rf /.Spotlight-V100/*这对我不起作用。)(这也可以通过使用Spotlight的隐私设置排除整个驱动器,然后重新包含它来完成。)

  1. 我删除了/var/folders内容(请参阅本主题以了解原因):

    sudo rm -rf /var/folders/*
    
  2. .inProgressBackups.backupdb子文件夹中删除了文件(放入垃圾箱然后清空垃圾箱是这样做的唯一方法)。

可能需要重新格式化备份驱动器,而不是仅删除.inProgress文件。

  1. 我重新启动,然后重新启动Spotlight:

    sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
    
    sudo mdutil -i on -E /
    
  2. 我等到Spotlight完成索引过程

  3. 我使用TimeMachine启动了新的备份

  4. 我向苹果公司打开了一个错误报告,标题为:“在Mac OS X 10.7下使用Spotlight时,TimeMachine挂起”,并祈祷许多其他人也将这样做以将此错误作为优先事项。

某些步骤可能没有用,但我通过阅读有关慢速TM和Spotlight的不同主题来掌握所有知识。


谢谢。sudo rm -rf /var/folders/*在我的案例中做到了这一点
maggix 2012年

不要删除/var/foldersEl Capitan上的内容,它会完全占用您的系统:登录期间进度条将停止,我必须重新安装TM备份。记录下来,由于MenuMeters,TM不可能在我的机器上运行缓慢
Frank Pavageau '16

7

检查您的控制台日志文件并查找类似以下的行(真实的日志行将具有进程ID和日期):

sandboxd: mdworker deny mach-lookup com.apple.ls.boxd
mdworker: Unable to talk to lsboxd

如果您看到了,那可能是问题的根源。Appple使用此最新版本进行了一些操作(也影响Mountain Lion 10.8.2)。

我不知道到底发生了什么,只是说mdworker(最终会扫描并索引文件以查找Spotlight)调用LSCopyLibraryItemURLs()最终将消息发送到lsboxd。沙盒策略不允许这样做,因此该工作人员被杀死。

因此,也许策略文件是错误的,或者mdworker不应该进行该调用。我不知道。但是,修复策略文件相对容易。 潜在危险,但容易。

以根用户身份编辑这些文件:

/usr/share/sandbox/mdworker.sb
/usr/share/sandbox/mdworker-bundle.sb

在文件中,您将找到以下行:

(allow mach-lookup (global-name "com.apple.ocspd"))

在其下面,添加以下行:

(allow mach-lookup (global-name "com.apple.ls.boxd"))

而已!

如果您想要额外的舒适感,也许要重启。也许删除您的Spotlight索引并重新开始:

sudo mdutil -E /

实际上,我仍然mdworker: Unable to talk to lsboxd在日志文件中看到,但至少现在索引将完成并且Time Machine再次快速移动。


有三个文件:mdworker-lsb.sbmdworker-scan.sb,和mdworker.sb。它们都只包含行,(allow mach-lookup)但不包含(allow mach-lookup (global-name "com.apple.ocspd"))

@OldPro我试图按照您的指示进行操作,并且与Tichodroma处于同一情况。所以现在mdworker.sb我有了(allow mach-lookup) (allow mach-lookup (global-name "com.apple.ls.boxd")),在添加该行之后,我重新启动了。然而,时间机器仍在缓慢发展。你能帮忙吗?
rabbid

我确认我在控制台日志中有这些消息。我也按照指示进行。对我来说没有变化。我删除了机器的整个TM捆绑包,然后开始了新的备份。通过600GB的备份,它达到了约200GB并停止运行。我在通过FW800连接了Drobo的Mac Mini服务器上运行TM。我的源计算机是运行ML 10.8.2的MacBook Pro Retina。我重新启动了服务器和MBP,并尝试再次继续备份。这次,它仅增加了约100GB的容量,然后停止。再尝试一次仅3GB。某种东西正在阻止它,但是我不知道是什么。
jschmidt 2012年

1
@Tichodroma对不起,我误读了您的评论。如果您mdworker.sb已经拥有了(allow mach-lookup)(1),那么您永远都不会sandboxd: mdworker deny mach-lookup com.apple.ls.boxd在日志中看到它;(2)编辑文件将无济于事。@ user15380
Old Pro

好的。我发现了备份失败的另一种共性(貌似)。我不再在控制台中拥有拒绝mach-lookup com.apple.ls.boxd的权限(尽管我仍然收到“ mdworker:无法与lxboxd交谈”)。但是,我确实看到了一堆“ sandboxd [1289]:([1288])mdworker32(1288)deny mach-lookup com.apple.PowerManagement.control ...”消息。我是否需要为com.apple.PowerManagement.control添加另一行?
jschmidt 2012年

6

您可以cannot talk to lsboxd通过编辑system.sb配置文件(而不是mdworker的错误)来完全解决控制台中所有与mdworker相关的沙箱错误(包括)。在沙箱下运行的所有Apple系统进程(包括mdworker)都使用system.sb文件。如果您将此文件(位于中/System/Library/Sandbox/Profiles)修改为包括:

(allow mach-lookup (global-name "com.apple.ls.boxd"))

(allow mach-lookup (local-name "com.apple.ls.boxd"))

这将停止所有与lsbox相关的mdworker问题。


1
但是,system.sb顶部的注释说:“该文件的内容也是自动生成的,用户无法编辑;它随时都可能被覆盖。”
杰夫

5

如果Spotlight从未完成索引的建立,则可能是因为索引始终在某些文件上停止。几年前,由于这个问题,我进行了全新安装,但在还原旧文件后,安装又恢复了。我最终仅通过将文件夹添加到“系统偏好设置”中的“隐私”选项卡来缩小了引起该问题的文件的范围。

超级用户某人运行opensnoop以查找mdworker停止了哪些文件:

sudo opensnoop -n mdworker

根据用户37651的建议编辑:

我在上面运行了opensnoop命令,它显示〜/ Library / Developer中的文件存在问题,这些文件是从以前的Time Machine还原放到那里的。(我目前未安装XCode。)我删除了该文件夹,并且Spotlight索引仅在30分钟内完成。我的Time Machine备份现在似乎可以正常工作了。


1
也许我稍后再试。奇怪的是,Spotlight在10.7.4中可以正常工作,并且在更新到10.7.5之后才放慢速度。Spotlight必须索引的文件没有更改。

我已尝试通过将系统驱动器上的所有内容添加到Spotlight的隐私列表中来尝试您的方法。但是即使到那时,Spotlight仍然花了很长时间来计算索引我要终止该过程的文件(哪个?)需要多少时间。苹果,哪里解决?

1

可以删除Spotlight索引,然后强制Mac OS X从头开始创建新的索引。在像您这样的情况下,通常值得尝试。

恐怕我不知道执行此操作的终端命令。当需要执行此操作时,我使用Koingo Software的商业程序MacPilot,价格为20美元。它们具有功能齐全的试用版,您可以使用15天。如果您觉得有用,则可以决定付款。

我想还有其他工具也可以做到这一点。

当然,一旦删除了现有的Spotlight索引,就需要等待Spotlight创建新索引。只要完全生成一台新Mac,您就应该让Mac不间断运行。

在此处输入图片说明


问题在于,Spotlight计算出索引需要很多天的时间。因此,使用MacPilot或mdutil命令行工具可以减轻痛苦,但不能解决问题。

您是否认为磁盘驱动器本身可能已损坏或物理损坏,这就是为什么索引编制预计要花费这么长时间的原因?也许您应该对磁盘损坏进行诊断。为了安全起见,请将系统克隆到外部备份磁盘。

不,驱动器很好。Besindes,许多其他用户也有同样的问题。看一下Apple网站上的讨论。我使用CCC进行了外部备份:)

1

该死的!开机时间也更快

我在写一个不同的答案只是为了概述我所采取的具体步骤(我必须清楚地指出,它们只是此处已写内容的一部分,而不是我的贡献),因为在采取这些步骤之后,不仅Time Machine运行得更快,但是我的启动时间从1分钟10秒减少到40秒!我的启动时间总是很吸引我,因为我不断看到人们报告相同规格的启动时间要短得多,而且这些步骤将启动时间缩短了30秒(是的,我测试了不止一次,是的,缓存还可以,我在采取这些措施之前采取了许多步骤,包括修复权限,修复磁盘,甚至使用iDefrag2进行碎片整理,所有这些都没有结果。到现在为止:P

1个

sudo mkdir ~/trash_backup
sudo mv /var/folders ~/trash_backup/ # backup just in case

2

之后,编辑 /usr/share/sandbox/mdworker.sb/usr/share/sandbox/mdworker-bundle.sb,在两个文件(allow mach-lookup (global-name "com.apple.ls.boxd"))的行下方添加 (allow mach-lookup (global-name "com.apple.ocspd"))

3

最后,

sudo mdutil -i on -E /; sudo reboot

感谢lauhub和Old Pro。谁能解释启动时间的减少以及对盒装物品的查找和可能的安全性问题?谢谢大家:)


1

因此,我遭受了与其他所有人相同的痛苦,但是不幸的是,没有按正确的顺序读取所有多个线程,因此基本上丢失了我原来的TM备份,然后丢失了我的Spotlight数据库,但修复失败。

一个我无法再次找到的线程(我认为这更多是关于缓慢的Spotlight索引)来自一个刚刚重新安装了10.7.5的家伙的帖子,一切恢复正常。所以我做到了,它奏效了。

重新安装完成后,我关闭了TM并允许Spotlight编制索引。我出去兜风,回来后就完成了-不到90分钟的时间即可达到149GB。而且有效,我已经在HD上搜索了东西。

然后,我打开TM,花了2个小时9分钟完成操作。

因此,如果您考虑将时间和带宽降级到10.7.4,则不妨考虑重新安装10.7.5。


1

所有人,我都遇到了同样的问题,TM预计要花几天的时间才能在新磁盘上进行全新的备份,实际上,完成约200MB的存储需要花费数小时。

我使用上面指示的命令禁用了聚光灯,并且-看到了-在10分钟内加载了40GB,并且更新的TM可以按预期的那样平稳运行。

这是一个非常重要的错误,令人失望的是Apple发出了导致此类问题的“更新”。


0

根据https://discussions.apple.com/thread/4324046?start=60&tstart=0的说明,禁用Spotlight可以$ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist提高Time Machine备份速度。


这可能会或可能不会。但是,由于Time Machine依靠Spotlight知道需要备份哪些文件,因此这不是真正的解决方案。此外,Spotlight是OS X.的重要组成部分

1
实际上,这只是解决方法,而不是解决方案。就我而言,它甚至不能使事情加速很多。
Pro Backup

1
这对我没有用。就我而言,TM会在一段时间后挂起。禁用Spotlight根本没有帮助。
jschmidt 2012年

0

一次简单的重新启动进入SAFEMODE,然后重新启动回到NORMAL MODE,似乎已经为我清除了此使用情况。从3周到1小时进行备份。

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.