Comment Réduire les Lags sur son Serveur Minecraft ? [GUIDE]


Les serveurs Minecraft sont des logiciels peu optimisés pour la performance. Ils consomment beaucoup de RAM, sollicitent le disque et fonctionnent en mono-thread.
Les lenteurs sur serveur sont donc fréquentes, et cela peut devenir très compliqué pour l’expérience de jeu si aucune mesure n’est prise pour améliorer cela.
Dans ce guide, je vais vous expliquer ce que vous pouvez faire afin de diminuer ces lags.

Des actions peuvent être réalisées à plusieurs niveaux afin de diminuer les lenteurs d’un serveur Minecraft.
Sur un premier niveau, il est conseillé de limiter les plugins utilisés ou encore la taille des mondes.
Sur un plan de la configuration, de nombreuses options permettent de limiter ces problèmes.

Nous allons donc commencer par voir les bonnes pratiques à suivre d’un point de vue logique pour éviter d’ajouter du lag non nécessaire, puis nous verrons certaines options de configuration un peu magiques pour régler certains problèmes.

Identifier ce qui génère les lenteurs

La première chose à faire pour réduire le lag d’un serveur Minecraft, est d’essayer de trouver des pistes permettant de l’expliquer. C’est le but de cette première partie, qui est la plus importante.

Le matériel

Un problème au niveau de la machine hébergeant le serveur est généralement la solution un peu facile pour identifier un problème de lag.
Certes si vous avez 30 joueurs sur un PC qui a 10 ans, c’est sans doute la première cause à observer, mais souvent le matériel n’est pas directement en cause.

Nous reviendrons à la fin de ce guide sur les raisons qui peuvent vous pousser à envisager un changement de serveur, mais pour l’instant concentrons-nous sur les facteurs limitant un bon fonctionnement.

La quantité de RAM

Un serveur Minecraft est très sensible à la quantité de mémoire disponible (RAM).
Le nombre de joueurs, le chargement des mondes ou encore certains plugins peuvent générer une utilisation de RAM supplémentaire.

Si vous êtes chez un hébergeur Minecraft de type RoxServers, il n’y aura pas grand-chose à faire à ce niveau-là (à part passer au serveur supérieur si c’est vraiment la seule raison).
Par contre, si vous êtes sur un serveur dédié, virtuel ou votre propre ordinateur chez vous, il y a des choses à vérifier.

Tout d’abord, commencez par taper la commande Spigot suivante :
/gc (fournit par le plugin Essentials)

Cela va vous afficher la taille de la mémoire allouée, et celle restant disponible, par exemple :

Cela vous permet d’avoir en un coup d’œil les deux informations.

Si la mémoire libre est très faible, il s’agit sans doute du problème, dans ce cas, je vous conseille d’augmenter la RAM allouée à votre serveur lors du démarrage.
Les options sont les suivantes :
java -Xmx1024M -Xms1024M -jar fichier_serveur.jar
Remplacer 1024M par la quantité de RAM à allouer.

Pensez également à vérifier que la machine entière n’est pas saturée en termes de mémoire.
Si vous allouez 8 Go, mais qu’il n’y a que 4 Go en tout ça ne marchera pas 🙂
Idem si vous avez d’autres applications qui tournent et consomment beaucoup de mémoire.

Dans le cas où vous hébergez votre serveur vous-même, l’ajout de RAM à votre machine est devenu très abordable. Il n’y a donc aucune raison de s’en priver s’il s’agit vraiment du problème qui vous génère des lags (voir les bons plans du moment sur Amazon).

Le type de disque

Actuellement, il existe encore deux types de disques durs pour les ordinateurs et serveurs : SATA ou SSD.
Le SATA devient de plus en plus obsolète, et est bien plus lent que le SSD.
Un passage sur un serveur utilisant du SSD peut donc nettement améliorer les performances à certains niveaux.

Cela ne sera pas forcément révolutionnaire partout si le reste ne change pas, mais cela peut donner un coup de pouce non négligeable sur tous les accès au disque.
Cela concerne par exemple le démarrage du serveur, la sauvegarde des mondes, les différents enregistrements de progression de vos joueurs, etc.

Si vous hébergez votre serveur chez vous, un SSD de 64 ou 128 Go ne coûte plus grand-chose, et il serait dommage de s’en priver lorsque votre ancien disque plombe les performances (voir le modèle que j’utilise sur Amazon).
Pour les hébergeurs en ligne classiques, vous trouverez sans doute des upgrades possibles (Roxservers a des tarifs très abordables en SSD par exemple).

