Ubuntu 12.04 中进程的磁盘空间使用情况

Ubuntu 12.04 中进程的磁盘空间使用情况

有什么方法可以知道当前正在运行的进程使用了​​多少磁盘空间?我已经检查pstop输入了命令,但找不到答案。

这个问题的背景:

我有一个服务器,每天占用 20Gb。我找不到它把这个空间用在哪儿。根据一些随机建议,我运行了

fuser -m -u /dev/xxx

并终止显示的进程。重启服务器后,我看到几乎释放了 100Gb 空间。服务器再次以之前的速度被填满。但这次终止服务并没有给我任何空间。我也检查了日志文件,但没有出现这样的问题。

答案1

您可以使用 iodump perl 脚本:

wget http://aspersa.googlecode.com/svn/trunk/iodump

开启区块转储

echo 1 | sudo tee /proc/sys/vm/block_dump

运行脚本一段时间(使用 Control & C 退出)

while true; do sleep 1; sudo dmesg -c; done | perl iodump

您将获得如下统计数据:

^C# Caught SIGINT.
TASK                   PID      TOTAL       READ      WRITE      DIRTY DEVICES
jbd2/sda3-8            620         40          0         40          0 sda3
jbd2/sda1-8            323         21          0         21          0 sda1
#1                    4746         11          0         11          0 sda3
flush-8:0             2759          7          0          7          0 sda1, sda3
command-not-fou       9703          4          4          0          0 sda1
mpegaudioparse8       8167          2          2          0          0 sda3
bash                  9704          1          1          0          0 sda1
bash                  9489          1          0          1          0 sda3
mount.ecryptfs_       9698          1          1          0          0 sda1

不要忘记禁用内核块转储

echo 0 | sudo tee /proc/sys/vm/block_dump

来源:http://www.xaprb.com/blog/2009/08/23/how-to-find-per-process-io-statistics-on-linux/

相关内容