我在列出目录/文件时遇到了一些严重的 OS X 延迟。我最初以为这纯粹是 Finder 的问题,而不是 HD 或 OS X 的任何其他部分的问题,但是后来我注意到其他应用程序(例如 Versions 和 The Unarchiver)也存在一些文件访问延迟,所以我真的不知道问题出在哪里。
延迟主要出现在 Finder 中列出目录/文件时,我看到最多十二秒左右的延迟(文件夹打开时显示空白列表,微调器位于右下角)。
- 这发生在两个不同的(尽管非常配置类似的计算机
- 本地 SSD 和网络驱动器(通过以太网或 wifi 连接)都会发生这种情况
- 在终端和列表目录中浏览本地和网络驱动器都是即时的
- 我实际上可以通过 3G 连接从国家另一端用手机浏览 NAS 上的文件,速度比连接到本地网络时的 Finder 更快
有人能帮忙吗?谢谢。
编辑:
使用该fs_usage
命令进行测试后,似乎是 launchd 导致速度变慢。在打开两个需要很长时间才能列出的目录后,出现了这两行:
13:23:58.528825 select S=1 4.493972 W launchd.1347
13:24:58.572283 select S=1 9.954218 W launchd.1347
有什么想法吗?
第二次编辑:
进一步fs_usage
记录一些附加条目:
13:44:26.172945 select S=1 1.157757 W Finder.4854
13:44:32.653263 select S=1 9.987226 W launchd.1345
13:44:32.686134 select S=1 1.327516 W dbfseventsd.3639
13:44:42.152977 select S=1 9.473943 W launchd.1345
13:44:42.173888 select S=1 9.487425 W dbfseventsd.3639
13:44:46.135971 select S=1 19.926955 W Finder.4854
13:44:47.623476 select S=1 1.472648 W Finder.4854
13:44:48.718721 select S=1 2.344869 W dbfseventsd.3639
13:44:52.657413 select S=1 1.615911 W launchd.1345
13:45:12.591938 select S=1 15.687167 W launchd.1345
13:45:15.359595 select S=1 2.747797 W dbfseventsd.3639
答案1
评论中已经提到了导致 Finder 变慢的一些常见原因,例如损坏或 .DS_Store 文件过大或大量文档导致系统显示每个文档的预览。
如果您确实想要跟踪 IO,您可以使用命令fs_usage
将所有文件系统活动转储到终端窗口,并可选择从您不关心的程序中 grep 出结果,同时丢弃所有短 IO,以了解哪些 IO 需要花费超过百分之一秒才能完成。
sudo fs_usage -w | grep -v grep | grep -v 0.00
在您对问题的编辑中,缓慢的 IO 看起来并没有什么可疑之处。您无法真正摆脱 launchd - 如果它阻止了 Finder 中的 IO - 那可能是因为网络文件系统没有响应(或者网络存在数据包延迟很长时间的问题)。
遗憾的是,如果手机客户端真的比 Finder 快很多,您可能需要从手机客户端浏览并继续观察 IO。也许如果您断开所有网络共享,您可能会看到 IO 速度变慢,并能够得出结论,您确实存在网络延迟/问题,而不是 Finder/CPU/本地问题。我希望 fs_usage 转储中会出现一些问题 - 但您的结果在我看来很正常。