Le processeur

Le processeur en lui-même est de moins en moins limitant pour les serveurs Minecraft. En effet, les PC et serveurs disposent désormais d’une puissance largement suffisante pour faire tourner un serveur Minecraft.

Le vrai problème concernant le processeur est la gestion du processus de votre serveur. En effet, Minecraft et les serveurs, ont été développés avec l’idée d’utiliser un seul processeur à la fois.
Sauf qu’actuellement la plupart des machines disposent d’au moins 4 cœurs de CPU.

Un processeur avec 1 cœur et très rapide, marchera beaucoup mieux qu’un autre de 16 cœurs, mais plutôt lent (ça n’est pas vraiment réaliste, mais vous avez compris l’idée ^^).

Sur Windows, le moniteur de ressources vous permet de surveiller cela et d’identifier si votre cela peut être un problème.
Sur Linux, j’utilise l’outil « htop », qui n’est pas toujours installé par défaut, pour superviser cette utilisation (illustration ci-dessus de la partie CPU).

Malheureusement, une fois ce problème identifié, il n’y a pas de solution simple.
Un changement de processeur implique généralement un changement de machine au complet.
Pour sélectionner le meilleur CPU dans votre budget, il est important de chercher la référence sur un site de benchmark comme CPU Benchmark, et de regarder uniquement le score « Single Thread Rating »

Les autres causes de lenteur sur serveur Minecraft

Maintenant qu’on connait un peu mieux les différentes limites matérielles qui peuvent générer sur votre serveur, voyons les causes.

Le nombre de plugins

La première chose à prendre en considération est les plugins installés sur le serveur.
Certes les plugins apportent de nouvelles fonctionnalités utiles ou amusantes, mais l’accumulation de ces plugins est souvent pénalisant pour les performances et la qualité de jeu.

Ainsi sur un nouveau serveur, soyez vigilants à chaque nouveau plugin ajouté. Est-il indispensable ? Ne fait-il pas doublon avec un autre qui pourrait être remplacé ? Est-ce vraiment judicieux d’avoir 70 des plugins liés à l’animation sur un serveur survie ?

Sur un ancien serveur, pensez à faire une analyse régulière des plugins installés, s’ils servent encore ou non. Il est facile de tout conserver, mais cela peut nuire aux performances, et c’est plutôt facile à régler si une partie des plugins ont perdu de leur utilité avec le temps.

Je suis bien placé pour vous dire, que sur un serveur de plus de 5 ans, il n’est pas du tout évident de se passer des plugins qui apportent des avantages aux joueurs. D’où l’importance de bien réfléchir au départ.

Le choix des plugins

Note supplémentaire au sujet des plugins, le choix des plugins à aussi toute son importance. En plus d’être certain qu’il est judicieux d’ajouter cette fonction, étudiez également si d’autres plugins ne la propose pas avec de meilleures performances.

En effet, ajouter un plugin qui permet 200 fonctions alors que vous n’en avez besoin que d’une, et qu’elle est disponible dans un plugin qui ne fait que ça, ne va pas vous aider.

De la même manière, étant donné que les plugins sont développés par des codeurs indépendants, les performances de 2 plugins qui font la même chose peut grandement varier. Faites des tests, et revenez en arrière si cela est trop lent.

La taille et le nombre de mondes

Le serveur charge au démarrage le spawn de chaque monde, et il charge les zones (chunks) situées autour de chaque joueur pour un jeu fluide.
Si nécessaires, ces chunks devront être générés avant d’être chargés (ce qui est encore plus gourmand en ressources).

Plus vous avez de monde, et plus le démarrage du serveur va prendre du temps.
Mais aussi, plus vous avez de mondes grands, plus le nombre de joueurs connectés va avoir un impact sur les performances.

Voici mes deux conseils à ce sujet:

  • Précharger les mondes : la partie génération des chunks dont je parlais est la plus lourde. Si vous avez un monde immense avec 30 joueurs dessus en train de charger des zones, votre serveur aura du mal à tenir, quelque soit ses caractéristiques.
  • Mettre des limites à vos mondes : Quelque soit votre type de serveur (sauf entre amis peut être), évitez de laisser vos mondes sans limites. Il y aura moins de génération nécessaire si vous restreignez la carte au strict nécessaire.

Pour vous aider à mettre en place ces deux conseils sur Spigot, je vous recommande le plugin WorldBorder, qui permet de faire les deux.
Il permet d’ailleurs aussi de réduire une carte à la nouvelle limite fixée.
Vous trouverez toutes les informations ici sur le site Spigot.

