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

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).

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

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

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

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

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

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

df -i

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

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

dumpe2fs /dev/sda1 | grep -i reserved

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

tune2fs -m 0 /dev/sda1

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

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

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

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

Из корневого каталога прошли по самым большим каталогам, обнаруженным повторяющимся выполнением: -

du -sh */ 

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

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

:>lighttpd.error.log

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

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

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

Я сделал большое обновление нескольких библиотек, и там было много ненужных библиотек и временных файлов, поэтому я освобождаю место в папке «/», используя:

apt-get install -f
sudo apt-get clean

И очистите свой мусор

проверьте / lost + found, у меня была система (centos 7), и некоторые файлы в / lost + found съели все пространство

Если ваш раздел - btrfs, возможно, там есть подтом, занимающий место. Файловая система btrfs может иметь много подтомов, только один из которых смонтирован. Ты можешь использовать btrfs subvolume list <dir> чтобы перечислить все подтомы и btrfs subvolume delete <dir>/<subvolume> чтобы удалить один. Убедитесь, что вы не удалили тот, который установлен по умолчанию.