Blog · blog

Melhores mods de desempenho para servidores Minecraft

O lag no servidor é um problema diferente do FPS do cliente. Papel ou Purpur, flags JVM ajustadas, chunks pré-gerados e uma distância de visualização razoável resolvem a maior parte disso.

TRtrolPublished 7 min read

Lentidão do servidor é uma questão diferente da lentidão do cliente

Guias do lado do cliente falam sobre FPS: sua própria GPU desenhando quadros. O desempenho do servidor é uma métrica completamente separada, tiques por segundo, quantas vezes por segundo o servidor consegue executar seu loop completo de jogo. Quando o TPS cai abaixo de 20, todos os jogadores conectados sentem isso como um efeito de “rubber-banding”, acertos atrasados e mobs que ficam para trás de sua posição real, não importa quão potente seja o PC de qualquer jogador individual. A correção disso reside inteiramente no lado do servidor da conexão.

Essa distinção é importante porque os dois problemas são constantemente confundidos. Um jogador com 300 FPS localmente ainda sentirá um servidor rodando a 12 TPS, e nenhuma modificação do cliente muda isso. Se você opera um servidor, especialmente um lobby de minigame movimentado com arenas do BedWars ou SkyWars sendo reiniciadas constantemente, as correções abaixo são onde seu tempo realmente compensa.

Escolha um software de servidor que seja construído para suportar carga

O software de servidor Vanilla Minecraft e uma configuração Spigot não otimizada executam quase tudo em um único thread. Paper, e forks como Purpur, reestruturam grandes partes desse pipeline para rodar de forma assíncrona e multithreaded, além de fornecer uma longa lista de otimizações padrão que o vanilla nunca teve. Este é o maior fator disponível antes de você tocar em qualquer plugin ou configuração.

Papel

A escolha moderna padrão. Carregamento assíncrono de partes, otimizações de rastreamento de entidades e um conjunto profundo de opções de ajuste em paper.yml que a maioria dos administradores nunca explora completamente.

Púrpura

Um garfo de papel com botões de desempenho extras e interruptores de jogabilidade sobrepostos. Vale a pena se você quiser mais controle sem sair do ecossistema Paper.

Baunilha e Spigot padrão

Funcional, mas deixa um desempenho real de lado para qualquer coisa além de um servidor pequeno e de baixa população.

Ajuste as flags da JVM, não apenas a configuração do servidor

Servidores Minecraft rodam dentro de uma Máquina Virtual Java, e as configurações padrão de coleta de lixo da JVM nunca foram ajustadas para o padrão de memória específico do Minecraft. As flags do Aikar são um conjunto amplamente utilizado e publicamente documentado de flags de inicialização da JVM que configuram o coletor de lixo especificamente para esse padrão, e reduzem significativamente a frequência e a duração das interrupções relacionadas à coleta de lixo sob carga real de jogadores.

Pré-gere o seu mundo antes dos jogadores sequer o verem

Uma das causas mais comuns de quedas repentinas de TPS é o servidor gerar novos chunks em tempo real à medida que os jogadores exploram territórios não reivindicados. Essa geração de trabalho compete diretamente com tudo o mais que o servidor está tentando fazer no mesmo ciclo. Uma ferramenta como o Chunky pré-gera chunks com antecedência, em uma passagem controlada e limitada, para que os jogadores que exploram mais tarde nunca causem esse pico.

Para uma rede de minigames, isso importa menos nos mapas da arena, que geralmente são estáticos e pequenos, e mais em qualquer hub ou mundo de lobby aberto onde os jogadores podem vagar.

Ajuste a distância de visualização e a distância de simulação

Essas duas configurações controlam quanta área do mundo o servidor precisa manter carregada e simulada ao redor de cada jogador, e são as configurações que os operadores mais frequentemente deixam nos padrões que são simplesmente muito altos para o número de jogadores e o hardware.

ConfiguraçãoO que controlaErro comum
Distância de visualizaçãoQuantos chunks são enviados para cada clienteDeixada em um padrão muito alto para o número de jogadores
Distância de simulaçãoQuão longe mobs, blocos e redstone realmente simulamDefinida igual à distância de visualização quando não precisa estar

A distância de simulação é geralmente a primeira a ser reduzida. Os jogadores não precisam de mobs e redstone simulados tão longe quanto precisam de chunks renderizados, e diminuí-la recupera tempo de tick real com um impacto muito menor na sensação do jogo.

Faça um perfil antes de adivinhar

Adivinhar a causa do lag desperdiça tempo. Um profiler como o spark captura exatamente onde o tempo de tick do servidor está sendo gasto, seja por um plugin específico, geração de mundo, processamento de entidades ou algo completamente diferente, em vez de você ajustar configurações aleatoriamente e esperar.

  1. Instale Papel ou Púrpura

    Migre do Spigot vanilla ou padrão primeiro. Isso desbloqueia todas as otimizações abaixo.

  2. Aplique as flags de Aikar ao seu script de inicialização

    Copie o conjunto de flags documentado para o comando de inicialização do seu servidor e reinicie. Esta é uma alteração única com um retorno contínuo.

  3. Pré-gere o seu mundo com Chunky

    Execute-o durante horários de baixo tráfego para que jogadores exploradores nunca ativem a geração de chunks ao vivo posteriormente.

  4. Defina a distância de visualização e a distância de simulação intencionalmente

    Ajuste-os à sua contagem real de jogadores e hardware, em vez de manter as configurações padrão da plataforma.

  5. Perfil com centelha sob carga real

    Capture um relatório durante os horários de pico e corrija o que ele realmente indica, em vez de adivinhar.

O desempenho do servidor não conta a história toda

Manter o TPS estável é metade da experiência. Cada jogador ainda renderiza esse servidor estável em sua própria máquina, e um servidor sólido não serve para alguém cuja própria client está travando por causa do rendering, memória ou um pacote de shaders incompatível. Se você opera uma rede de BedWars ou SkyWars e já investiu no trabalho acima, a outra metade de uma experiência fluida para seus jogadores é o que acontece na máquina deles. É exatamente essa lacuna que Terminus foi construído para preencher, otimizando o desempenho do client para corresponder ao trabalho que você já fez no servidor.

Perguntas Frequentes

Obtenha Terminus

Tuned client performance to match the server work you already did.