我有一台稳定的 Debian 服务器,我正在尝试找到一个每小时在 xh22 点(1h22、2h22、3h22 等)准时唤醒并向磁盘写入内容的进程。但是我找不到该进程,也不知道它在写入什么(我知道在磁盘旋转时会写入内容)。
我清除了 cron.hourly,停用了内核日志记录(/etc/rsyslog.conf 中的 ($ModLoad imklog)),激活了 block_dump(echo 1 > /proc/sys/vm/block_dump)并监控了磁盘访问(watch “dmesg -c >> /tmp/mytemp/trace.txt”)。
每小时我都能看到这样的句子:
[2013-05-29 01:22:03] jbd2/sda1-8(224): WRITE block 25459816 on sda1 (8 sectors)
[2013-05-29 01:22:03] jbd2/sda1-8(224): WRITE block 25459824 on sda1 (8 sectors)
[2013-05-29 01:22:03] jbd2/sda1-8(224): WRITE block 25459832 on sda1 (8 sectors)
[2013-05-29 01:22:03] jbd2/sda1-8(224): WRITE block 25459840 on sda1 (8 sectors)
[2013-05-29 01:22:03] jbd2/sda1-8(224): WRITE block 25459848 on sda1 (8 sectors)
[2013-05-29 01:22:03] jbd2/sda1-8(224): WRITE block 25459856 on sda1 (8 sectors)
[2013-05-29 01:22:03] jbd2/sda1-8(224): WRITE block 25459864 on sda1 (8 sectors)
[2013-05-29 01:22:05] jbd2/sda1-8(224): WRITE block 25459872 on sda1 (8 sectors)
但我找不到正在写的内容:
debugfs /dev/sda1
debugfs 1.42.5 (29-Jul-254598162012)
debugfs: icheck 25459816
Block Inode number
25459816 <block not found>
有人能帮我跟踪这个过程吗?我认为这不是日志文件系统(sda1 是一个没有 atime 的 ext4 分区)。
或者也许有人可以给我一个通用的方法来追踪磁盘上写入的内容?
谢谢 !
答案1
您可以使用它iotop
来查看哪些进程正在使用磁盘。