HDD 何时唤醒?

HDD 何时唤醒?

我正在寻找一些可以记录非系统磁盘唤醒时间的小脚本或应用程序。

我无法确定哪个应用程序或脚本唤醒了我的非系统驱动器(在我使用它之前,它必须处于休眠状态)。我已经设置了 noatime 标志,尝试使用 powertop 和 iotop 来确定哪个应用程序可以阻止它进入休眠状态 - 但没有结果。

所以我的计划是将这个驱动器设置为睡眠状态(hdparm -Y)并查看它在什么时候被定期唤醒。

谢谢您的任何建议。

答案1

为了找出正在访问的文件(这可能有助于缩小负责的进程的范围),您可以尝试使用inotifywatch可以将其设置为递归监视您选择的目录下的目录。请务必阅读手册页中有关--recursive在大型树上使用的警告。

当该树中的目录中发生文件系统事件时,它会被记录并输出到表中。您可以使用它--timeout来限制监视处于活动状态的时间。

如果结果一致,您可以对该目录中的文件运行非递归监视以缩小特定文件的范围。

答案2

由于您使用的是 Linux,因此您可以使用新的fatrace实用程序,它会记录每个文件访问并告诉您哪个进程负责:

https://launchpad.net/fatrace

更多信息请点击这里:

http://www.piware.de/2012/02/fatrace-report-system-wide-file-access-events/

它利用Linux fanotify API更多细节) 自 Linux 内核 2.6.37 起可用。

fatrace自 2014 年 7 月起,大多数发行版均未打包它(它最近进入了 Debian 测试,因此应该在“jessie”中发布),但可以从源代码轻松安装。

答案3

参见这个 ubuntu错误报告如何追踪该问题(以及可能的原因)。

简短回答:auditctl -w /dev/sdX -p rwa和 udisk

答案4

我无法回答您的问题,但我想向您指出一个可能有趣的细节:几个 sata 硬盘有一个跳线,可默认将它们设置为睡眠状态(控制器必须发送 sata 命令来唤醒磁盘。[并非所有控制器都能做到这一点])。

跳线已设置好吗?

相关内容