Само-DDoS

Не уверен, является ли это ошибкой, но, похоже, мой форум сам себя подвергает DDoS-атаке.
Раз в день сайт падает, потому что, похоже, выполняется создание индекса:

CREATE INDEX CONCURRENTLY temp_idx_recent_regular_post_search_data
ON post_search_data USING GIN(search_data)
WHERE NOT private_message AND post_id >= 0

Это, в свою очередь, порождает множество параллельных запросов:

SELECT “posts”.“id”, “posts”.“user_id”, “posts”.“topic_id”, “posts”.“post_number”, “posts”.“raw”, “posts”.“cooked”, “posts”.“created_at”, “posts”.“updated_at”, “posts”.“reply_to_post_number”, “posts”.“reply_count”, “posts”.“quote_count”, “posts”.“deleted_at”, “posts”.“off_topic_count”, “posts”.“like_count”, “posts”.“incoming_link_count”, “posts”.“bookmark_count”, “posts”.“score”, “posts”.“reads”, “posts”.“post_type”, “posts”.“sort_order”, “posts”.“last_editor_id”, “posts”.“hidden”, “posts”.“hidden_reason_id”, “posts”.“notify_moderators_count”, “posts”.“spam_count”, “posts”.“illegal_count”, “posts”.“inappropriate_count”, “posts”.“last_version_at”, “posts”.“user_deleted”, “posts”.“reply_to_user_id”, “posts”.“percent_rank”, “posts”.“notify_user_count”, “posts”.“like_score”, “posts”.“deleted_by_id”, “posts”.“edit_reason”, “posts”.“word_count”, “posts”.“version”, “posts”.“cook_method”, “posts”.“wiki”, “posts”.“baked_at”, “posts”.“baked_version”, “posts”.“hidden_at”, “posts”.“self_edits”, “posts”.“reply_quoted” …

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

Версии:

3.6.0.beta2-latest
c3efcc99e3e1f3a0855527d669d8b8f27cdd901b

Это похоже на то, что вы работаете с недостаточно мощной или неправильно настроенной базой данных.

Каков размер вашей базы данных и какие характеристики у сервера базы данных?

Управляемый DigitalOcean
8 ГБ ОЗУ / 4 vCPU / 160 ГиБ диска / Только основной / TOR1 — PostgreSQL 15
Пул в режиме транзакций (197 соединений)
Использовано 100 ГБ несжатых данных

@Eviepayne удалось ли вам решить эту проблему? Если нет, расскажите, пожалуйста, что ещё вы пробовали и что узнали о своей проблеме. Это официальная установка, выполненная по инструкции?

Насколько я могу судить, я думаю, что проблема решена. Не знаю, как именно я это исправил, но, похоже, это прекратилось после некоторых обновлений до новых ревизий контейнеров.
Я использую: 4d20baa8754fd782f01fbf8bf5c687cae846915a

Моя установка сейчас довольно сильно отличается от поддерживаемой.
Стандартная установка применима, но изменилось следующее:

Внешняя база данных (управляется через DigitalOcean)
Внешний кэш (управляется Valkey через DigitalOcean)
Зафиксированная ревизия контейнера
Перенастроен клиент ACME для DNS-проверок

Ранее у меня была проблема, когда я не мог обновиться из-за изменения версий pgvector, которые были недоступны в DO для PostgreSQL 15. Это уже решено, поэтому я обновился, и поведение самозаблокировки, похоже, больше не наблюдается.

Думаю, версия, на которой я был раньше, была: db67a0841e8e14ae70de0890441f8158c50ae3c9