Сейчас что-то происходит, но это занимает невероятно много времени. Я уже 3 года запускаю форум на самостоятельно установленном Droplet от DigitalOcean, но такое поведение для меня ново и вызывает много простоев. Есть ли способ ускорить этот процесс? Может быть, дело в изображениях на форуме или в чём-то другом?
Как человек, который открыто признает, что он любитель, делающий всё возможное, — есть ли у вас какие-либо рекомендации, что мне делать дальше?
Команда db:migrate не сработала — сообщение об ошибке:
client_loop: send disconnect: Connection reset
После повторного входа вы абсолютно правы:
Доступен новый релиз ‘20.04.6 LTS’.
Запустите ‘do-release-upgrade’ для обновления до него.
Учитывая, что мой форум сейчас недоступен, безопасно ли мне выполнить обновление, а затем заняться восстановлением форума? Или мне сначала попробовать вернуть форум в онлайн?
Вы сделали резервную копию перед обновлением? Если да, то проще всего будет получить новый сервер с Ubuntu 22, установить Discourse и восстановить резервную копию.
Сложно сказать наверняка, но поскольку возникают сбои, я бы не стал рисковать. По крайней мере, не убедившись, что резервная копия надёжно сохранена в безопасном месте.
Вполне вероятно, что вы сможете создать новую виртуальную машину, остановить контейнер (похоже, он всё равно не запущен), затем с помощью rsync скопировать все данные на новый сервер и попробовать снова. Это, скорее всего, позволит вам восстановить работу без потери данных.
Всё звучит так просто, но, чёрт возьми, я чувствую себя здесь не в своей тарелке. Сейчас это работает на Droplet от DigitalOcean. Так что запуск новой ВМ — это уже вопрос с подвохом? На том же Droplet? Или на новом?
htop показывает, что процесс discourse [local] delete потребляет 100% процессорного времени. У дроплета 8 ГБ оперативной памяти, и в данный момент используется менее 1 ГБ (без учёта буферов).
Операционная система устарела, но это кажется мне очень странным. Памяти и места на диске достаточно, а задача postgres delete выполняется уже более 12 минут. Записей меньше 600 тысяч, а пользователей — менее 4 тысяч, так что база данных не огромная. О, подождите. Каталог postgres_data занимает 28 ГБ.
Войдите в контейнер, переключитесь на пользователя postgres, запустите psql и выполните:
SELECT pid, age(clock_timestamp(), query_start), usename, query
FROM pg_stat_activity
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%'
ORDER BY query_start desc;