Назад | Перейти на главную страницу

использование дискового пространства процессом в ubuntu 12.04

Есть ли способ узнать, сколько дискового пространства использует текущий процесс? я проверил ps и top команда, но не могла узнать.

Предыстория этого вопроса:

У меня есть сервер, который заполняется 20 ГБ каждый день. Я не мог узнать, где он занимает это место. С каким-то случайным советом я побежал

fuser -m -u /dev/xxx

и убил процессы, которые показывает. После перезапуска сервера я вижу, что пространство almos t100Gb освобождено. И снова сервер заполняется прежним темпом. Но на этот раз сервисы убийств не оставляют мне места. Я также проверил файлы журналов, но там нет такой проблемы.

Вы можете использовать Perl-скрипт iodump:

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/