Обработка AP замедляет работу форума?

Привет, @angus. Я не могу точно сказать, что именно происходит — для этого нужен администратор и человек, хорошо разбирающийся в плагине ActivityPub. Однако я наблюдаю, что этот форум иногда работает медленно или даже становится недоступным, и, похоже, это как-то связано с публикациями, которые передаются через федерацию.

Сообщил об этом в этом посте. Вчера я заметил проблему после того, как @silverpill опубликовал этот ответ. При этом я получил ошибку «503 Gateway timeout» от NGINX, что, по моему мнению, может быть связано с этим постом.

Я также заметил, что SH перестаёт отвечать при публикации ответа. Это происходит потому, что ответы отправляются на множество других серверов, которые начинают загружать дерево ответов одновременно.

Извините за это.

Если это так, то по сути это проблема «грохочущего стада», аналогичная проблемам, которые могут возникать из-за предпросмотров ссылок. Мерами смягчения здесь являются отказ программного обеспечения от автоматической загрузки ресурсов, которые могут никогда не быть просмотрены, и переход к стратегиям отложенной «ленивой загрузки» по требованию.

Привет, ребята! Я скоро подробнее разберусь с этим, надеюсь, уже завтра.

Я отключил свой плагин из-за этой проблемы. Я получаю множество запросов без остановки от одного и того же источника-экземпляра или от множества других экземпляров, выполняющих запросы такого же типа без каких-либо ограничений на задержку. Извините, но это странно: постоянные запросы и флуд моего сервера — это уже слишком.

angus:

Привет, ребята, я скоро внимательно изучу это, надеюсь, завтра.

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

Привет, ребята! Если это вызывает серьёзные проблемы, отмечу, что в плагине уже есть ряд инструментов, которыми администратор сообщества может воспользоваться в подобных ситуациях.

  1. Есть подробное логирование, включая логирование объектов, которое поможет определить источник любых проблемных акторов.

    • activity_pub_verbose_logging
    • activity_pub_object_logging
  2. Получение входящих сообщений и объектов имеет ограничения скорости (rate limiting) и настройки сайта, с помощью которых можно контролировать частоту запросов.

    • activity_pub_rate_limit_post_to_inbox_per_minute
    • activity_pub_rate_limit_get_objects_per_minute
  3. Существуют настройки сайта для использования allowlist и blocklist доменов.

    • activity_pub_allowed_request_origins
    • activity_pub_blocked_request_origins
  4. Есть действия администратора, позволяющие «отклонять» подписки от проблемных подписчиков.

Кроме того, объём активности, с которым может справиться сервер, зависит от его ресурсов. На этот аспект у меня нет возможности влиять.

@aschrijver Начните с ресурсов. Какие ресурсы у сервера? Что именно перегружено? Я даже не могу загрузить socialhub.activitypub.rocks в данный момент. Подозреваю, что проблема более фундаментальная и связана с использованием ресурсов.

Затем мой второй вопрос: откуда приходят запросы? Это можно выяснить с помощью логов. Затем добавьте домены, с которых поступает много запросов, в activity_pub_blocked_request_origins.

Если мы сначала применим эти имеющиеся рычаги управления, и проблемы с производительностью всё ещё будут наблюдаться, тогда можно будет рассмотреть другие возможные причины.

Отлично, SocialHub загрузился, я открыл логи, и причина, похоже, вполне очевидна.

Предлагаю добавить mastodon.sdf.org в чёрный список и отправить уведомление их администраторам, что они рассылают спам в SocialHub.

*Редактирование: Похоже, ещё одной проблемой было отключение подписанных запросов. Я сделал следующее:

  1. Установил параметр «Activity pub require signed requests» в значение true.
  2. Установил параметр «Activity pub blocked request origins» в значение mastodon.sdf.org.

Посмотрим, сохранятся ли проблемы.

Спасибо за быстрый ответ, @angus. Я всего лишь обычный участник этого форума, но эта информация может быть полезна для @how или других администраторов форума, чтобы разобраться в ситуации.

Не переживайте. Я подозреваю, что достаточно просто включить подписанные запросы и добавить mastodon.sdf.org в блок-лист.

Это должно блокироваться везде. Он действует как агент DDoS-атак. Количество запросов, которые он отправляет, совершенно ужасно.

Стоит ли мне заблокировать mastodon.sdf.org? Похоже, это легитимный источник, но, возможно, их конфигурация вызывает проблемы? В любом случае, если потребуется, я смогу это сделать.

angus:

Я вообще не могу загрузить socialhub.activitypub.rocks в данный момент. Подозреваю, что проблема более фундаментальная и связана с использованием ресурсов.

Да, VPS небольшой. Я мог бы обновить его до более мощного.