Наш форум претерпел масштабные изменения в инфраструктуре, и теперь он работает плохо.
Я перенёс базу данных в управляемую базу данных на DigitalOcean, разместил активы S3 на экземпляре MinIO с Cloudflare перед ним.
Также я повторно развёрнул Discourse на меньшей виртуальной машине, но с достаточными ресурсами для обработки нагрузки.
Судя по тому, что я вижу, есть запросы PostgreSQL, которые выполняются бесконечно долго:
21 секунда
![]()
19 секунд
![]()
Так что, может, откатить это?
Хотя, возможно, кто-то уже пробовал подобное и сможет поделиться советами по улучшению такой конфигурации.
Почему это не поддерживается?
В app.yml для Discourse есть опции для внешних баз данных?
Я пытаюсь масштабировать большой сервер.
Моя вина, давай пока уберу это ![]()
Насколько близко управляемая база данных к вашему экземпляру? Находятся ли они в одной сети?
Да, сервер тоже от DigitalOcean.
Сейчас я сделаю чистую установку по официальному руководству и импортирую базу данных.
Посмотрим, что получится.
Есть ли способ вручную запустить эти миграции базы данных?
Но похоже, что ваш сервер PostgreSQL не справляется с нагрузкой? Какой размер у вашей базы данных? Сколько оперативной памяти у вашего сервера PostgreSQL?
Может, стоило сначала подождать и проверить, работает ли ваш сервер PostgreSQL?
Дело в том, что обычно поддерживается только стандартная установка. Внешняя база данных должна работать, но вы добавляете множество переменных, которые трудно предугадать.
Это поддерживается меньше. Насколько большой? И насколько велики другие компоненты? База данных, сервер базы данных, виртуальная машина, на которой вы работаете, пропускная способность между виртуальной машиной и базой данных…
Это хорошее начало, после чего вы сможете постепенно проверять всё по списку.
Обычно это происходит при инициализации контейнера, но вы можете зайти в контейнер и выполнить:
cd /var/www/discourse
bin/rails db:migrate
Даже простая чистая установка не работает — база данных ещё не восстанавливалась.
Выполнил discourse-setup на чистой виртуальной машине, но регистрация не работает.
Попытался восстановить через командную строку, но команда discourse restore не показывает резервные копии.
Редактирование: сработало после второго полного восстановления.