Ajustes de Desempenho
Aviso
These docs were written for SpongeAPI 7 and are likely out of date. If you feel like you can help update them, please submit a PR!
O Sponge fornece várias opções de melhoria e ajuste do desempenho para ajudar-te a executar um servidor sem lag, mesmo sob carga pesada.
Nota
Apesar de tentarmos melhorar o desempenho de todos os servidores, os ganhos de desempenho dependem da tua máquina. Corre alguns testes para garantir configuraste o servidor Sponge de modo a tirares o proveito máximo!
Raio de Ativação de Entidades
Esta definição altera o comportamento de carregamento de entidades à beira de jogadores. Baixar este valor resultará em que só serão carregadas as entidades mais próximas, ao passo que aumentá-lo fará com que as entidades mais distantes do jogador também sejam carregadas. Baixa esta valor para melhorares o desempenho do teu servidor, especialmente se tiveres muitas entidades e muitos jogadores. Para desativares o raio de ativação para uma entidade em específico, define o seu valor para 0
.
Dica
É possível discriminar o raio de ativação por tipo de mob. Podes definir auto-populate
para true
e o Sponge adicionará todos os mobs disponíveis à lista do raio de ativação. Recomenda-se que desatives isto assim que a lista estiver cheia. Se adicionares novos mobs ao jogo, repete simplesmente este procedimento, e os novos mobs serão adicionados à lista abaixo.
entity-activation-range {
# If enabled, newly discovered entities will be added to this config with a default value.
auto-populate=false
# Default activation ranges used for all entities unless overridden.
defaults {
ambient=32
aquatic=32
creature=32
misc=16
monster=32
}
}
Iluminação Assíncrona
Esta configuração irá executar verificações de iluminação num thread à parte, para melhorar o desempenho.
optimizations {
# Runs lighting updates async.
async-lighting {
# If enabled, runs lighting updates async.
enabled=true
# The amount of threads to dedicate for async lighting updates. (Default: 2)
num-threads=2
}
}
Cache dos Donos de Entidades Domesticáveis
Esta configuração irá armazenar em cache os UUIDs dos proprietários de entidades domesticáveis para evitar pedidos constantes ao data watcher.
optimizations {
# Caches tameable entities owners to avoid constant lookups against data watchers. If mods cause issue, disable.
cache-tameable-owners=true
}
Drops Pre Merge
Esta configuração vai pré-processar e potencialmente fundir itens dropados para evitar o spawn de entidades adicionais, só para serem imediatamente fundidas.
optimizations {
# If enabled, block item drops are pre-processed to avoid
# having to spawn extra entities that will be merged post spawning.
# Usually, Sponge is smart enough to determine when to attempt an item pre-merge
# and when not to, however, in certain cases, some mods rely on items not being
# pre-merged and actually spawned, in which case, the items will flow right through
# without being merged.
drops-pre-merge=true
}
Panda Redstone
Um algoritmo alternativo de atualização Redstone, leva a menos atualizações de bloco quando algum Redstone muda.
optimizations {
# If enabled, uses Panda4494's Redstone implementation which improves performance.
# See https://bugs.mojang.com/browse/MC-11193 for more information.
# Note: This optimization has a few issues which is explained in the bug report. We are not responsible for any issues this may cause.
panda-redstone=false
}
Ajuste da Frequência de Auto-Save
O Minecraft Vanilla escreve em disco todas as chunks a cada 900 ticks (45 segundos). Se desejas aumentar ou diminuir este intervalo, podes mudá-lo no ficheiro global.conf
do servidor:
world {
# The auto-save tick interval used when saving global player data.
# Set to 0 to disable. (Default: 900) Note: 20 ticks is equivalent to 1 second.
auto-player-save-interval=900
# The auto-save tick interval used to save all loaded chunks in a world.
# Set to 0 to disable. (Default: 900) Note: 20 ticks is equivalent to 1 second.
auto-save-interval=900
}
Reduzir este intervalo (aumentar a frequência) aumenta a carga para a CPU e para o disco do servidor, mas minimiza a perda de dados que pode ocorrer se o servidor encravar, ou a luz for abaixo. Por outro lado, aumentar este intervalo reduz a carga no hardware, mas à custa do aumento da quantidade de dados do servidor que podem ser perdidos caso este falhe.
Tempo Real
Ativar isto melhorará simplesmente a experiência dos teus jogadores quando a taxa de ticks estiver baixa. Isto não vai melhorar o desempenho do servidor! Algumas entidades, entidades planas e objetos horários vão usar o tempo real em vez das ticks, para se atualizarem.
modules {
# Use real (wall) time instead of ticks as much as possible
realtime=false
}
Um exemplo disto são os animais bebés. Normalmente, demoram 20 minutos a crescer, até serem adultos. No entanto, se o servidor estiver lento, cada animal receberá menos ticks, aumentando assim o tempo que eles demoram a crescer. Esta configuração muda alguma da lógica interna dos animais para usarem o tempo real que passou, e não o número de ticks. Isto também se aplica a partir blocos, de modo que acaba com aquela cena de “partir o mesmo bloco várias vezes”.
Negar pedidos de chunks
Aviso
Esta é uma definição experimental para ganho de desempenho. Recomendamos que não a atives se tiveres mods no teu servidor, ou se tiveres problemas relativos ao carregamento de TileEntities.
world {
# If enabled, any request for a chunk not currently loaded will be denied (exceptions apply for things like world gen and player movement).
# Note: As this is an experimental setting for performance gain, if you encounter any issues then we recommend disabling it.
deny-chunk-requests=false
}
Quando esta opção está ativada, os mods que pedirem que áreas sejam carregadas, para desempenharem alguma função, verão esses pedidos recusados. Somente jogadores e chamadas de carregamento do mundo específicas terão o poder para carregar novas chunks.