Autoddos

No estoy seguro de si esto es un error o no, pero parece que estoy experimentando un auto-ataque de denegación de servicio en mi foro.
Una vez al día, el sitio se cae porque parece estar creando un índice:

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

Esto, a su vez, crea muchas consultas paralelizadas:

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” …

El problema aquí es que estoy usando una base de datos administrada que tiene un pool de conexiones de 197, que se llena rápidamente.

Esto huele a que se está ejecutando en una base de datos con poca potencia o mal configurada.

¿Qué tamaño tiene su base de datos y cuáles son las especificaciones del servidor de base de datos?

Digitalocean administrado
8 GB RAM / 4vCPU / 160 GiB Disco / Solo primario / TOR1 - PostgreSQL 15