Вопрос: df говорит, что диск заполнен, но это не


На виртуальном сервере под управлением Ubuntu 10.04 df сообщает следующее:

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             7.4G  7.0G     0 100% /
none                  498M  160K  498M   1% /dev
none                  500M     0  500M   0% /dev/shm
none                  500M   92K  500M   1% /var/run
none                  500M     0  500M   0% /var/lock
none                  500M     0  500M   0% /lib/init/rw
/dev/sda3             917G  305G  566G  36% /home

Это меня озадачивает по двум причинам: 1.) df говорит, что / dev / sda1, установленный на /, имеет емкость 7,4 гигабайта, из которых только 7,0 гигабайт используются, но он сообщает / на 100% заполнен; и 2.) Я могу создавать файлы на /, поэтому у него явно осталось место.

Возможно, релевантно, что каталог / www является символической ссылкой на / home / www, который находится на другом разделе (/ dev / sda3, установленном в / home).

Может ли кто-нибудь предложить предложения о том, что здесь происходит? Кажется, что сервер работает без проблем, но я хочу убедиться, что нет проблем с таблицей разделов, файловыми системами или чем-то еще, что может привести к имплозии (или взрыву) позже.


45
2017-09-24 20:31


Источник


Спасибо всем за полезные ответы. Я не могу создавать файлы как обычный пользователь, так что кажется, что это 5-процентный буфер, который предотвращает катастрофу. Теперь мне просто нужно выяснить, почему диск заполнен (я немного обеспокоен тем, что может произойти что-то злонамеренное, потому что ни один из файлов журналов не занимает столько места и не устанавливается много программного обеспечения, просто простой сервер LAMP) ... - Chris
Первое, что я хотел бы посмотреть, это / tmp. Другая возможность заключается в том, что у вас есть удаленный файл, на который работает работающая программа. Я думаю, вы можете запустить lsof | grep deleted 'как root, чтобы найти их. - Scott


Ответы:


Возможно, что процесс открыл большой файл, который с тех пор был удален. Вам нужно будет убить этот процесс, чтобы освободить место. Вы можете определить процесс, используя lsof. В Linux удалены, но открытые файлы известны lsof и помечены как (удалены) в выход lsof.

Вы можете проверить это с помощью sudo lsof +L1


77
2017-09-27 13:20



Это решает тайну для меня. Я удалил большой файл журнала из uwsgi без перезапуска службы. При запросе df -ah, Я получил диск полностью, но du -sh / говорит, что у меня должно быть свободное место. После retatt uwsgi я получил много свободного места! - Fabio Montefuscolo
У меня было 40G журналов, застрявших в подвешенном состоянии, и lsof + L1 дал мне рентгеновское зрение, чтобы увидеть, что произошло ;-) Все, что мне нужно было сделать, это перезапустить службу. - PJ Brunet


5% (по умолчанию) файловой системы зарезервировано для случаев, когда файловая система заполняется, чтобы предотвратить серьезные проблемы. Ваша файловая система заполнена. Ничего катастрофического не происходит из-за 5% -ного буфера - root разрешено использовать этот буфер безопасности, и в вашей настройке у пользователей, не являющихся root, нет причин писать в эту файловую систему.

Если у вас есть демоны, которые работают как пользователь без полномочий root, но для управления файлами в этой файловой системе все будет нарушено. Один общий такой демон named, Другой ntpd,


41
2017-09-24 21:46



К вопросу о ЗАЧЕМ ваш диск заполнен, 7G действительно не так много места. У вас также есть все сбрасывается под один раздел / файловая система (/). Это, как правило, считается плохим (потому что если что-то уходит / заполняется, и мир заканчивается), но дистрибутивы Linux по-прежнему упорствуют в этом, потому что это «проще». Я бы начал, глядя в /var (Особ. /var/log) для огромных лог-файлов. du -hs / (как root) поможет вам найти самые большие каталоги и, возможно, указать на то, что нужно очистить. - voretaq7


Возможно, вы из-за инодов. Проверьте использование inode с помощью этой команды:

df -i

29
2017-09-24 21:48





Большинство файловых систем Linux резервируют 5% пространства для использования только для пользователя root.

Вы можете видеть это, например

dumpe2fs /dev/sda1 | grep -i reserved

Вы можете изменить зарезервированную сумму, используя:

tune2fs -m 0 /dev/sda1

В большинстве случаев сервер будет продолжать работать нормально - если все процессы выполняются как «root».


15
2017-09-25 08:39





В дополнение к уже предложенным причинам, в некоторых случаях это может быть также следующее:

  • другой диск монтируется «поверх» существующей папки, полной данных
  • du рассчитает размер потраченного установленного диска, а df покажет действительно потраченные
  • Решение: (по возможности) отключите все диски, отличные от root, и проверьте размер с помощью du -md 1 еще раз. Исправить ситуацию, перемещая скрытый папку в другое место или установить на другое место.

8
2017-10-23 18:41



как вы находите точки монтирования, отличные от df? - Hogan
@Hogan: может быть, вызов «mount» или «cat / etc / fstab» поможет? - Robert Lujo


У меня была эта проблема, и я был озадачен тем, что удаление различных больших файлов не улучшило ситуацию (не знали о 5% -ом буфере), так или иначе, следуя некоторым подсказкам здесь

От корня шли вниз по крупнейшим каталогам, выявленным повторным выполнением:

du -sh */ 

пока я не придумал каталог для журнальных файлов веб-сервера, который имел несколько абсолютно массивных журналов

который я усекал

:>lighttpd.error.log

внезапно df -h использовал до 48%!


7
2017-11-26 13:25



Это должно действительно закончиться тем, что «... затем я установил поворот журнала». - hayalci
hayalci: обнаружил, что логротация указывала на неправильный каталог. - zzapper


df -h округляет значения. Даже проценты округлены. Опустите -hи вы видите более тонкие различия.

Ой. И ext3 и производные резервируют процент (по умолчанию 5%) для файловой системы именно для этой проблематичной совокупности. Если ваша корневая файловая система будет действительно заполнена (осталось 0 байт), вы не сможете загрузить систему. Таким образом, зарезервированная часть предотвращает это.


5
2017-09-24 20:40



Также может быть, что у него закончились бесплатные иноды. Запустите 'df -i', чтобы использовать inodes. - Andrew Case
Он не предоставил информацию о том, что диск является полный. Он только думает что диск заполнен. 100% используемое пространство без ошибок только «практически заполнено». - mailq