После мониторинга использования памяти и корректировки моих настроек мне удалось прекратить частые сообщения в логе “Sidekiq потребляет слишком много памяти…”.
Я внес это изменение в свой файл /var/discourse/containers/app.yml:
Снижение количества воркеров до 4 освободило значительный объем памяти.
Затем я увеличил лимит RSS для Sidekiq со значения по умолчанию (~500 МБ) до 700 МБ, что дает Sidekiq немного больше пространства для маневра перед автоматической перезапуском.
Пока что Sidekiq стабилизировался, а использование памяти теперь находится в гораздо более безопасной зоне: чуть более 1 ГБ переместилось из используемой памяти в кэшированную и доступную память.
Оставляю это здесь на случай, если это окажется полезным или послужит подсказкой для кого-либо еще с подобными проблемами. Будет интересно посмотреть, сохранится ли эта стабильность после недели работы без перезагрузки; если да, я отмечу тему как решенную.
На форумах есть полезные темы (ссылки выше), которые помогли. Надеюсь, это также поможет кому-то ещё, кто сталкивается с подобными проблемами.
Я обнаружил, что мой форум не получает и близко того трафика, который требуется для 8 воркеров. Даже двух было бы достаточно.
Тем не менее, на моём сервере память кажется основным/будущим узким местом, но я планирую продолжать запускать ВМ того же размера. Поскольку своп находится на очень быстрых NVMe в RAID 10, я в будущем добавлю zswap и обновлю эту тему в ближайшие годы, если/когда трафик потребует этого.