当 PID 一直在变化时,找出进程正在写入哪个文件

当 PID 一直在变化时,找出进程正在写入哪个文件

使用 iotop 等工具可以监控单个进程的 i/o,这很好,但你无法找出进程写入哪个目录。如果 PID 始终相同,那就不是问题,可以使用 strace 或其他工具来找出受影响的文件,或者可能

lsof +p <PID>  

但是我注意到,当我打开视频时,chromium 会进行一些繁重的磁盘写入,尽管我已经将许多与 chromium 相关的目录放在了 tmpfs 上。现在,我想知道当 iotop 显示高 i/o 使用率时,它会写入哪些目录。Chromium 确实一直在更改 PID,这让事情变得更加复杂。

答案1

我们可能会使用pidof确定应用程序的 PIDiotop 安装 iotop

sudo iotop -p $(pidof chromium-browser | sed -r 's/[ ]+/ -p /g')

对于需要 PID 列表的不同分隔符的任何其他命令,请替换sed命令中的分隔符,例如

top -p $(pidof chromium-browser | sed -r 's/[ ]+/,/g')
sudo lsof -p $(pidof chromium-browser | sed -r 's/[ ]+/,/g')

答案2

新的实用工具脂肪痕迹可以向您展示这一点。请参阅:https://launchpad.net/fatrace/

sudo fatrace

例如:

# sudo fatrace
chrome(6514): W /home/xxxx/.config/google-chrome/Default/Current Session
chrome(6514): R /home/xxxx/.pki/nssdb/cert9.db
chrome(6516): R /home/xxxx/.pki/nssdb/cert9.db
chrome(6514): W /home/xxxx/.cache/google-chrome/Default/Cache/data_1
chrome(6516): RW /home/xxxx/.cache/google-chrome/Default/Cache/data_0
chrome(6514): W /home/xxxx/.cache/google-chrome/Default/Cache/data_1
wicd(29613): RO /lib/x86_64-linux-gnu/ld-2.19.so
ifconfig(29613): R /lib/x86_64-linux-gnu/ld-2.19.so
ifconfig(29613): CO /etc/ld.so.cache

相关内容