3 ГБ ОЗУ + 1 ГБ swap-раздела — этого достаточно?

Никаких проблем с наличием нескольких областей подкачки (или, впрочем, нескольких файлов подкачки).

Полагаю, пик потребления памяти приходится на момент обновления — и риск заключается в том, что форум будет недоступен, пока вы не получите помощь.

Также стоит установить более щедрые параметры перераспределения памяти (overcommit): вы обнаружите соответствующее предупреждение в журнале обновления, если ещё не внесли необходимые изменения.

ПРЕДУПРЕЖДЕНИЕ: overcommit_memory установлен в 0! Фоновое сохранение может завершиться ошибкой при нехватке памяти. Чтобы исправить эту проблему, добавьте ‘vm.overcommit_memory = 1’ в файл /etc/sysctl.conf, а затем перезагрузите систему или выполните команду ‘sysctl vm.overcommit_memory=1’, чтобы изменения вступили в силу.

Об этом уже упоминалось много раз, однако существует сопротивление включению этой настройки в стандартный рецепт установки Discourse. Это такой параметр, который нельзя настроить внутри образа Docker — его необходимо изменять непосредственно на хост-системе.