Заполнился диск с непонятно чем: 8 Tips to Solve Hard Drive Full for No Reason in Windows 10/8/7
сервер — диск заполнен, но не могу найти большие файлы или папки
И я пытаюсь найти большие папки и файлы, запускаю ncdu
:
ncdu 1.8 ~ Используйте клавиши со стрелками для навигации, нажмите ? для помощи --- / ------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -- 5,5 ГБ [##########] /корень 2,3 ГБ [####] /var 628.6МиБ [#] /usr 209.9МиБ [ ] /lib 28,2 МБ [ ] / загрузка 8,6 МБ [ ] /bin 7,7МиБ [ ] /sbin 6,6 МБ [ ] / и т. д. 208.0КиБ [ ] /запуск 112.0КиБ [ ] /tmp 48,0 КБ [ ] /опция e 16.0KiB [ ] /потеряно+найдено 8,0 КБ [ ] /dev 8.0 КБ [ ] /носитель 4.0 КБ [ ] /lib64 e 4.0KiB [ ] /srv e 4.0KiB [ ] /selinux e 4.0KiB [ ] /mnt e 4.0KiB [ ] /home 0,0 Б [ ] /процесс 0,0 Б [ ] /систем @ 0.0 B [ ] initrd.img @ 0,0 Б [ ] vmlinuz
Согласно ncdu
я использую около 10 ГиБ
из 128 ГиБ
— это около 10%
. Противоречие.
Как почистить мой убутту сервер
без перезагрузки?
Я думал, что ncdu
лежит и использовал другие приложения для поиска больших файлов и папок. Все они показывают тот же результат, что и ncdu
.
И команда df -h
показывает, что диск заполнен.
# дф -ч Используемый размер файловой системы Доступно Использование % Установлено на /dev/xvda 119Г 113Г 0 100% / udev 2.0G 8.0K 2.0G 1% /dev tmpfs 788M 212K 788M 1%/запуск нет 5.0M 0 5.0M 0% /run/lock нет 2.0G 0 2.0G 0% /run/shm
Обновление
sudo du -sch /*
результат:
$ sudo du -sch 8,7 м /бин 29M / загрузка 8.0K/dev 6,6 м / т. д. 4.0K /дом 0 /initrd.img 210M/либ 4.0K /lib64 16K /потеряно+найдено 8.0K / носитель 4,0 тыс./млн. 48K /опция du: невозможно получить доступ к `/proc/4470/task/4470/fd/4': нет такого файла или каталога du: невозможно получить доступ к `/proc/4470/task/4470/fdinfo/4': нет такого файла или каталога du: невозможно получить доступ к `/proc/4470/fd/4': Нет такого файла или каталога du: невозможно получить доступ к `/proc/4470/fdinfo/4': Нет такого файла или каталога 0 /процесс 5. 0G / корень 212K / пробег 7,8 млн /сбин 4.0K /селинукс 4.0K/ср 0 /систем 112K/тмп 629М/уср 2.3G/вар 0 /vmlinuz всего 8,1 Гб
8.1G
итого как обычно. Но я вижу, что не может получить доступ к
строкам, возможно, проблема из-за них.
Затем я проверил самую большую папку в /
. Это /root
:
$ sudo du -sch/root 96K /корень/Загрузки 2,5G / корень / Dropbox 36 КБ /root/nohup.out 4,0 КБ /root/npm-debug.log 4.0K /корень/только для чтения 980K /root/redis-2.6.16.tar.gz 228M /корень/tmp всего 2,7 Гб
linux — df говорит, что диск заполнен, но это не
спросил
Изменено
1 год, 9 месяцев назад
Просмотрено
257 тысяч раз
На виртуализированном сервере под управлением Ubuntu 10. 04 df сообщает следующее:
# df -h Используемый размер файловой системы Доступно Использование % Установлено на /dev/sda1 7.4G 7.0G 0 100%/ нет 498M 160K 498M 1% /dev нет 500M 0 500M 0% /dev/shm нет 500M 92K 500M 1% /var/run нет 500M 0 500M 0% /var/lock нет 500M 0 500M 0% /lib/init/rw /dev/sda3 917G 305G 566G 36% /домашний
Это озадачивает меня по двум причинам: 1.) df говорит, что /dev/sda1, смонтированный в /, имеет емкость 7,4 гигабайта, из которых используется только 7,0 гигабайт, однако сообщает, что / заполнен на 100 процентов; и 2.) Я могу создавать файлы в /, поэтому на нем явно осталось место.
Возможно, имеет значение то, что каталог /www является символической ссылкой на /home/www, который находится в другом разделе (/dev/sda3, смонтированном в /home).
Кто-нибудь может предложить, что здесь происходит? Сервер, кажется, работает без проблем, но я хочу убедиться, что нет проблем с таблицей разделов, файловыми системами или чем-то еще, что может привести к взрыву (или взрыву) позже.
- линукс
- убунту
- раздел
2
Возможно, процесс открыл большой файл, который впоследствии был удален. Вам придется убить этот процесс, чтобы освободить место. Вы можете определить процесс с помощью lsof. В Linux удаленные, но открытые файлы известны lsof и отмечены как (удаленные) в выводе lsof.
Вы можете проверить это с помощью sudo lsof +L1
3
5% (по умолчанию) файловой системы зарезервировано для случаев, когда файловая система заполняется для предотвращения серьезных проблем. Ваша файловая система заполнена. Ничего катастрофического не происходит из-за 5%-го буфера — root может использовать этот буфер безопасности, и в вашей настройке у пользователей без полномочий root нет причин записывать в эту файловую систему.
Если у вас есть демоны, работающие от имени пользователя без полномочий root, но которым необходимо управлять файлами в этой файловой системе, все сломается. Одним из распространенных таких демонов является с именем 9.0008 . Другой —
ntpd
.
1
Возможно, у вас закончились иноды. Проверьте использование inode с помощью этой команды:
df -i
Большинство файловых систем Linux (ext3, ext4) резервируют 5% пространства для использования только пользователем root.
Вы можете увидеть это, например,
dumpe2fs /dev/sda1 | grep -я зарезервирован
Вы можете изменить зарезервированную сумму, используя:
tune2fs -m 0 /dev/sda1
0
в этой команде означает процент от размера диска, поэтому, возможно, вы захотите оставить хотя бы 1%.
В большинстве случаев кажется, что сервер продолжает нормально работать — при условии, что все процессы запущены как «root».
1
В дополнение к уже предложенным причинам, в некоторых случаях это может быть также следующее:
- другой диск монтируется "поверх" существующей папки, которая заполнена данными
- du рассчитает потраченный размер смонтированного диска, а df покажет реально потраченный размер
- : (если возможно) размонтируйте все диски без полномочий root и снова проверьте размер с помощью
du -md 1
. Исправьте ситуацию, переместив скрытую папку в другое место или смонтировав в другом месте.
Решение
2
У меня была эта проблема, и я был сбит с толку тем фактом, что удаление различных больших файлов не улучшило ситуацию (не знал о 5% буфере), в любом случае следуя некоторым подсказкам здесь
Из корня спускались самые большие каталоги, обнаруженные путем многократного выполнения: -
du -sh */
, пока я не нашел каталог для файлов журналов веб-сервера, в которых были абсолютно массивные журналы
, которые я усек с
:> lighttpd.error.log
внезапно df -h используется до 48%!
3
df -h
округляет значения. Даже проценты округлены. Опустить -h
и вы увидите более мелкие различия.
О. А ext3 и производные резервируют процент (по умолчанию 5%) для файловой системы именно для этого проблемного созвездия. Если ваша корневая файловая система действительно заполнена (осталось 0 байт), вы не сможете загрузить систему. Таким образом, зарезервированная часть предотвращает это.
2
Если у вас заканчивается место на /dev/shm
и вы задаетесь вопросом, почему (учитывая фактическое используемое пространство ( 9[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] "
7931428864 1133806 руль /dev/shm/1600335920/subreducer/2/data/ibtmp1
12710576128 1133806 руль /dev/shm/1600335920/subreducer/2/tmp/#sql-temptable-114cee-8-e18.MAD
4173332480 1352445 руль /dev/shm/1600335920/subreducer/1/data/ibtmp1
13040484352 1352445 roel /dev/shm/1600335920/subreducer/1/tmp/#sql-temptable-14a2fd-8-eb3.MAD
9670602752 2298724 руль /dev/shm/1600338626/subreducer/2/tmp/#sql-temptable-231364-8-d2e.MAD
Первый файл занимает ~7,9ГБ, второй около 12,7 ГБ и т. д. Регулярное выражение подбирает все, что составляет 1 ГБ и более. Вы можете настроить регулярное выражение по мере необходимости.
Причиной может быть то, что мертвый процесс удерживает файл.
df -h
не покажет проблему;
Используемый размер файловой системы Доступно Использование % Установлено на tmpfs 90G 90G 508K 100% /dev/shm
508K, но...
$ du -shc | общая сумма всего 46G
Вы видите смещение 90G <> 46G. Это в файлах выше.
Затем просто уничтожьте PID (kill -9PID), указанный во втором столбце выходных данных выше.
$ убить -9 1133806
Результат:
Используемый размер файловой системы Доступно Использование % Установлено tmpfs 90G 72G 19G 80% /dev/shm
Отлично, место расчищено.
Причина, по которой все делается именно так, а не просто что-то вроде sudo lsof +L1 | grep '(удален)' | grep 'dev/shm' | awk '{напечатать $2}' | sudo xargs kill -9
заключается в том, что лежащие в основе процессы могут все еще работать. Если вы уверены, что это/они есть/нет, эта команда является потенциальной альтернативой в зависимости от вашего сценария. Это убьет все процессы, которые открыли «удаленные» файлы.
1
Я сделал большое обновление нескольких библиотек, и было много ненужных библиотек и временных файлов, поэтому я освобождаю место в папке «/» с помощью:
apt-get install -f sudo apt-очистить
И очистить свой мусор
1
проверьте /lost+found, у меня была система (centos 7) и некоторые файлы в /lost+found съели все место
Если ваш раздел - btrfs, может быть подтом, занимающий место. Файловая система btrfs может иметь много подтомов, только один из которых монтируется. Вы можете использовать btrfs subvolume list
для вывода списка всех подтомов и btrfs subvolume delete
для удаления одного. Убедитесь, что вы не удалили тот, который установлен по умолчанию.
Поскольку это была первая страница моего поиска в Google, я надеюсь помочь кому-нибудь.