如何找出哪个应用程序阻止硬盘进入睡眠状态

如何找出哪个应用程序阻止硬盘进入睡眠状态

我的服务器中有 3 个 SATA 硬盘。第一个是 SSD 系统驱动器,另外两个(在 JBOD 中)用于存储一些数据(通过 Samba 访问)。大多数情况下,当没有请求时,这两个数据驱动器可以进入休眠状态。但是,这两个中只有一个会进入休眠状态。

我已经为两个驱动器设置了noatime标志fstab,并且我非常确定没有 cron 作业访问此驱动器。我还将hdparm -S 128两者的 spindown 超时设置为 10 分钟(命令)。

有什么办法可以确定哪个应用程序仍访问驱动器并阻止其进入睡眠状态?

我通常不会关心驱动器是否处于休眠状态,但由于这是一台家庭服务器,将这两个驱动器设置为休眠状态可以节省一些能源。操作系统是 Ubuntu Server 10.04。

谢谢你的提示。

答案1

你可以尝试动力顶

另一个要尝试的方法是检查哪些进程在相关文件系统上打开了文件。请参阅工具“lsof”和“fuser”。

答案2

我也听说过有关 powertop 的好事。

不过你也可以看看iotop(在较新的发行版中发现)。iotop 还可以帮助您识别哪些程序正在写入磁盘。

(查看给定进程正在执行多少 io 通常也很有用。)

祝你好运。

答案3

由于您使用的是 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”中发布),但可以从源代码轻松安装。

答案4

我相信驱动器可以处理这个问题.. hdparm 不会编辑硬盘驱动器的配置吗???

我使用完全相同的配置使磁盘进入睡眠状态。电影/音乐/图片效果很好,一个 40gb 的小磁盘用于我的操作系统和日志 :D

我知道 NFS 可以让磁盘保持活动状态,还可以写入日志。基本上,任何需要或可以在底层磁盘上保存文件的二进制文件都会让它们保持旋转

看看这些磁盘上存储了什么内容......除了静态文件和引用它们的应用程序之外。

相关内容