如何在 linux 上跟踪永久磁盘访问

use*_*096 2 linux performance filesystems resources hard-drive

我有一台运行很少服务的机器,但我不相信他们负责有时在这台服务器上进行大量磁盘访问(在长时间几乎没有移动之后,我可以听到大量的头部移动)

又出现这样的时间段,怎么才能查出是哪个进程在硬盘上做某事呢?

我想使用 linux 命令“lsof”,但它的输出和选项太多了,所以我什么也看不到。

你能指导我如何吗

  • 只显示硬盘访问
  • 这确实是当前正在发生的物理事件(未缓冲或仅打开文件,实际上是物理读取或写入)
  • 可能按用户或进程排序或过滤

如果您能在这种情况下演示 lsof 的一些有用选项,那就太好了。谢谢你。

编辑感谢您的所有答案。这比我预期的要多得多,我赞成所有答案(直到今天)

kat*_*iel 7

尝试查看“ iotop ”。它会给你你所需要的,每个进程的 IO 使用,顶部,显示。随附大多数现代 linux 发行版