Mudanças

Esta versão reduz significativamente o uso de memória para o backend do Lemmy. Métricas em instâncias de produção mostram uma redução de até 10 vezes. Aqui você pode ver as estatísticas de algumas instâncias diferentes. Leia mais para uma explicação técnica abaixo. Observe que a alteração afeta apenas x86, não há diferença no ARM (ex. Raspberry Pi), veja aqui para detalhes.

lemmy.ml (uso geral da memória RAM, incluindo sistema operacional, Docker, PostgreSQL etc):

leminal.space (apenas recipiente de backend)

lemmy.world (recipientes de API de backend)

lemmy.world (federação de backend e tarefas agendadas)

Como foi possível uma melhoria tão grande? O uso de memória em idiomas como Rust ou C é gerenciado por um chamado alocador de memória. Ele solicita grandes pedaços de RAM do sistema operacional e fornece pedaços menores quando necessário no programa. Por exemplo, cada string (como títulos de postagem ou texto de marcação) requer pedaços de memória para armazená-los. Ao processar os dados são concluídos, a memória deve ser liberada e liberada ou reutilizada.

Até a versão 0.19.19 Lemmy usou o mimalloc alocador de memória, que é supostamente melhor do que o padrão glibc alocador. No entanto, uma postagem recente no blog aponta que mimalloc não joga bem com o tokio tempo de execução do async. sugere usar jemalloc em vez disso. Alterar alocadores de memória é muito simples em Rust, requer apenas uma única linha de código. Então, tentamos isso, implantamos a mudança no lemmy.ml e imediatamente se mostrou eficaz.

Instruções de atualização

Não há mudanças de ruptura com esta versão.

Siga as instruções de atualização para ansible ou docker.

Se você precisar de ajuda com a atualização, você pode perguntar em nosso fórum de suporte ou no Matrix Chat.

Obrigado a todos

Gostaríamos de agradecer aos nossos muitos colaboradores e usuários do Lemmy por codificar, traduzir, testar e ajudar a encontrar e corrigir bugs. Estamos felizes que muitas pessoas acham útil e agradável o suficiente para contribuir.

Apoio desenvolvimento

Nós (@dessalines e @nutomic) trabalhamos em tempo integral no Lemmy há mais de cinco anos. Isso é em grande parte graças ao apoio da NLnet Foundation, bem como doações de usuários individuais.

Se você gosta de usar o Lemmy, e quer ter certeza de que estaremos sempre disponíveis para trabalhar em tempo integral construindo-o, considere doar para apoiar seu desenvolvimento. Uma doação recorrente é a melhor maneira de garantir que softwares de código aberto como o Lemmy possam permanecer independentes e vivos, e nos ajude a aumentar nossa pequena cooperativa de desenvolvedores para oferecer suporte a mais desenvolvedores em tempo integral.

1 comment

sorted by: hot top controversial new old
[–] 4 points 3 months ago

Maravilha. O uso de recursos do Lemmy sempre foi apontado como um problema. Parece que finalmente acharam uma solução eficaz. Só falta conseguimos um bom alocador para programas que usam Tokio que suporte todas as arquiteturas.

  • source
  • 10 comments in c/div0@lemmy.dbzer0.com view that post
    [–] [S, M] 8 points 3 months ago* (9 children)

    All done. Unfortunately it seems tesseract doesn't like this version. I'll see if there's a workaround

  • source
  • hideshow 9 child comments
  • [–] 5 points 3 months ago (8 children)
  • [–] [S] 7 points 3 months ago (3 children)

    Holy shit. I thought it was just an API version mismatch! The turbolib dev literally hardcoded our instance into a blacklist! Guess we have to decommission that frontend now.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 2 points 3 months ago (1 child)

    Well technically it was a downgrade from having our own special warning to a simple block, but yeah. I remembered reading that newer versions of Tesseract had flexible version support, so I was really surprised to see that message, had to check what was happening. I'm bummed tho, now I have to get used to a new UI :(

  • source
  • parent
  • hideshow 1 child comment
  • [–] [S] 1 point 3 months ago (3 children)
  • [–] 2 points 3 months ago (2 children)

    Interesting. I'm curious to know what their reasoning for that is

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 3 months ago (1 child)

    The commit I linked added dbzer0 to the same blacklist, removing a custom warning that said

    "This instance and its admin staff encourages identity politics, groupthink, mob mentality, and extremist solutions to societal problems. Users who advocate violence are not moderated so long as the admins agree with the target. Caution and critical thinking are advised when interacting with this instance or its users."

    So probably something along those lines.

  • source
  • parent
  • hideshow 1 child comment
  • 7 comments in c/fediverse@lemmy.zip view that post
    [–] 3 points 3 months ago (1 child)

    A miserable pile of secrets.

  • source
  • hideshow 1 child comment
  • [–] [M] 1 point 3 months ago (4 children)

    Not sure why the proper title failed to fetch. Sorry about that.

  • source
  • hideshow 4 child comments
  • [–] 1 point 3 months ago (3 children)