Я постоянно вижу это в логах — значения варьируются от ~100 тыс. до ~1,35 млн, но показания около 100 тыс. встречаются довольно часто:
Ваше сетевое соединение Redis работает крайне плохо. Последние значения RTT: [97069, 103986, 98459, 100762, 381617]; в идеале они должны быть < 1000. Убедитесь, что Redis работает в той же зоне доступности (AZ) или дата-центре, что и Sidekiq. Если эти значения близки к 100 000, это может означать, что процесс Sidekiq исчерпал ресурсы процессора; уменьшите уровень параллелизма и/или обратитесь к https://github.com/mperham/sidekiq/discussions/5039
Это может указывать на то, что Redis не может использовать достаточное количество ресурсов процессора? Однако на самом сервере для процессора и оперативной памяти, похоже, есть значительный запас.
Также: Sidekiq потребляет слишком много памяти (используется: 3570.19M) для 'www.example.com', выполняется перезапуск
Используется единый файл app.yml с версией Discourse stable 3.3.2.
В дополнение к этому у меня возникла та же проблема с Jobs::PostAlert:
При текущих тестах время выполнения этих задач часто достигает 15 минут при использовании 4 процессов Sidekiq с 5 потоками каждый (по умолчанию). Похоже, скорость обработки задач в секунду для Sidekiq в основном зависит от того, сколько таких задач выполняется одновременно, и от количества свободных потоков для других задач.
Увеличение количества процессов Sidekiq до 6 и более (с 5 потоками) ускоряет очистку очереди, но PostgreSQL довольно регулярно падает (я предполагаю, из-за одновременного выполнения слишком большого количества задач Jobs::PostAlert).
Это происходит в версии Stable 3.3.2. Изменения и исправления из связанной темы, по-видимому, уже внедрены в 3.3.2, если я не ошибаюсь.
Я просмотрел вашу историю сообщений и увидел в теме Очень медленный Sidekiq … огромное количество непрочитанных уведомлений пользователей, что вы используете сервер с 32 ядрами и 128 ГБ ОЗУ и имеете очень большую и активную базу пользователей. В таком контексте я понимаю, почему 34 ГБ — не такая уж большая цифра! Однако для контекста может быть полезно (и интересно) узнать масштаб вашей установки — возможно, здесь или даже в вашем профиле? (например, количество ежедневных и ежемесячных активных пользователей, размер резервных копий базы данных, конфигурация сервера: ОЗУ, swap, диск, процессоры). Может быть, даже создать тему, где мы просто будем делиться своей статистикой — как для больших, так и для малых установок.