Сервер Ubuntu: жесткий диск всегда заполнен

8

У меня 50 ГБ VPS

когда я бегу дф я получаю

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             49982172  46580100    863064  99% /
none                    507212       172    507040   1% /dev
none                    511676         4    511672   1% /dev/shm
none                    511676        76    511600   1% /var/run
none                    511676         0    511676   0% /var/lock
none                    511676         0    511676   0% /lib/init/rw

Когда я бегу du -h из / я получаю

...
20K     ./tmp/vmware-root
4.0K    ./tmp/.webmin
4.0K    ./tmp/.X11-unix
4.0K    ./tmp/.ICE-unix
4.0K    ./tmp/hsperfdata_root
48K     ./tmp
7.7M    ./bin
3.8G    .

Я также попытался найти файлы размером более 100 МБ, чтобы найти то, что занимает мое место, с помощью команды find / -size + 100M -ls.

4026531985    0 -r--------   1 root     root     140737486266368 Mar 23 08:55 /proc/kcore
find: `/proc/3969/task/3969/fd/5': No such file or directory
find: `/proc/3969/task/3969/fdinfo/5': No such file or directory
find: `/proc/3969/fd/5': No such file or directory
find: `/proc/3969/fdinfo/5': No such file or directory

Я понятия не имею, что еще я могу сделать, чтобы найти мою проблему.

Редактировать:

Больше информации

df --inodes /

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1            3178496  178211 3000285    6% /

найти / -xdev -print | туалет

178773

lsof + L1

COMMAND     PID  USER   FD   TYPE DEVICE SIZE/OFF NLINK    NODE NAME
miniserv.  1496  root  txt    REG    8,1    10416     0 2364381 /usr/bin/perl (deleted)
mysqld    12869 mysql    4u   REG    8,1        0     0  537495 /tmp/ibkCwnHJ (deleted)
mysqld    12869 mysql    5u   REG    8,1        0     0  537497 /tmp/ibFyPrrv (deleted)
mysqld    12869 mysql    6u   REG    8,1        0     0  537499 /tmp/ibdUnwbh (deleted)
mysqld    12869 mysql    7u   REG    8,1        0     0  537500 /tmp/iblHYOV2 (deleted)
mysqld    12869 mysql   11u   REG    8,1        0     0  537501 /tmp/ibUW9YGO (deleted)

Идентификатор распространителя: Ubuntu Описание: Ubuntu 10.04.4 LTS Релиз: 10.04 Кодовое имя: lucid

Krayons
источник
1
Я хотел бы видеть ваше использование inode:df -i
Wesley
@WesleyDavid: добавлено в исходное сообщение.
Krayons
Я подозреваю, что вы du -hнапечатали много информации, и вы, возможно, пропустили важную ... Попытайтесь du -sm /* | sort -nполучить список (отсортированный по размеру) в МБ /подкаталогов
e2-e4

Ответы:

11

Обычно есть некоторое расхождение между du и df, но обычно оно не такое большое, как вы видите.

  • du сообщает о дисковом пространстве, которое используется путем чтения информации из дерева каталогов, оно точное, но медленное.
  • df сообщает о дисковом пространстве, используемом для чтения метаданных файловой системы, оно быстро, но менее точно, так как работает с блоками.

Обычной причиной того, что вы видите, является файл, который был удален, но еще не был закрыт процессом, который пишет в него.

Поскольку файл был удален, du не увидит для него запись в каталоге и, следовательно, не сможет включить ее в свой отчет.

Поскольку файл все еще открыт, используемые им блоки не являются свободными, поэтому df сообщит, что они используются.

Вы должны быть в состоянии отследить файл, который вызывает проблему с

lsof +L1

Проверьте SIZE/OFFколонку.

Спецификация формы + L1 выберет открытые файлы, которые не были связаны. Спецификация формы + L1 выберет несвязанные открытые файлы в указанной файловой системе.

user9517
источник
Спасибо. Добавил результат lsof + L1 к открытию. Не похоже, что проблема есть.
Krayons
@Krayons: Я бы хотел запланировать какое-то время простоя, чтобы запустить fsck.
user9517
Это исправило это. Должно быть, что-то ужасно не так с файловой системой.
Krayons