Aller au contenu

Performances d'un serveur Rust : causes du lag et solutions

Réponse rapide : tapez serverinfo dans la console du serveur pour voir le Framerate et l’EntityCount du serveur. Un serveur Rust ralentit quand il a plus à faire tourner : plus de constructions et d’objets dans le monde, plus de spawns sur une map plus grande, des PNJ et des plugins. Les réglages ci-dessous contrôlent chacun de ces points. Laissez les réglages de tick rate à leurs valeurs par défaut.

CommandeCe qu’elle montre
serverinfoFramerate, EntityCount (tout ce qui est dans le monde), Players, Memory, NetworkIn et NetworkOut, Uptime.
server.fpsLe framerate du serveur seul.

Tapez-les dans la console du serveur, via RCON ou dans la console F1 en tant qu’admin. Dans Crucible Local Server, la tuile Fréquence d’images de la Vue rapide montre le même chiffre pendant que le serveur est En ligne.

Surveillez le framerate pendant que le lag se produit. S’il chute, le serveur peine avec son propre travail et le reste de cette page s’applique. S’il reste stable, regardez plutôt le réseau ou le PC du joueur.

fps.limit est le nombre maximal d’images par seconde que le serveur fera tourner (Rust indique 240). Le baisser libère du CPU pour d’autres choses sur le même PC, comme un deuxième serveur. Cela ne fait rien pour un serveur qui tourne déjà sous son plafond.

RéglagePar défautCe qu’il fait
server.tickrate10Combien de fois par seconde le serveur gère le RCON, Rust+ et ses vérifications de connexion. Il ne rend pas le jeu plus fluide.
player.tickrate_sv16Combien de fois par seconde le serveur met à jour chaque joueur. Rust autorise 16 à 128, et chaque cran en plus est plus de travail pour chaque joueur en ligne.

Chaque bloc de construction, deployable, objet lâché, corps, animal et baril est une entité, et le serveur suit et sauvegarde chacune d’elles. Le total grimpe au fil d’un wipe à mesure que les joueurs construisent.

Réglage ou commandePar défautCe qu’il fait
server.itemdespawn300Secondes de base qu’un objet lâché reste au sol avant de disparaître. Certains objets restent plus longtemps.
server.corpsedespawn300Secondes pendant lesquelles un corps reste.
entity.countby <steamid>Compte tout ce qu’un joueur a placé.
entity.deleteby <steamid>Détruit tout ce qu’un joueur a placé. Il n’y a pas d’annulation.

Le decay use les constructions que personne n’entretient, et c’est ce qui nettoie de la map les bases abandonnées. Avec decay.scale 0, rien ne se dégrade, donc chaque base reste jusqu’au wipe et le nombre d’entités ne fait que grimper. Gardez le decay activé pour un long wipe ; les réglages sont sur désactiver le decay.

Rust remplit la map de nodes de minerai, de plantes, d’objets à ramasser et d’animaux par zone : chaque type de spawn a une densité, et Rust vise cette densité sur la terre où il peut tenir. Une map plus grande contient plus de tout, et plus pour le serveur à faire tourner. Rust plafonne certains types de spawn à la surface d’une map de 4000 m. Pour choisir une taille : tailles de map Rust.

RéglagePar défautCe qu’il fait
spawn.max_density1Met à l’échelle la quantité de chaque type de spawn que contient la map. 0.5 en fait la moitié.
spawn.min_density0.5Les types de spawn qui suivent le nombre de joueurs partent d’ici sur un serveur vide et montent jusqu’à spawn.max_density à mesure qu’il se remplit.
spawn.tick_populations60Secondes entre deux tours de spawn. Un nombre plus haut remplit la map plus lentement.
RéglageCe qu’il fait
ai.npc_enable falseAucun scientifique n’apparaît aux monuments et aux junkpiles, et Rust saute la construction des navmeshes des monuments, donc le serveur démarre plus tôt. Les animaux apparaissent toujours.
aimanager.nav_disable trueRust ne construit aucun navmesh, donc le serveur démarre bien plus vite, mais les PNJ et les animaux ne peuvent pas bouger. Pour un serveur de construction ou de test uniquement.

Réglez les deux dans server.cfg ou sur la ligne de démarrage, pour qu’ils s’appliquent dès le démarrage du serveur. Voir l’exemple de server.cfg Rust.

Chaque plugin fait tourner son propre code sur le serveur, et un plugin lent peut tirer le framerate vers le bas pour tout le monde. o.plugins sur Oxide ou c.plugins sur Carbon liste ce qui est chargé. Pour trouver un plugin lent, sortez les plugins du dossier oxide/plugins ou carbon/plugins un par un, redémarrez, et surveillez le framerate. Dans Crucible Local Server, les plugins se gèrent dans l’onglet Mods ; voir mods et plugins.

server.saveinterval (600) est la fréquence de sauvegarde du monde, en secondes, et chaque sauvegarde écrit chaque entité du monde. Un monde avec plus d’entités met plus longtemps à se sauvegarder, donc ne le réglez pas très bas.

Un redémarrage planifié donne un nouveau départ à un serveur qui tourne depuis longtemps. Crucible Local Server peut redémarrer selon un horaire quotidien et installer les mises à jour de Rust pendant qu’il est arrêté ; voir redémarrer votre serveur automatiquement.

Les réglages Performances de l’onglet Config :

  • Ignorer le navmesh de l’IA (démarrage plus rapide) est le aimanager.nav_disable ci-dessus : un démarrage bien plus rapide, avec des PNJ et des animaux qui ne bougent pas.
  • Priorité haute donne plus de CPU au serveur quand d’autres apps tournent.
  • Cœurs CPU (avancé) fixe le serveur aux cœurs que vous listez, par exemple 0-7. Laissez vide pour utiliser tous les cœurs.

Chaque serveur de plus que vous faites tourner en même temps coûte de la vraie RAM et du vrai CPU, ce qui explique pourquoi Autoriser plusieurs serveurs en même temps est désactivé par défaut. Voir réglages du serveur.