Масштабирование сервера: какие конфиги нужно изменить? - воркеры unicorn, память и т.д.

Кратко: Существует ли руководство или список рекомендуемых конфигураций для рассмотрения при масштабировании сервера?

При первой установке Discourse на сервер некоторые настройки устанавливаются автоматически.
Одно из удобств, которое предоставляет облако, — это возможность просто изменить тип экземпляра на другой с большим/меньшим количеством процессоров и памяти.
Насколько я понимаю, автоматические конфигурации не подстраиваются автоматически под новый сервер (было бы полезно иметь предупреждение на панели администратора, если конфигурация вашего Discourse, похоже, не соответствует оборудованию, на котором она работает).

Например, я рассматривал следующие настройки из файла app.yml:

## Установите db_shared_buffers максимум в 25% от общего объема памяти.
## будет установлено автоматически bootstrap на основе обнаруженного объема ОЗУ, или вы можете переопределить
## значение
##
## db_shared_buffers: "4096MB"

## может улучшить производительность сортировки, но увеличивает использование памяти на подключение
#db_work_mem: "40MB"

## Сколько одновременных веб-запросов поддерживается? Зависит от объема памяти и количества ядер процессора.
## будет установлено автоматически bootstrap на основе обнаруженного количества процессоров, или вы можете переопределить
## значение
UNICORN_WORKERS: 4

Это предполагает, что на сервере запущен только Discourse, что не всегда так.

Я обычно указываю по два unicorn_workers на ядро и 25% системной памяти для db_shared_buffers.

Если вы запустите discourse-setup, он изменит настройки на рекомендуемые размеры. Но раз вы смотрите на эти рекомендации, вы можете просто сделать это самостоятельно.

Здравствуйте. Пора расширить возможности сервера. Чтобы изменить характеристики процессора и оперативной памяти, мне нужно выключить сервер. Есть ли что-то важное, что мне следует сделать перед изменением размера сервера? Я хочу, чтобы при возвращении всё было на месте и работало.

Я бы скачал полную резервную копию и копию файла app.yml на случай, если он не восстановится.

Можно ли изменить db_share_buffers без пересборки?

cd /var/discourse
./launcher destroy app
./launcher start app