Le nombre d’entités

Enfin, un des derniers éléments principaux à prendre en compte est le nombre d’entités sur votre serveur.
Pour rappel, une entité est tout élément dynamique sur le serveur (contrairement à un bloc qui lui est statique).

Cela inclue notamment les :

  • joueurs
  • animaux et mobs
  • bateaux et wagons
  • torches et cadres
  • blocs soumis à la gravité (sable, gravier, etc)
  • items inventaires perdus ou jetés au sol

La résolution de ce problème dépendra de votre type de serveur et des restrictions en place.
Par exemple sur un créatif, si tout le monde remplit sa parcelle de bateaux, vous allez avoir des problèmes. Même chose si en survie tous les mondes à des élevages de 500 animaux de chaque sorte, cela peut très vite nuire aux performances.
À vous de voir les meilleures solutions à mettre en place.

Je vous recommande toutefois de jeter un œil au plugin StackMob et à la configuration de WorldGuard.
Le plugin ClearLag peut aussi aider pour supprimer le surplus d’entités ou celles restées au sol.

Outils utiles pour vous aider

Connaitre les raisons possibles de lag peut déjà vous orienter à chercher dans certaines directions, mais il existe quelques outils pour vous aider dans cette tâche.

Timings

Timings est un outil qui peut vous aider à trouver la cause de vos problèmes parmi toutes les possibilités que nous avons déjà listées.
Il s’agit d’une commande, inclue dans Spigot, qui va vous générer un rapport web avec l’état de votre serveur, et les causes possibles de lenteur.

La syntaxe de la commande est la suivante :
Usage: /timings <reset|report|on|off|verbon|verboff>
Pour lancer un rapport, utilisez la commande
/timings on
Puis, après quelques minutes (le plus long est le mieux, minimum 3 minutes) :
/timings report
Cela vous affichera un lien vers le rapport web à consulter :

Vous avez un onglet par information importante (global, régions, configuration et plugins).
Dans chaque onglet, les problèmes les plus importants à prendre en compte sont listés dans l’ordre

Cela demande un peu de temps au début à analyser, mais vous trouverez plein d’aide en ligne à ce sujet si besoin.
En général, les résultats seront assez évidents.

Paper

Paper est une alternative à Spigot dont l’objectif principal est d’optimiser les performances en général.
J’étais passé de Spigot à Paper lors de la mise à jour de mon serveur en 1.13 et cela m’avait sauvé la vie, le serveur était injouable avec Spigot, et tout allait mieux avec Paper (sans rien changer d’autre).

Je ne vais pas rentrer plus dans les détails ici, car j’ai déjà un article complet à propos de Paper si cela vous intéresse d’en savoir plus (je vous le recommande grandement si vous êtes toujours en train de me lire, le changement se fait très rapidement, avec aucun impact, et peut donc se tester facilement).

Les configurations pour réduire le lag

Dans cette partie, je vous fait juste un rappel rapide sur les différentes pistes concrètes que vous pouvez explorer pour régler votre problème de ralentissement de serveur.

Plugins

La première chose à regarder une fois les causes identifiées (avec plus ou moins de certitudes), c’est s’il n’existe pas un plugin qui pourrait vous aider dans ce domaine.

J’en ai déjà cité plusieurs, mais voici quelques exemples pour que cela soit plus parlant :

  • ClearLagg, AntiLag et autres : ils se chargent d’ajouter quelques fonctions bien utiles comme la suppression des items laissés au sol par les joueurs.
  • Mobstacker : Le nombre d’entités générant pas mal de lenteurs, pourquoi ne pas fusionner les mobs lorsqu’ils sont proches ? (dans un élevage par exemple).

Il en existe plein d’autres suivants les problèmes, je ne vais pas tout lister.
Rappelez-vous tout de même que rajouter 5 plugins pour réduire le lag ne semble pas très logique, donc assurez-vous avant tout que vos plugins actuels sont indispensables et bien configurés.

Bukkit.yml

Bukkit.yml est l’un des 3 fichiers principaux vous permettant d’affiner certaines options de votre serveur. Cela peut notamment servir à l’optimisation des performances.

Par exemple, la partie « spawn-limits » détermine le nombre de monstres et d’animaux pouvant apparaitre par joueur connecté. Baisser légèrement ces valeurs (50, 8, 3 et 1 par exemple), va forcément réduire la charge de votre serveur.

