У меня есть небольшой экземпляр Discourse на сервере с 25 ГБ дискового пространства. В настоящее время свободно только 3,4 ГБ, и я не уверен, почему. Это мешает мне выполнять обновления.
На этом экземпляре не запущено никаких других сервисов, кроме Discourse, и их никогда не было.
Пока что, чтобы освободить место, я:
удалил все найденные журналы как из Discourse, так и из /var/log/journal
удалил все резервные копии Discourse, кроме одной
очистил старые образы Docker
выполнил apt-get autoclean и apt-get autoremove
убедился, что у меня нет старых ядер
Я подумывал перенести данные PostgreSQL на внешний диск, но сейчас они занимают менее гигабайта, так что, думаю, это не поможет достаточно.
/dev/vda1 использует 20 ГБ пространства.
Есть ли что-то еще, что я могу сделать? Не является ли 25 ГБ недостаточным объемом дискового пространства для запуска Discourse?
Это зависит в основном от ваших загрузок, а также от резервных копий и PostgreSQL, если ваш сайт очень большой (что, судя по всему, не является проблемой). Каков объём ваших загрузок? Эта информация должна отображаться внизу панели администратора.
Это менее 50 МБ, это совсем не большой или старый экземпляр. Как я уже упоминал, я подумывал перенести его с основного диска, но не думаю, что это основная проблема.
Если ваши загрузки занимают ~25 МБ, а PostgreSQL — ~1 ГБ, я бы предположил, что Discourse создает резервные копии, которые вам не нужны. Проверьте настройки хранения резервных копий (Админ > Настройки > Резервные копии) и посмотрите текущие резервные копии (Админ > Резервные копии), удалив те, которые вам не нужны.
Наибольшее место на файловой системе занимают /var/lib/containerd/io.containerd.content.v1.content (2,4 ГБ) и /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs (огромные 12 ГБ)
Извините, забыл упомянуть, что нужно находиться внутри контейнера. Файл, о котором вы говорили, относится к Docker. Вы можете проверить, чем он используется, с помощью команды docker system df, и при необходимости выполнить глобальную очистку с помощью docker system prune, но убедитесь, что Discourse запущен, когда вы это делаете.
В контейнере единственный файл, размер которого превышает 1 ГБ, — это /var/www/discourse/vendor/bundle/ruby/, занимающий 2,1 ГБ.
Добавлю: если я очистит образ перед обновлением, чтобы он скачался заново, у меня хватает места. Но когда я пытаюсь выполнить обновление и он снова скачивается, место заканчивается. То есть новый образ занимает почти 5 ГБ.
Действительно, пожалуйста, покажите все ваши выходные данные. Я не рекомендую копаться внутри контейнера — ваша проблема находится на системном уровне, и именно с этого стоит начать поиск. И не ищите там, где, как вам кажется, может быть проблема, а рассмотрите всю картину в целом.
Сначала перезагрузитесь. Вам нужна чистая файловая система и свежая система.
Далее, ознакомьтесь с этой предыдущей темой для получения подробных рекомендаций:
[quote=“Ed_S, post:3, topic:404122”]
Пожалуйста, опубликуйте подробности о том, что произошло
[/quote]}
Мой форум — небольшой (по сути, это только я), и я использую VPS с 40 ГБ, просто чтобы быть в безопасности и не переживать, что обновления вызовут головную боль.
Это единственный из моих трёх VPS, где я не использую 20 ГБ. Остальные — это HTTP-сервер с MySQL и PHP на бэкенде и RTMP-сервер. Тот, на котором работает Discourse, также запускает docker-mailserver, но у меня отключён дайджест-почты, а footprint DMS минимален.
Спасибо за ваши ответы! Извините, что пропал — в жизни возникли дела, и вчера у меня не было времени заниматься дальнейшим поиском неисправностей.
Краткая суть: я заметил, сколько тем посвящено именно этой проблеме, и решил, что даже если я решу её сейчас, она может возникнуть снова, поэтому перенёс свой инстанс на чуть более мощный сервер с 35 ГБ свободного места.
Для тех, кто ищет здесь помощь по этой конкретной проблеме и не хочет обновлять сервер:
./launcher cleanup — это я уже пробовал, но это не освободило достаточно места. Я также уже выполнил:
И снова этого оказалось недостаточно. В journalctl было много логов (для машины с 25 ГБ), так что обязательно проверьте, так ли это в вашем случае, но мне это не помогло достаточно.