我如何知道驱动器正在旋转什么?


8

我已经在我的Linux服务器的驱动器之一上启用了“ spindown”,只能由BitTorrent客户端访问-这意味着,当我没有洪流运行时,其他任何东西都不应访问磁盘并将其从Spindown中唤醒(对吗? )。

但是有些事情使磁盘每15分钟左右旋转一次。如何跟踪流氓元凶?

感谢您的任何反馈!

Answers:


8

您可以查看http://samwel.tk/laptop_mode/。尽管此页面并非主要针对您的问题,但可以全面了解IO的工作原理和想法,以及如何通过关闭磁盘使磁盘静音。

您问题的简短答案:

回声1> / proc / sys / vm / block_dump

它将在syslog中生成消息,例如:

7月23日10:04:05 locutus内核:ls(5224):在dm-4上读取块7340136
7月23日10:04:05 locutus内核:ls(5224):在dm-4上读取块4335136
7月23日10:04:05 locutus内核:ls(5224):在dm-4上读取块15505568
7月23日10:04:05 locutus内核:ls(5224):在dm-4上读取块7340160
7月23日10:04:05 locutus内核:ls(5224):在dm-4上读取块7340168

我用了一个简单的ls命令

注意:在执行此操作之前,请确保关闭系统日志记录或将其写入ramdisk(类型:tmpfs),因为(引号):“您的系统可能会进入反馈循环,其中syslogd会导致磁盘活动,这会导致内核输出,这会导致syslogd执行更多磁盘活动”

我建议将/ tmp挂载为ramdisk,然后将日志记录设置为/ tmp / syslog。/ etc / fstab中的此命令(以及重新启动)将执行以下操作:

无/ tmp tmpfs默认值,大小= 256M 0 0

9

在Linux中,最近使用的fanotifysyscall启用了一个不错的实用程序fatrace,该实用程序通知整个系统或特定分区哪个进程正在命中哪个文件。绝对是我最喜欢的用于此类事情的工具:

deluged(6542): R /usr/share/GeoIP/GeoIP.dat
rsyslogd(1737): W /var/log/syslog
rsyslogd(1737): W /var/log/kern.log

这个工具很棒!对我来说,旋转驱动器真是明智之举,我认为这很有意义。
亚历山大·奥玛拉

5

我一直在使用iotop找出正在使用驱动器的东西。在网站上,您必须具有“启用了TASK_DELAY_ACCT和TASK_IO_ACCOUNTING选项的Linux内核≥2.6.20”。

听起来您只是对某个特定的驱动器感兴趣。您可以考虑编写一个脚本,该脚本定期与lsof或fuser检查以访问该驱动器/分区。



1

您应该能够使用Linux审核在驱动器的挂载点上添加监视,然后在事件发生后使用ausearch监视日志,以了解从哪个文件读取或写入了什么文件(如果有),以及该文件做了什么处理,审核可以监视任何文件系统上的读取,写入,执行和属性更改(只要系统支持它即可)。


0

也许您可以使用incron,它使用inotify来基于文件系统活动启动命令。然后,您可能会观察挂载点并使用incron触发lsof来查找正在访问该进程的进程。


0

检查磁盘旋转的简单方法是:

转到已安装磁盘的目录,对我来说是/ media / disk0 / transmission

然后执行: sudo fatrace -c

您将获得击中该文件夹的任何内容的输出,例如,您可以使用ssh登录并执行ls。

df(54956):CO / media / disk1 bash(55025):O / media / disk1 bash(55025):RC / media / disk1 bash(55026):O / media / disk1 bash(55026):RC / media / disk1

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.