@angus님, 실제로 무슨 일이 일어나고 있는지 단정 지을 수는 없습니다. ActivityPub 플러그인에 대해 잘 아는 관리자급 인력이 필요하지만, 이 포럼이 때때로 느려지거나 심지어 접속이 불가능해지는 것을 관찰했고, 이는 연동(federated)되는 게시물과 관련이 있는 것으로 보입니다.
이 게시물에서 해당 문제를 알렸으며, @silverpill님이 이 답변을 투트(tweeted)한 직후 어제 그 현상을 목격했습니다. NGINX에서 "503 Gateway timeout" 오류가 발생했는데, 이는 이 게시물과 관련이 있을 수 있다고 생각합니다.
이것이 사실이라면, 이는 링크 미리보기가 문제를 일으키는 방식과 유사한 일종의 "thundering herd"(번개 무리) 문제입니다. 이를 완화하기 위한 방법은 소프트웨어가 절대 표시되지 않을 수도 있는 리소스를 자동으로 가져오는 것을 중단하고, 대신 필요할 때 지연된 "lazy loading"(지연 로딩) 전략을 사용하는 것입니다.
압력을 주려는 건 아니고, 지금이 여름 휴가철이라 타이밍이 적절하지 않을 수도 있지만, 혹시 이 문제를 파고들 기회가 있다면 정말 좋겠습니다. 현재 단일 연동 게시물이 한동안 포럼을 매우 느리게 만들 수 있으며, 게시물 하나와 수정만으로도 방문자에게 nginx 오류 화면이 표시될 정도로 포럼이 불안정해집니다.
여러분, 이 문제가 심각한 이슈를 일으키고 있다면, 플러그인에는 이미 커뮤니티 관리자가 이 같은 시나리오에서 사용할 수 있는 여러 도구가 마련되어 있다는 점을 참고해 주세요.
문제의 원인이 되는 행위자를 파악하는 데 사용할 수 있는 포괄적인 로깅(오브젝트 로깅 포함)이 있습니다.
activity_pub_verbose_logging
activity_pub_object_logging
인박스 및 오브젝트 검색에 대한 레이트 리미팅과 사이트 설정을 사용하여 요청이 이루어지는 속도를 제어할 수 있습니다.
activity_pub_rate_limit_post_to_inbox_per_minute
activity_pub_rate_limit_get_objects_per_minute
도메인 허용 목록(allowlist)과 차단 목록(blocklist)을 설정할 수 있는 사이트 설정이 있습니다.
activity_pub_allowed_request_origins
activity_pub_blocked_request_origins
문제적인 팔로워로부터의 팔로우를 "거부"할 수 있는 관리자 작업이 있습니다.
또한, 서버가 처리할 수 있는 활동량은 서버의 리소스에 따라 달라집니다. 이는 제가 파악할 수 없는 부분입니다.
@aschrijver 리소스부터 확인해 보시는 것을 권합니다. 서버의 리소스는 어떻게 되나요? 정확히 무엇이 과부하 상태인가요? 현재 socialhub.activitypub.rocks를 아예 로드할 수조차 없습니다. 리소스 사용과 관련하여 더 근본적인 문제가 있는 것으로 추정됩니다.
그리고 두 번째 질문은 요청이 어디서 오고 있는지에 대한 것입니다. 이를 로깅을 통해 파악할 수 있습니다. 그런 다음, 많은 요청이 들어오는 도메인을 activity_pub_blocked_request_origins에 추가하세요.
먼저 이러한 기존 수단들을 사용해 보았음에도 여전히 성능 문제를 겪고 있다면, 그제서야 다른 잠재적인 원인을 살펴볼 수 있습니다.