Ir para conteúdo

[GUIA] Otimizando o seu Servidor - Melhor desempenho


quando eu tinha uma glock

Posts Recomendados

  • Olá, primeiramente, este guia não foi feito por mim, mas sim por um usuário do fórum do Spigot, créditos totais ao Frash23, estou repassando pois fiz algumas melhorias no guia.

Spigot possui muitas melhorias de desempenho desabilitadas por padrão, pois muitas vezes alteram o servidor para que ele não reproduza o comportamento do minecraft vanilla. Este guia é suposto para ajudá-lo a ajustar as configurações para o melhor desempenho, enquanto você entende o que você realmente está mudando. Se você não entende uma configuração que mencionei aqui, não mude. Se você é curioso, responda ao tópico e pergunte-me o que faz. Se você ainda tiver problemas com o desempenho.

 

Listarei todos os valores de configuração que você pode considerar que ajudara no desempenho enquanto faço o meu melhor para explicar o que a configuração faz e quando deve / não mudá-la. 

 

O guia está atualmente escrito para 1.9 a maioria das opções também se aplica na 1.8

 

Vamos começar !

 

jye0myhmz0dt.png

1 - paper.yml

Para ter o paper.yml disponível, é preciso utilizar o paperspigot (até aonde eu sei).

https://ci.destroystokyo.com/job/PaperSpigot/

optimize-explosions

Padrão: false

Sugestão: true

FUNÇÃO

Utilize um algoritmo de explosão alternativo e mais eficiente. Remove instantaneamente entidades mortas dentro da explosão.

 

 

mob-spawner-tick-rate

Padrão: 1

Sugestão: 3 - 4

FUNÇÃO

Um valor de 2 não deve afetar muito o comportamento vanilla, Se os spawners estão atrasados em seu servidor, este é um bom valor para utilizar.

 

 

disable-chest-cat-detection

Padrão: false

Sugestão: true

FUNÇÃO

Não tem muito o que falar dessa função, mais certamente lhe ajudara no desempenho.

 

 

use-hopper-check

Padrão: false

Sugestão: true

FUNÇÃO

A opção 'hopper-check' é atualmente ignorada, tornando praticamente impossível otimizar os funis por conta própria. Essa opção o reativa.

 

 

container-update-tick-rate

Padrão: 1

Sugestão: 3 - 4

FUNÇÃO

Muda a frequência com que os inventários são marcados. PS: inventários podem aparecer bug / lag quando ajustado acima de 5.

 

 

queue-light-updates

Padrão: false

Sugestão: true

FUNÇÃO

Tentativas de propagação de atualizações de luz em ticks. A iluminação está quebrada na 1.9, isso pode ajudar a compensá-lo até que seja corrigido.

 

 

fire-physics-event-for-redstone

Padrão: true

Sugestão: false

FUNÇÃO

Isto impede a Redstone de disparar o BlockPhysicsEvent.

Muitos plugins utilizam o BlockPhysicsEvent, mas não fazem nada com a Redstone. Uma vez que a Redstone pode piscar com muita frequência em alguns servidores, isso pode somar muita CPU desperdiçada.

Esta pode ser uma grande melhoria em Redstone Lag.

 

 

grass-spread-tick-rate

Padrão: 1

Sugestão: 2 - 4

FUNÇÃO

Ticks entre as atualizações da grama.

Aumentar isso reduzirá as taxas de espalhamento de grama! Certifique-se de definir esse valor para algo que faz sentido para o seu servidor. Ou seja, os servidores Skyblock podem não querer mudar isso.

 

 

PRONTO ! 

Terminamos a parte do paper.yml

Agora vamos para o

spigot.yml

 

jye0myhmz0dt.png

2 - spigot.yml

late-bind

Padrão: false

Sugestão: true

FUNÇÃO

Isto não altera o desempenho e pode parar alguns plugins.

Isto faz com que o servidor aguarde a conexão de rede até que todos os plugins estejam habilitados. Eu pessoalmente vejo isso como uma boa prática e segurança, mas é completamente opcional.

 

 

mob-spawn-range

Padrão: 4

Sugestão: 3

FUNÇÃO

Controla o quão longe vai spawnar mobs.

 

 

entity-activation-range

Padrão: animals:32, monsters:32, misc:16

Sugestão: animals:6, monsters:16, misc:2

FUNÇÃO

Entidades fora desses intervalos serão assinaladas menos freqüentemente. Os animais geralmente não precisam de muito. "Misc" é coisa como queda de itens. Ajustá-lo para 1 pode impedir que gotas de itens, ou seja, fluindo em água.

Este é um passo importante no desempenho da entidade!

 

 

hopper-transfer, hopper-check, hopper-amount

Padrão: transfer:8, check:8, amount:1

Sugestão: transfer:24, check:24, amount:3

FUNÇÃO

