Blog · blog
Meilleurs mods de performances pour serveurs Minecraft
Le lag côté serveur est un problème différent du FPS côté client. Des paramètres JVM optimisés, des chunks pré-générés et une distance de vue raisonnable résolvent la plupart des problèmes.
Le lag du serveur est une autre paire de manches que le lag client
Les guides côté client parlent du nombre d'images par seconde (FPS) : votre propre GPU qui dessine les images. La performance du serveur est une mesure complètement distincte, les «ticks» par seconde, le nombre de fois par seconde où le serveur peut exécuter sa boucle de jeu complète. Lorsque le nombre de TPS passe en dessous de 20, chaque joueur connecté le ressent comme un effet de rubber-banding, des impacts retardés et des créatures qui prennent du retard sur leur position réelle, peu importe la puissance de l'ordinateur individuel du joueur. La résolution de ce problème se situe entièrement du côté du serveur.
Cette distinction est importante car les deux problèmes sont constamment confondus. Un joueur avec 300 FPS localement ressentira toujours un serveur fonctionnant à 12 TPS, et aucun mod client ne changera cela. Si vous exploitez un serveur, en particulier un lobby de mini-jeux chargé avec des arènes de BedWars ou SkyWars qui se réinitialisent constamment, les corrections ci-dessous sont celles où votre temps porte réellement ses fruits.
Choisissez un logiciel de serveur conçu pour supporter la charge
Le logiciel de serveur Vanilla Minecraft et une configuration Spigot non optimisée exécutent presque tout sur un seul thread. Paper, et ses dérivés comme Purpur, reconstruisent de larges parties de ce pipeline pour qu'il fonctionne de manière asynchrone et multithreadée, tout en proposant une longue liste d'optimisations par défaut que Vanilla n'a jamais eues. C'est le levier unique le plus important à actionner avant de toucher le moindre plugin ou paramètre.
Papier
Le choix moderne standard. Chargement asynchrone des blocs, optimisations du suivi des entités, et un ensemble approfondi d'options de réglage paper.yml que la plupart des administrateurs n'explorent jamais pleinement.
Pourpre
Une fourchette en papier avec des boutons de performance supplémentaires et des interrupteurs de gameplay superposés. Cela vaut la peine si vous souhaitez plus de contrôle sans quitter l'écosystème Paper.
Vanille et robinet standard
Fonctionnel, mais laisse de côté de vraies performances pour tout ce qui dépasse un petit serveur à faible population.
Ajustez les indicateurs JVM, pas seulement la configuration du serveur
Les serveurs Minecraft fonctionnent à l'intérieur d'une machine virtuelle Java, et les paramètres de récupération de mémoire par défaut de la JVM n'ont jamais été optimisés pour le schéma de mémoire spécifique de Minecraft. Les indicateurs d'Aikar sont un ensemble largement utilisé et publiquement documenté d'indicateurs de démarrage de la JVM qui configurent le ramasse-miettes spécifiquement pour ce schéma, et ils réduisent de manière significative la fréquence et la durée des blocages liés à la récupération de mémoire sous charge réelle des joueurs.
Pré-générez votre monde avant que les joueurs ne le voient
L’une des causes les plus fréquentes de baisses soudaines des TPS est la génération de nouveaux blocs par le serveur en temps réel, au fur et à mesure que les joueurs explorent des territoires non réclamés. Cette génération de blocs concurrence directement toutes les autres tâches que le serveur doit effectuer à chaque cycle. Un outil comme Chunky pré-génère les blocs à l’avance, de manière contrôlée et limitée, afin que les joueurs qui explorent plus tard ne déclenchent jamais de pics de charge.
Pour un réseau de mini-jeux, cela importe moins pour les cartes des arènes, qui sont généralement statiques et de petite taille, et plus pour tout hub ou monde d’accueil ouvert où les joueurs peuvent se promener.
Réduisez la distance de vue et la distance de simulation
Ces deux paramètres contrôlent la quantité de monde que le serveur doit maintenir chargée et simuler autour de chaque joueur, et ce sont les paramètres que les opérateurs laissent le plus souvent aux valeurs par défaut, qui sont tout simplement trop élevées pour le nombre de joueurs et la puissance de leur matériel.
| Paramètre | Ce qu'il contrôle | Erreur courante |
|---|---|---|
| Distance de vue | Le nombre de blocs envoyés à chaque client | Laissé à une valeur par défaut trop élevée pour le nombre de joueurs |
| Distance de simulation | La distance à laquelle les mobs, les blocs et la redstone simulent réellement | Égalée à la distance de vue alors qu'il n'est pas nécessaire de le faire |
La distance de simulation est généralement celle qu'il vaut le plus à réduire en premier. Les joueurs n'ont pas besoin de simuler les mobs et la redstone aussi loin qu'ils ont besoin que les chunks soient rendus, et la réduire permet de récupérer du temps de tick réel avec un impact beaucoup plus faible sur la sensation du jeu.
Profiler avant de deviner
Deviner la cause du lag est une perte de temps. Un profiler comme spark capture exactement où va le temps de tick du serveur, que ce soit un plugin spécifique, la génération du monde, le traitement des entités, ou autre chose, au lieu de vous contenter de modifier des paramètres au hasard en espérant.
Installez Papier ou Purpur
Migrez d'abord depuis la version vanilla ou Spigot standard. Cela débloque toutes les optimisations ci-dessous.
Appliquez les drapeaux d'Aikar à votre script de démarrage
Copiez l'ensemble des indicateurs documentés dans la commande de démarrage de votre serveur et redémarrez. Il s'agit d'un changement unique avec un effet durable.
Prégénérez votre monde avec Chunky
Exécutez-le pendant les heures de faible trafic pour que les joueurs qui explorent ne déclenchent jamais la génération de chunks en direct plus tard.
Définissez délibérément la distance de vue et la distance de simulation
Adaptez-les à votre nombre réel de joueurs et à votre matériel plutôt que de conserver les paramètres par défaut de la plateforme.
Profil avec étincelle sous charge réelle
Capturez un rapport pendant les heures de pointe et corrigez ce qu'il indique réellement, au lieu de deviner.
La performance côté serveur ne raconte pas toute l'histoire
Stabiliser le nombre de TPS est la moitié de l'expérience. Chaque joueur doit toujours rendre ce serveur stable sur sa propre machine, et un serveur solide ne sert à rien pour quelqu'un dont le client est submergé par le rendu, la mémoire ou un pack de shaders incompatible. Si vous exploitez un réseau BedWars ou SkyWars et que vous avez déjà fait le travail mentionné ci-dessus, l'autre moitié d'une expérience fluide pour vos joueurs est ce qui se passe de leur côté. C'est exactement le fossé pour lequel Terminus est conçu, une performance client optimisée pour correspondre au travail que vous avez déjà accompli sur le serveur.
FAQ
Non. Les mods clients modifient ce qui se passe sur la machine du joueur. Le lag du serveur réside dans la boucle de tick du serveur, et seuls les changements côté serveur, les logiciels, les drapeaux, les plugins, les paramètres du monde y accèdent.
Logiciel serveur. Le passage de Spigot standard ou non optimisé à Paper ou Purpur débloque les travaux asynchrones et multithreads sur lesquels s'appuient la plupart des autres optimisations.
Oui, surtout concernant le ramasse-miettes de Minecraft, dont les paramètres par défaut gèrent mal les charges réelles. Ils ne répareront pas un serveur manifestement trop petit, mais sur du matériel adéquat, ils atténuent considérablement les blocages liés au ramasse-miettes.
Vérifiez le TPS du serveur avec une commande comme /tps ou un plugin comme spark. Si le TPS se maintient autour de 20 et que vous ressentez toujours des saccades, le problème vient probablement de votre propre client ou de votre connexion, et non du serveur.
Obtenez Terminus
Tuned client performance to match the server work you already did.