Como Reduzir a Conta de Tráfego de Saída da Federação do Mastodon
🔍 WiseChecker

Como Reduzir a Conta de Tráfego de Saída da Federação do Mastodon

Operadores de servidores Mastodon frequentemente enfrentam custos de banda inesperadamente altos devido ao tráfego de saída da federação. Cada vez que um usuário em sua instância visualiza uma postagem remota ou segue uma conta em outro servidor, seu servidor baixa e depois reenvia esse conteúdo para seus usuários locais. Essa duplicação de dados pode fazer sua conta de tráfego de saída disparar, especialmente em instâncias menores com orçamentos limitados. Este artigo explica as principais causas do alto tráfego de saída na federação do Mastodon e fornece etapas práticas para reduzi-lo sem prejudicar a experiência dos usuários.

Principais Conclusões: Reduza os Custos de Banda de Saída do Mastodon

  • Preferências > Administração > Configurações do Servidor > Retenção de Conteúdo: Exclua automaticamente mídias de instâncias remotas após um número definido de dias para reduzir o tráfego de reenvio.
  • Preferências > Administração > Configurações do Servidor > Federação > Cache de Mídia: Desative ou limite o cache de mídia para conteúdo remoto, evitando a redistribuição local de arquivos grandes.
  • Preferências > Administração > Configurações do Servidor > Federação > Bloqueios de Domínio: Bloqueie domínios de alto tráfego ou indesejados para impedir que seu conteúdo seja buscado e retransmitido.

ADVERTISEMENT

Por que o Tráfego de Federação é Caro para Instâncias Mastodon

O Mastodon usa o protocolo ActivityPub para se comunicar entre servidores. Quando um usuário em sua instância segue uma conta remota ou impulsiona uma postagem remota, seu servidor busca esse conteúdo da instância remota. Seu servidor então armazena uma cópia desse conteúdo e o entrega a todos os usuários locais que seguem a mesma conta remota ou são mencionados na postagem. Esse processo é chamado de retransmissão ou entrega em leque.

O tráfego de saída são os dados que seu servidor envia para outras instâncias. Cada vez que sua instância entrega uma postagem a um servidor remoto, o conteúdo completo, incluindo texto, anexos de mídia e metadados, é transmitido. Se seus usuários seguem muitas contas ativas em instâncias grandes como mastodon.social, seu servidor pode enviar a mesma postagem para centenas de servidores remotos. Esse efeito de multiplicação é a causa raiz das contas altas de tráfego de saída.

Arquivos de Mídia São os Principais Responsáveis pelos Custos de Banda

O conteúdo de texto nas postagens do Mastodon é pequeno, geralmente alguns kilobytes. Anexos de mídia como imagens, vídeos e arquivos de áudio são muito maiores. Um único vídeo pode ter dezenas de megabytes. Quando seu servidor busca uma postagem remota com um vídeo, ele baixa o arquivo e o envia para cada servidor remoto que precisa dele. Se esse vídeo for impulsionado por vários usuários em diferentes instâncias, o custo de upload se multiplica rapidamente.

Federação Desnecessária com Instâncias Inativas ou Indesejadas

Por padrão, o Mastodon federado com todas as instâncias que não estão bloqueadas. Isso significa que seu servidor pode estar enviando dados para instâncias que não têm usuários interessados em seu conteúdo. Além disso, algumas instâncias são conhecidas por gerar grandes volumes de spam ou conteúdo de baixa qualidade que ainda consomem banda. Bloquear esses domínios reduz o tráfego de saída imediatamente.