Isso fará com que os hoppers atualizem três vezes mais lento, mas mova três itens por vez. Isso pode quebrar um pouco de comportamento de vanilla, especialmente coisas como relógios & redstone, dependendo do tempo de funil. Pode ser que incomode a jogabilidade no atraso.

Requer "use-hopper-check" para ser ativado em paper.yml

 

 

max-entity-collisions

Padrão: 8

Sugestão: 1 - 2

FUNÇÃO

Quantas vezes uma entidade pode colidir. Definir isso como 1 geralmente não tem implicações. Ajuda muito com grande quantia de mob.

 

 

merge-radius

Padrão: item:2.5, exp:3.0

Sugestão: item:3.5, exp:6.0

FUNÇÃO

A fusão do item é uma maneira poderosa de evitar o atraso da queda de itens (não há mais ClearLag!). Configurando a propriedade do item para 3.5, os itens em um raio de 3,5 blocos serão "mesclados" em uma pilha de itens. Exp não tem nenhuma desvantagem real para se fundir em um raio alto.

 

 

 

view-distance

Padrão: 10

Sugestão: 3 - 5

FUNÇÃO

Quantos chunks são enviados para o jogador. Eu geralmente recomendo 4 como configurá-lo para 3 fará com que as enderpearl caia em chunks descarregados e, portanto, não funcionar.

 

 

 

Terminamos a parte do spigot

Agora vamos para a parte do bukkit.yml

 

jye0myhmz0dt.png

3 - bukkit.yml

 

spawn-limits

Padrão: monsters:70, animals:15, water-animals:5, ambient:15

Sugestão: monsters:50, animals:10, water-animals:3, ambient:4

FUNÇÃO

Estes valores são mais complicados do que apenas "mobs permitidos por jogador", mas eles fazem algo nessa direção. Estabelecendo estes menores dará menos mobs máximos que gerem em torno dos jogadores. Quanto mais jogadores você tiver, mais baixo você pode configurar com segurança isso.

 

 

chunk-gc

Padrão: period-in-ticks:600, load-threshold:0

Sugestão: period-in-ticks:300, load-threshold:300

FUNÇÃO

Este recurso está desativado por padrão (o limite de carga é zero).

Esta opção descarregará chunks que não são necessários (distância externa da vista dos jogadores), liberando memória e recursos potenciais da CPU.

 

 

ticks-per.monster-spawns

Padrão: 1

Sugestão: 2 - 5

FUNÇÃO

Controla a frequência com que o servidor deve tentar spawner mob hostil. Isto contabiliza todo o servidor, não por jogador. Ajustar esta alta diminuirá drasticamente a quantidade de monstros que geram. Eu geralmente recomendo 2, a menos que um servidor tenha muitos atrasos no mobSpawn ou simplesmente tenha muitos monstros em geral.

 

 

Terminamos o bukkit.yml

Vamos para o taco.yml

nesta parte é bem simples ;)

 

jye0myhmz0dt.png

4 - taco.yml

 

taco.yml é um arquivo gerado para quem utiliza o TacoSpigot

OBS: A maioria das opções abaixo, já se encontra no paper.yml

 

armor-stand.optimize-movement

Padrão: false

Sugestão: true

FUNÇÃO

Fazer com que "armaduras" fiquem olhando para as entidades quando se deslocam.

Também desabilita a gravidade para armaduras.

 

 

grass-ignores-light

Padrão: false

Sugestão: true

FUNÇÃO

Desativa a grama que "reage" à luz. Isso evitará que a grama cresça na ""sujeira"".

 

 

hopper.fire-InventoryMoveItemEvent

Padrão: true

Sugestão: false

FUNÇÃO

Isso impedirá de funis de disparar o "InventoryMoveItemEvent". Se você utilizar plugins que se encaixem em inventários de funis para obter / alterar o comportamento do funil, você não precisa desativar.

 

 

hopper.push-based

Padrão: true

Sugestão: true

FUNÇÃO

Faz com que os funis busque "entidades" para puxar, é faz com que entidades pesquisem por funis, pode melhorar significativamente o desempenho.

 

 

Terminamos o taco.yml

Vamos para o server.properties

nesta parte é bem simples 

 

jye0myhmz0dt.png

5 - server.properties

 

network-compression-threshold

Padrão: 256

Sugestão (servidor pequeno): 512

Sugestão (bungeecord)²: -1

FUNÇÃO

Esta opção controla o tamanho de um pacote antes de tentar comprimi-lo. Ajustá-lo mais alto pode economizar alguns recursos da CPU ao custo de mais uso de largura de banda, configurando-o para -1 desativa-o.

Se o seu servidor estiver em uma rede com o proxy no localhost ou no mesmo datacenter (<2 ms ping), desativar o recurso só deve ser benéfico. Se seus jogadores se conectarem diretamente ao seu servidor, configure isso para 512. Ele economizará um pouco de CPU enquanto ainda ganha largura de banda.

 

