如何跟踪硬盘访问情况?不是像 那样的 MB/s 监控意义上的iotop
。我的内部大容量存储硬盘被永久唤醒,我想通过绝对的访问列表找到邪恶的进程。
答案1
看看这个 U&L 问答,标题为:Amazon EC2 微实例大量 IO 请求,我在其中提供了有关名为 的工具的详细信息fatrace
。我也在这个题为“问答”中对此进行了介绍:确定负责高 I/O 的特定文件。
法特拉斯
这是 Linux 内核的一项新功能,并且很受欢迎,因此它仅出现在较新的发行版中,例如 Ubuntu 12.10。我的 Fedora 19 系统也可以访问它。
它提供与通过 inotify 获得的相同访问权限,而无需针对特定目录和/或文件。
$ sudo fatrace
pickup(4910): O /var/spool/postfix/maildrop
pickup(4910): C /var/spool/postfix/maildrop
sshd(4927): CO /etc/group
sshd(4927): CO /etc/passwd
sshd(4927): RCO /var/log/lastlog
sshd(4927): CWO /var/log/wtmp
sshd(4927): CWO /var/log/lastlog
sshd(6808): RO /bin/dash
sshd(6808): RO /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): R /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): O /etc/ld.so.cache
sh(6808): O /lib/x86_64-linux-gnu/libc-2.15.so
上面显示了正在进行文件访问的进程 ID 以及它正在访问哪个文件,但它没有提供任何总体带宽使用情况,因此每次访问与任何其他访问都无法区分。
笔记: fatrace
可以接受一个-p PID
参数,这样您就可以指示它监视单个 PID(如果您愿意)。