Etapas para Reduzir o Tráfego de Saída da Federação do Mastodon

  1. Configurar as Configurações de Retenção de Mídia
    Vá para Preferências > Administração > Configurações do Servidor > Retenção de Conteúdo. Defina um período de retenção para arquivos de mídia remotos. Por exemplo, defina para 30 dias. Após 30 dias, seu servidor exclui automaticamente as cópias em cache local de mídias remotas. Isso impede que seu servidor reenvie arquivos de mídia antigos quando uma postagem remota é impulsionada ou referenciada novamente. Esta é a mudança mais eficaz para reduzir a banda de saída.
  2. Desativar o Cache de Mídia para Conteúdo Remoto
    Em Preferências > Administração > Configurações do Servidor > Federação, encontre a opção Cache de Mídia. Desmarque a caixa que diz Armazenar mídia remota em cache. Quando desativado, seu servidor não armazenará cópias de arquivos de mídia remotos. Em vez disso, quando um usuário local visualiza uma postagem remota, a mídia é carregada diretamente do servidor de origem. Isso elimina completamente o custo de reenvio de mídia. Observe que isso pode tornar o carregamento de mídia mais lento para seus usuários, pois depende da disponibilidade do servidor remoto.
  3. Bloquear Domínios de Alto Tráfego ou Indesejados
    Vá para Preferências > Administração > Configurações do Servidor > Federação > Bloqueios de Domínio. Adicione domínios que geram tráfego excessivo ou que não são relevantes para sua comunidade. Por exemplo, bloqueie instâncias conhecidas por spam ou instâncias com atividade muito alta que seus usuários não seguem. Use a ação Suspender para bloqueio total. Isso interrompe toda a federação de entrada e saída com esse domínio.
  4. Limitar Seguimentos de Usuários Locais a Contas Remotas
    Incentive seus usuários a seguir contas em instâncias que não consomem muita banda. Você também pode definir um limite no número de contas remotas que um usuário local pode seguir. Isso é configurado em Preferências > Administração > Configurações do Servidor > Limites. Defina um máximo de seguimentos por usuário. Embora isso possa reduzir o engajamento do usuário, limita diretamente o número de entregas remotas que seu servidor precisa gerenciar.
  5. Usar uma Rede de Entrega de Conteúdo para Mídia
    Se sua instância serve muita mídia para os usuários, considere usar uma CDN como Cloudflare ou Bunny.net. Embora isso não reduza diretamente o tráfego de saída da federação, ele transfere a entrega de mídia para seus usuários do seu servidor. Isso pode reduzir sua conta de banda se você pagar por gigabyte. Configure a CDN para armazenar em cache os ativos de mídia com um tempo de expiração longo, como 7 dias.
  6. Monitorar o Uso de Banda com Analytics
    Instale uma ferramenta de monitoramento como vnstat ou iftop em seu servidor para rastrear o uso de banda em tempo real. Identifique quais instâncias estão consumindo mais tráfego de saída. Use a lista de Bloqueios de Domínio para bloquear os principais infratores. Repita esse monitoramento semanalmente para detectar novas instâncias de alto tráfego precocemente.

ADVERTISEMENT

Problemas Comuns Após Reduzir o Tráfego de Federação

Mídia Não Carregando para Usuários Após Desativar o Cache

Quando você desativa o cache de mídia, a mídia remota carrega diretamente do servidor de origem. Se esse servidor estiver lento ou offline, os usuários veem placeholders de mídia quebrados. Para mitigar isso, informe seus usuários sobre a mudança em um anúncio do servidor. Você também pode definir um tempo de cache curto, como 1 hora, em vez de desativá-lo completamente. Nas configurações de Federação, defina a Retenção de cache de mídia para um valor baixo, como 1 dia.

Usuários Perdendo Acesso a Conteúdo de Instâncias Bloqueadas

Bloquear um domínio interrompe toda a federação com essa instância. Usuários que seguem contas nesse domínio não verão mais novas postagens dessas contas. Antes de bloquear um domínio, verifique se algum de seus usuários segue contas lá. Você pode usar a interface de Administração para listar contas remotas seguidas por usuários locais. Se apenas alguns usuários forem afetados, considere pedir a eles que deixem de seguir essas contas em vez de bloquear todo o domínio.

A Redução de Banda Não é Imediata

Após aplicar as alterações de retenção, as mídias em cache existentes não são excluídas até que o período de retenção expire. Se você definiu uma retenção de 30 dias, as mídias antigas permanecem e continuam sendo reenviadas por 30 dias. Para ver uma redução imediata de banda, limpe manualmente o cache de mídia. Execute o seguinte comando em seu servidor: RAILS_ENV=production bin/tootctl media remove --days=0. Isso exclui toda a mídia em cache imediatamente. Após isso, apenas novas mídias serão armazenadas em cache e retidas de acordo com suas novas configurações.

Comparação dos Métodos de Redução de Tráfego de Saída

Método Impacto na Banda Impacto na Experiência do Usuário Facilidade de Implementação
Período de retenção de mídia Alta redução após a expiração da retenção Mínimo; mídias antigas podem ficar indisponíveis Muito fácil; feito via interface de administração
Desativar cache de mídia Redução imediata e alta Moderado; mídia pode carregar mais devagar Fácil; um botão na interface de administração
Bloquear domínios de alto tráfego Moderado a alto dependendo do domínio Usuários perdem acesso ao conteúdo da instância bloqueada Moderado; requer monitoramento e comunicação com o usuário
Limitar seguimentos remotos por usuário Moderado; limita o número de entregas Moderado; usuários podem ser restringidos Fácil; definir um número na interface de administração
CDN para entrega de mídia Reduz o tráfego de saída do servidor, mas não o da federação Positivo; carregamento de mídia mais rápido Moderado; requer configuração de DNS e CDN

Ao implementar uma combinação de retenção de mídia, bloqueio de domínios e limites de usuários, você pode reduzir significativamente sua conta de tráfego de saída do Mastodon. Comece com a configuração de retenção de mídia, pois não requer comunicação com o usuário e tem o maior impacto. Monitore seu uso de banda semanalmente usando ferramentas como vnstat e ajuste sua lista de bloqueios de domínio conforme necessário. Para controle avançado, considere usar o comando bin/tootctl media remove para limpar mídias antigas imediatamente após alterar as configurações de retenção.

ADVERTISEMENT