jye0myhmz0dt.png

 

Terminamos :D

Caso você ainda tenha problemas com queda de tps, poste o seu timings aqui (5 a 10 minutos).

 

 

jye0myhmz0dt.png

 

 

Analisando "crashs" do seu servidor

Lendo a log de erros para tentar descobrir o que há de errado

 

Stack overflows

 

Normalmente são notados como "java.lang.StackOverflowError"  no inicio do erro,

 Mas facilmente identificados pelos arquivos de falha padrão do Minecraft.

Geralmente consiste em um erro sendo repetido várias vezes.

UhN6Szj.png

 

Chunk corruption

 

Começa com vários erros diferentes, por exemplo, "java.io.UTFDataFormatException:

Entrada malformada em torno do byte 111", "java.io.EOFException:

Fim inesperado do fluxo de entrada ZLIB".

Mais fácil de encontrar nos crashs-logs padrão.

UhN6Szj.png

 

Generation issues

 

Atualmente, há dois erros de geração no Minecraft a partir de 1.7.

Estes são:

java.lang.IllegalArgumentException

java.lang.RuntimeException

Estes são erros conhecidos sem uma correção no momento.

UhN6Szj.png

 

Session Lock Damage

 

Causado por corrupção, exclusão ou alteração forçada no arquivo session.lock ou arquivos específicos, enquanto o servidor está sendo executado.

“java.lang.RuntimeException: Falha ao verificar o session.lock

"java.io.FileNotFoundException: .\world\session.lock (A operação solicitada não pode ser executada em um arquivo com uma seção mapeada pelo usuário"). Encontrado em server.log e crash-reports.

A correção é excluir os arquivos session.lock enquanto servidor estiver desligado e iniciá-lo novamente.

UhN6Szj.png

 

 

Travamentos random

 

1 - Obter uma nova jar de inicialização

 

Tente utilizar outra jar para iniciar o seu servidor

Se você utiliza spigot, tente paperspigot, tacospigot ou até mesmo

utilize a mesma jar, mas procure por outra build

jye0myhmz0dt.png

 

2 - Executar o servidor sem mundos

 

Antes de mexer com seus plugins, os mundos corrompidos geralmente podem causar falhas de inicialização.

Tente executar o servidor sem os seus mundos e veja se isso corrige o problema.

Você faz isso tirando o(s) mundo(s) do seu diretório do servidor.

Se funcionar, um dos mundos pode estar corrompido. Isolar o mundo problemático iniciando o servidor com apenas um mundo carregado por vez.

Se você pode excluí-lo, faça isso. Caso contrário, execute uma ferramenta para desbugar o chunk.

jye0myhmz0dt.png

 

3 - Executar o servidor sem os plugins

 

Baixe todo o servidor e tente excluir / renomear a pasta de plugins antes da inicialização. Se o erro desapareceu, você sabe que a causa é algum plugin que causou o problema.

jye0myhmz0dt.png

 

4 - Atualize todos os seus plugins atualizados (faça um backup antes)

 

Pode parecer meio trabalhoso, mas é sempre bom manter os plugins atualizados com frequência

jye0myhmz0dt.png

 

5 - Verificar cada plugin individualmente

 

Caso nada a cima tenha lhe ajudado, verifique cada plugin individualmente,

É trabalhoso? sim, mas isso deve lhe ajudar.

 

 

ChangeLog

 

25/08

Remake do GUIA postado;

04/09

Adicionado taco.yml ;

05/09

Tópico reorganizado;

Mini-guia identificar/solucionar o crash;

Mini-guia solucionar travamentos;

 

5nILV6G.png

 

Editado por quando eu tinha uma glock
Link para o comentário
Compartilhar em outros sites

Ótimo tópico, parabéns!

Só tenho uma dúvida, a primeira opção vai afetar meu servidor de factions? Não entendi muito bem a função :/

Não deve afetar, praticamente vai otimizar as explosões, testa certinho pra não ficar dúvidas ;)

Link para o comentário
Compartilhar em outros sites

Otimo guia, realmente, parabens.

 

vlw

 

Irei testar ^^ Bom tópico.

 

com certeza vai lhe ajudar ^^

 

 

Já sabia, recomendo pakas.

 

 

u_u

 

 

Ótimo tutorial, parabéns =D

 

 

obrigado  :giggle:

 

Olá.

 

Recomendo muito fazer estas alterações!

No canal da BattleHost também temos um manual de como otimizar o servidor :)

 

Atenciosamente,

Luccas.

 

andei vendo uns tutoriais da battlehost, continua que vai longe xD

 

Ótimo tópico, ira ajudar muitos, parabens :p

 

sem dúvidas :p

 

Ajudou bastante, melhorou muito o desempenho.

 

gg

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...