Итак, я тестирую Discourse как возможную платформу для нашего существующего форума и пытаюсь разобраться с требованиями к ресурсам.
В данный момент я запускаю Droplet с Discourse на узле DigitalOcean с 4 виртуальными ядрами процессора и 8 ГБ оперативной памяти.
При импортированном сайте vBulletin, который работает здесь без трафика и активности, система изначально использует около 75% из этих 8 ГБ оперативной памяти, а за несколько дней потребление возрастает до 100%, после чего сервер перестает отвечать.
Это меня сбивает с толку, поскольку минимальные требования, кажется, значительно ниже.
(Я пересоздавал контейнер, проверял и очищал задачи Sidekiq, но использование памяти по-прежнему высокое.)
Есть ли у кого-нибудь советы, или мне стоит рассматривать конфигурацию с огромным объемом оперативной памяти только для того, чтобы форум оставался доступным?
Система может повторно обрабатывать посты и изменять размер изображений, что может потребовать значительных ресурсов, даже если у вас нет пользователей. Вы можете проверить /sidekiq, чтобы увидеть, есть ли в очереди или выполняются ли какие-либо задания. Также htop может дать вам представление о том, что выполняется.
Импорт был примерно 5 недель назад. С тех пор приложение пересобиралось 5 раз, так как это, похоже, решает проблему с памятью, когда контейнер достигает 100% использования памяти и перестает отвечать.
Все задачи в Sidekiq были очищены, как упоминалось, но использование памяти всё ещё составляет 75%.
График использования памяти с момента пересборки сервера вчера:
Проблема с воркерами unicorn была тем, что я проверил довольно рано. Я изменил использование оперативной памяти для db_shared_buffers, а также установил количество воркеров unicorn на 3.
Однако настройка воркеров unicorn, похоже, мало влияет или вообще не влияет на количество фактически запущенных воркеров.
Из моего файла app.yml
## Сколько одновременных веб-запросов поддерживается? Зависит от объема памяти и количества ядер процессора.
## Будет установлено автоматически загрузочным скриптом на основе обнаруженных процессоров, или вы можете переопределить
UNICORN_WORKERS: 3