Не понимаю, куда делось всё моё место

У меня есть Droplet на 50 ГБ, который работает без проблем уже несколько лет. Сейчас на нём занято 11,7 ГБ под загрузками. Ещё пару недель назад у меня было свободно как минимум 15–20 ГБ. Однажды, зайдя в админку после недельного отсутствия, я увидел, что свободно осталось всего 700 МБ (при этом резервная копия занимала около 5 ГБ). Я удалил её, и теперь у меня снова свободно 5,7 ГБ.

Я несколько раз запускал ./launcher cleanup (ранее эта команда освобождала у меня более 15 ГБ) в разные дни после нескольких обновлений, но она всегда показывала, что доступно для освобождения 0 байт.

Поэтому я не понимаю, что произошло. Я не могу гарантировать, что всё это место было доступно до моего недельного отсутствия, но я почти уверен, что было. Никаких обновлений, которые могли бы занять много дополнительного пространства, в этот период не проводилось…

Есть какие-то идеи? Я собирался просто добавить блочное хранилище и перенести загрузки, но загрузки не занимают всё место, значит, где-то что-то ещё исчезло или занимает пространство. Кроме того, сейчас у меня недостаточно места для создания новой резервной копии на случай чего, поэтому я сомневаюсь, стоит ли что-то делать без неё.

Может, дело просто в старых ядрах?
sudo apt autoremove?
Возможно, в логах?

Привет! Проверил ли ты папку с резервными копиями на наличие повреждённых или временных резервных копий, которые занимают место? Со мной такое случалось несколько раз.

Чтобы узнать, куда уходит место на диске, я использую утилиту ncdu. Именно с её помощью я нашёл свои проблемы.

Примечание: Если место на диске закончилось, не забудь проверить, не было ли автоматически отключено значение «Загрузка изображений с удалённого сервера» из-за этого. Мы должны получать уведомление об этом, но я несколько раз его пропустил. Даже не уверен, получал ли я такое уведомление вообще.

Некоторая информация здесь:
Любые советы по экономии места?

Вы можете попробовать

        sudo journalctl --vacuum-size=100M

Недавно я освободил несколько ГБ на системе с лимитом 1 ГБ/25 ГБ с помощью этой команды.

Но если вы делаете резервную копию, включающую загрузки объёмом 12 ГБ, то для создания такой копии потребуется примерно вдвое больше места, а несколько таких копий, скорее всего, заполнят ваш диск.

У меня на сайте нет сохранённых резервных копий. Обычно я храню только самую свежую (около 5,8 ГБ) и удаляю старые (к тому же у меня есть все эти копии, сохранённые вне сайта). Но сейчас на сайте их нет вообще; единственное место, о котором сообщает админ, — это загрузки на 12 ГБ. Я планировал либо расширить дроплет, либо добавить блочное хранилище в ближайшее время, но тут вдруг всё свободное место исчезло. А я hadn’t сделал резервную копию уже пару недель, пока отсутствовал :sweat_smile:. Я изучил руководство по блочному хранилищу здесь, и оно гораздо сложнее, чем просто «купить и подключить», поэтому я не хочу рисковать, перемещая и изменяя что-либо без резервной копии.

У меня место ещё не полностью закончилось — осталось 700 МБ, но я проверил, и эта настройка не отключена. Спасибо, что предупредили.

Я попробую все предложения здесь и посмотрю, что сработает или где именно указано, куда исчезло место.

Это ничего не освободило.

Это фактически подтверждает для меня, что что-то не так, ведь он говорит о своей установке на 25 ГБ, а у меня дроплет на 50 ГБ!

Я проверил папку с резервными копиями, там есть несколько случайных файлов. Самый большой — dpkg.status.0 (700 МБ), а затем шесть последовательных файлов dpkg.status.1.gz по 200 МБ каждый. Можно ли их безопасно удалить? Это не объясняет основную часть занятого места, но всё же это около 1,6 ГБ, что хотя бы приближает нас к цели по освобождению места под резервную копию…

Редактирование: хорошо, в папке /var/backups ничего не было, но я нашёл один файл в /var/discourse/shared/standalone/backups, который не отображался в моей панели администратора. После его удаления освободилось 6,5 ГБ.

Я установил ncdu и запустил его. Он показывает, что самая большая папка занимает 20 ГБ, а остальные почти ничего. Значит, где-то ещё теряется около 30 ГБ, и это не в /var/discourse?

Помимо этого у меня есть файл подкачки размером 2,2 ГБ. Итого около 4 ГБ с учётом того, что находится в резервных копиях. Очевидно, есть ещё какие-то случайные файлы. Если не считать их, то 20 ГБ остаются необъяснёнными.

Возможно, я мог бы сделать снимок системы, создать блочное хранилище, переместить туда файлы загрузок, и тогда у меня освободится 22 ГБ. Но я беспокоюсь, что место будет постоянно исчезать, и я не смогу переместить туда что-либо ещё, чтобы освободить больше места.

Вы выполнили команду, которую я ранее рекомендовал для журнала?

Запустите ncdu от корня и посмотрите, где находятся файлы.

В частности, я рекомендую выполнить на вашем сервере под root команду:
du -kx / | sort -n | tail -49
или аналогичную. Вам нужен подход, который показывает реальную картину без предположений.

Пока вы в командной строке, я бы также предложил выполнить:

df -mT
free

А также:

docker system df
docker images

Меня беспокоит то, что вы говорите о резервных копиях. Существует два вида резервных копий: обычные, включающие вложения, и облегчённые, исключающие их. Их размеры должны различаться. У вас, скорее всего, настроена автоматическая периодическая резервное копирование. Возможно, автоматические резервные копии создаются, когда есть свободное место, и именно они его заполняют.

Рекомендую внимательно изучить файлы перед их удалением: посмотрите дату, временную метку и размер. Это поможет понять, как они появились.

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