Je vous invite à jeter un œil à toutes les options et voir ce qui pourrait être affiné sans trop d’impact sur le jeu.

Spigot.yml

Spigot.yml est le second fichier à regarder si vous êtes sur Spigot ou Paper.
En plus de toutes les options de configuration diverses ajoutées par Spigot, il inclue de nombreuses variables pouvoir réduire le lag du serveur, par exemple :

  • item-despawn-rate : permet de faire disparaitre les items au sol plus rapidement que les 5 minutes traditionnelles.
  • mob-spawn-range : permet de réduire le nombre de chunks autour desquels les mobs peuvent apparaître.
  • entity-activation-range : de la même manière, à quelle distance un joueur doit-il se trouver d’un mob pour que son IA s’active ?

Vous trouverez une explication de toutes les options sur le site officiel Spigot (en anglais).

Paper.yml

Enfin, si vous avez franchi le pas et que votre serveur tourne sur Paper, vous avez un dernier fichier à regarder.
Paper étant principalement axé sur les performances, la plupart des options qui se trouvent dans ce fichier peuvent jouer un rôle. Voici quelques exemples :

  • despawn-range : de la même manière que pour les spawns des mobs que nous avons vues dans spigot.yml, il est possible de régler ici la distance de despawn.
  • grass-spread-tick-rate, mob-spawner-tick-rate, … : peut-être n’est-il pas nécessaire que tout s’actualise à chaque tick dans le jeu ? Dans ce cas, ce genre d’options devraient vous intéresser.

Comme pour Spigot, vous trouverez les explications en anglais du contenu de ce fichier dans la documentation officielle de Paper

Changement de serveur ?

Vous avez tout essayé depuis des semaines et rien ne fonctionne ? Peut-être qu’il est simplement temps d’envisager un nouveau serveur ?
C’est ce que nous allons voir dans cette dernière partie.

Quand faut-il changer de serveur ?

Si vous vous posez la question, c’est déjà que vous avez une partie de la réponse. Un changement de serveur peut s’avérer nécessaire si vous voyez cela comme votre dernière option.
Après il y a plein de questions à se poser pour savoir si c’est le bon moment, et malheureusement les réponses ne dépendent que de vous :

  • Avez-vous suivi toutes les recommandations pour alléger votre serveur ?
  • Pensez-vous que votre serveur tourne déjà sur une machine sous-dimensionnée ?
  • Avez-vous le budget nécessaire pour passer à un serveur plus puissant ?
  • Cela pourrait-il rester rentable au niveau financier ? (si vous gagnez de l’argent avec votre serveur)

Si vous avez une majorité de oui, c’est sans doute qu’il est temps de considérer sérieusement cela, et de faire le test.

Si vous êtes chez un hébergeur mutualisé de type RoxServers, il est très facile de mettre à jour son serveur aux performances supérieures sans aucun impact sur la configuration actuelle.
Par contre, si vous avez votre serveur sur une machine que vous gérez entièrement (pc, serveur privé, …), cela demandera un temps de travail pour réaliser la migration qui devra être pris en compte dans la décision.

Comment choisir un serveur ?

Une fois votre décision prise de partir sur un meilleur serveur, reste le choix à faire de la machine sur laquelle passer.
Encore une fois, cela dépendra des cas et vous guider vers le bon choix en quelques mots n’est pas évident.

J’ai par contre rédigé un article complet sur le choix de son hébergeur Minecraft, que je vous conseille de lire avant tout chose.

Conclusion

Nous voici donc à la fin de cet article très important sur l’optimisation des performances d’un serveur Minecraft.
Comme je le disais en introduction, il s’agit d’un sujet délicat, car très important pour les joueurs, mais à la fois pas si évident à appréhender étant donné que le jeu lui-même n’est pas très optimisé à la base.

En tout cas j’espère que mes conseils vous auront été utile.
Si c’est le cas, n’hésitez pas à partager cet article sur vos réseaux favoris, ou lorsqu’on vous pose des questions à ce sujet 🙂

Patrick FROMAGET

Je suis lié au jeu Minecraft depuis plus de 10 ans ! Joueur, développeur, créateur du serveur TopCraft.fr (6 ans d'existence)

Recent Content

Ce site appartient et est exploité par Patrick Fromaget.
Les-differences.com participe au programme d'affiliation Amazon, un programme de publicité pour les affiliés.
En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.
Ce site participe également à d'autres programmes d'affiliation et est rémunéré pour le trafic et les affaires de ces sociétés.