是什么导致OS X上的所有磁盘活动?


59

有时,我的Macbook Pro会随着硬盘驱动器发出的无尽咔嗒声而变慢。CPU负载低,但是应用程序和菜单项响应缓慢。是否有实用程序可以帮助我确定随着时间的推移发生了什么事情,例如读取/写入的字节数或每个进程打开/关闭的文件数?


1
在这里进行推测,但这可能很简单,例如mds更新Spotlight的索引。

4
十分之九的聚光灯是问题。我注意到的一件事是,如果您有一个Bootcamp分区,请确保将其包括在关注的黑名单中,否则mds似乎总是在咀嚼它。
布赖恩·舒茨2009年

5
感谢您有关Spotlight的建议。我刚才遇到了很高的磁盘读取,将我的Boot Camp分区扔到Spotlight首选项的“隐私”选项卡中,并且磁盘读取立即变平了!几个月让我发疯。
Tim Keating 2010年

Answers:


61

来自man iotop

iotop按进程跟踪磁盘I / O,并打印摘要报告,该报告在每个间隔刷新。

这是在测量已超过系统缓存的磁盘事件。

由于此命令使用DTrace,因此只有root用户或具有dtrace_kernel特权的用户才能运行此命令。

这可能不完全是您想要的-但是它是一个环绕dtrace的ksh脚本,因此,如果iotop默认不处理它,您应该能够弄清楚如何使dtrace满足您的需要。

但是,类似的东西iotop -C 5 12应该给您一些开始:它将输出12个样本,每个样本5秒长。


2
非常好。iotop -C 5 12是总结正在发生的事情的好方法。
的付费书呆子

51

您还可以使用“ fs_usage逐击”帐户了解哪些应用程序正在访问磁盘。


1
哦,这很热。fs_usage还可以过滤网络和文件系统活动。
带薪的书呆子

2

我一直在星期六早上注意到这一点,事实证明是locate,它在星期五晚上凌晨3:15更新数据库。

我尝试禁用它的launchd配置(在中/System/Library/LaunchDaemons/com.apple.locate.plist),但是无论如何它仍然可以运行,所以我只是移开/usr/libexec/locate.updatedb了。问题……缓解了。


1

它可能是操作系统分页到虚拟内存,而不是特定于应用程序的。您可以尝试退出使用频率较低的应用程序,或者至少重新启动一些喜欢随着时间的推移建立内存缓存的应用程序(例如Safari)。使用活动监视器检查各种进程内存统计信息,以找出可能的罪魁祸首。如果退出某些占用大量内存的应用程序似乎可以暂时缓解此问题,则可以尝试添加RAM。

如果磁盘活动与分页无关,则可以使用fs_usage它来将其追溯到一个或多个特定进程。

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.