셀프 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 GB RAM / 4vCPU / 160 GiB 디스크 / Primary 전용 / TOR1 - PostgreSQL 15
트랜잭션 모드 풀 (197개 연결)
비압축 데이터 100GB 사용 중

@Eviepayne 이 문제를 해결할 수 있었나요? 그렇지 않다면, 추가로 어떤 시도를 하셨고 문제에 대해 어떤 내용을 파악하셨는지 알려주시겠어요? 공식 설치 지침을 사용하여 설치된 지원되는 환경인가요?

내가 보기에는 아마 해결된 것 같습니다. 어떻게 고쳤는지는 모르겠지만, 더 새로운 컨테이너 리비전으로 업데이트한 이후로 그런 현상이 멈춘 것 같습니다.
현재 사용 중인 버전: 4d20baa8754fd782f01fbf8bf5c687cae846915a

현재 제 설치 환경은 공식적으로 지원되는 설치 방식과 상당히 차이가 있습니다.
표준 설치 절차는 그대로 적용되지만, 변경된 부분은 다음과 같습니다:

외부 데이터베이스 (DigitalOcean으로 관리)
외부 캐시 (DigitalOcean으로 관리되는 Valkey)
고정된 컨테이너 리비전
DNS 챌린지를 위해 재구성된 ACME 클라이언트

과거에 pgvector 버전이 변경되어 pg15용이 DigitalOcean에서 제공되지 않아 업데이트를 하지 못했던 문제가 있었으나, 이후 해결되어 업데이트를 진행했고, 이제 셀프 디도스(self-ddosing) 현상이 더 이상 발생하지 않는 것으로 보입니다.

이전에 사용하던 버전은 아마도: db67a0841e8e14ae70de0890441f8158c50ae3c9 였을 것입니다.