我怎么知道是什么导致了我的驱动器旋转?

Bru*_*nes 8 linux hard-drive

我在我的 Linux 服务器的一个驱动器上启用了“spindown”,它只能由 BitTorrent 客户端访问 - 这意味着,当我没有运行种子时,没有其他东西应该访问磁盘并从spindown 中唤醒它(对吗? )。

但是有些东西使磁盘每 15 分钟左右旋转一次。如何追踪流氓罪魁祸首?

感谢您的任何反馈!

小智 9

在 Linux 中,最近的fanotify系统调用启用了一个很好的实用程序,称为fatrace通知哪个进程正在访问整个系统或特定分区的哪个文件。绝对是我最喜欢的这类工具:

deluged(6542): R /usr/share/GeoIP/GeoIP.dat
rsyslogd(1737): W /var/log/syslog
rsyslogd(1737): W /var/log/kern.log
Run Code Online (Sandbox Code Playgroud)


asd*_*min 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


sha*_*mer 5

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

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