我的联想T400和Ubuntu上,硬盘写入灯一直闪烁。我想知道在 Linux 中是否可以找出哪些进程正在对硬盘进行 I/O?就像 by 一样top
,您可以找出哪些进程使用最多的 CPU 和内存。
答案1
答案2
您可以使用lsof
(曼勒索夫)。以下将返回所有打开以供写入的文件的列表:
lsof | grep -e "[[:digit:]]\+w"
答案3
特别是对于低磁盘活动,有必要在批处理模式下使用iotop,以防止短访问线快速消失。答案由如何在 Linux 中按文件名记录文件系统读/写?展示了如何执行此操作。
目前为止
iotop
是最好的整体解决方案。以下命令为您提供使用磁盘的所有进程的实时输出。
iotop -bktoqqq -d .5
where: -b is batch mode
-k is kilobytes/s
-t adds timestamp
-o only show processes or threads actually doing I/O
-qqq removes output headers
-d .5 updates every .5 seconds
获得进程 ID 后,您还可以使用以下命令查找文件
lsof -p $PID
答案4
fatrace
可以帮助你。无耻地链接到我自己在另一个问题上的回答: