Pular para o conteúdo

Desempenho do servidor de Rust: o que causa lag e ajuda

Resposta rápida: digite serverinfo no console do servidor para ver o Framerate e o EntityCount do servidor. Um servidor de Rust fica lento quando tem mais coisa para rodar: mais construções e itens no mundo, mais spawns em um mapa maior, NPCs e plugins. As configurações abaixo controlam cada um desses pontos. Deixe as configurações de tick rate nos padrões.

ComandoO que mostra
serverinfoFramerate, EntityCount (tudo que existe no mundo), Players, Memory, NetworkIn e NetworkOut, Uptime.
server.fpsO framerate do servidor sozinho.

Digite no console do servidor, pelo RCON ou no console F1 como admin. No Crucible Local Server, o bloco Taxa de quadros da Quick view mostra o mesmo número enquanto o servidor está No ar.

Acompanhe o framerate enquanto o lag acontece. Se ele cair, o servidor está sofrendo com o próprio trabalho e o resto desta página vale. Se ficar estável, olhe a rede ou o PC do próprio jogador.

fps.limit é o máximo de quadros por segundo que o servidor roda (o Rust informa 240). Baixar libera CPU para outras coisas no mesmo PC, como um segundo servidor. Não faz nada por um servidor que já roda abaixo do limite.

ConfiguraçãoPadrãoO que faz
server.tickrate10Quantas vezes por segundo o servidor cuida do RCON, do Rust+ e das verificações de conexão. Não deixa o jogo mais fluido.
player.tickrate_sv16Quantas vezes por segundo o servidor atualiza cada jogador. O Rust permite de 16 a 128, e cada degrau a mais é mais trabalho para cada jogador online.

Cada bloco de construção, deployable, item largado, corpo, animal e barril é uma entidade, e o servidor acompanha e salva cada uma. A contagem sobe ao longo de um wipe conforme os jogadores constroem.

Configuração ou comandoPadrãoO que faz
server.itemdespawn300Segundos base que um item largado fica no chão antes de sumir. Alguns itens ficam mais.
server.corpsedespawn300Segundos que um corpo fica.
entity.countby <steamid>Conta tudo que um jogador colocou.
entity.deleteby <steamid>Destrói tudo que um jogador colocou. Não dá para desfazer.

O decay desgasta construções que ninguém mantém, e é ele que tira bases abandonadas do mapa. Com decay.scale 0 nada sofre decay, então toda base fica até o wipe e a contagem de entidades só cresce. Deixe o decay ligado em um wipe longo; as configurações estão em como desligar o decay.

O Rust enche o mapa com nós de minério, plantas, itens de coleta e animais por área: cada tipo de spawn tem uma densidade, e o Rust busca essa densidade em toda a terra onde ele cabe. Um mapa maior tem mais de tudo, e mais para o servidor rodar. O Rust limita alguns tipos de spawn à área de um mapa de 4000 m. Para escolher um tamanho: tamanhos de mapa do Rust.

ConfiguraçãoPadrãoO que faz
spawn.max_density1Escala quanto de cada tipo de spawn o mapa tem. 0.5 é metade.
spawn.min_density0.5Os tipos de spawn que seguem a quantidade de jogadores começam aqui em um servidor vazio e sobem até spawn.max_density conforme ele enche.
spawn.tick_populations60Segundos entre as rodadas de spawn. Um número maior reabastece o mapa mais devagar.
ConfiguraçãoO que faz
ai.npc_enable falseNenhum cientista aparece nos monumentos e junkpiles, e o Rust pula a montagem dos navmeshes dos monumentos, então o servidor inicia mais cedo. Os animais ainda aparecem.
aimanager.nav_disable trueO Rust não monta navmesh nenhum, então o servidor inicia bem mais rápido, mas NPCs e animais não conseguem se mover. Só para um servidor de construção ou de teste.

Defina as duas no server.cfg ou na linha de inicialização, para valerem desde o momento em que o servidor inicia. Veja o exemplo de server.cfg do Rust.

Todo plugin roda código próprio no servidor, e um plugin lento pode derrubar o framerate de todo mundo. o.plugins no Oxide ou c.plugins no Carbon lista o que está carregado. Para achar um lento, tire os plugins da pasta oxide/plugins ou carbon/plugins um de cada vez, reinicie e acompanhe o framerate. No Crucible Local Server, os plugins são gerenciados na aba Mods; veja mods e plugins.

server.saveinterval (600) é de quanto em quanto tempo o mundo salva, em segundos, e cada save escreve toda entidade do mundo. Um mundo com mais entidades demora mais para salvar, então não coloque um valor muito baixo.

Um reinício agendado dá um começo limpo a um servidor que fica muito tempo ligado. O Crucible Local Server pode reiniciar em um horário diário e instalar atualizações do Rust enquanto o servidor está parado; veja reinicie seu servidor automaticamente.

As configurações de Desempenho na aba Config:

  • Pular o navmesh da IA (inicialização mais rápida) é o aimanager.nav_disable acima: um início bem mais rápido, com NPCs e animais que não se movem.
  • Prioridade alta dá mais CPU ao servidor quando outros apps estão rodando.
  • Núcleos de CPU (avançado) fixa o servidor nos núcleos que você listar, por exemplo 0-7. Deixe em branco para usar todos os núcleos.

Cada servidor extra que você roda ao mesmo tempo custa RAM e CPU de verdade, e por isso Permitir vários servidores rodando ao mesmo tempo vem desligado por padrão. Veja configurações do servidor.