Comment installer et utiliser Spark sur un serveur Minecraft
Comment installer et utiliser Spark sur un serveur Minecraft

Comment installer et utiliser Spark sur un serveur Minecraft

Offres de jeux

Le "lag" est le cauchemar de tout administrateur de serveur Minecraft. Qu'il s'agisse de ralentissements constants, de freezes soudains ou de blocs qui réapparaissent, les problèmes de performance peuvent ruiner l'expérience de jeu. Fort heureusement, il existe des outils puissants pour identifier précisément les sources de ces lags. Parmi eux, Spark se distingue comme un outil de profilage indispensable, compatible avec la casi-totalité des versions de Minecraft.

Ce guide vous accompagnera pas à pas dans l'installation et l'utilisation de Spark pour analyser les performances de votre serveur, comprendre les rapports générés et identifier les coupables responsables des lags.

Installation de Spark

Avant de pouvoir analyser quoi que ce soit, vous devez installer Spark sur votre serveur. Pour cela, veuillez suivre les étapes suivantes, en fonction du type de serveur utilisé :

  • Si vous jouez avec un modpack : Vous utilisez un serveur avec des mods.

  • Si vous avez spécifiquement choisi une version Vanilla ou Snapshot lors de l'installation : Vous devrez d'abord migrer vers Paper pour utiliser Spark. Pour cela, rendez-vous dans l'onglet Installation rapide afin d'installer Paper (veillez à ne pas cocher la case pour réinstaller le serveur afin de ne pas perdre toutes vos données).

  • Version Plugin (Spigot/Paper/Purpur etc.) :

Une fois le fichier ajouté au bon dossier, redémarrez complètement votre serveur pour que Spark se charge correctement.

Vérification de l'état du serveur

La première étape pour diagnostiquer un lag est de vérifier l'état de santé général de votre serveur. Spark fournit une commande simple et efficace pour cela :

/spark tps

Résultat de la commande /spark tps

Cette commande affiche plusieurs informations cruciales :

  • TPS (Ticks Per Second) : A l'instar du coeur d'un humain, le cœur de votre serveur bat à un rythme idéal de 20 TPS. Chaque "tick" représente une mise à jour du jeu (mouvement des créatures, pousse des plantes, etc.).

    • 20 TPS : Votre serveur est en parfaite santé.

    • Entre 18 et 19.9 TPS : De légers ralentissements peuvent survenir, souvent imperceptibles.

    • En dessous de 18 TPS : Des lags deviennent notables et l'expérience de jeu se dégrade. Plus ce chiffre est bas, plus les lags sont sévères.

  • Tick durations (aussi appelé MSPT) : C'est le temps (en millisecondes) que met votre serveur pour calculer un seul tick. Pour maintenir 20 TPS, le serveur doit effectuer chaque tick en 50 ms ou moins (1000 ms / 20 ticks = 50 ms/tick).

    • <= 50 ms : Idéal, correspond à 20 TPS.

    • > 50 ms : Le serveur prend trop de temps par tick, entraînant une baisse des TPS et donc des lags. C'est souvent un indicateur plus précis que les TPS pour repérer les surcharges ponctuelles.

  • Usage CPU : Indique la charge processeur générée par le processus Minecraft. Un usage CPU Process constamment élevé (proche de 100% sur un cœur ou plus, selon votre machine) peut indiquer que le serveur atteint ses limites.

Identifier les sources de lag avec le profiler

Le profiler de Spark est l'outil principal pour comprendre ce qui demande le plus de calcul à votre serveur. Il enregistre l'activité du serveur pendant une période définie et génère un rapport détaillé.

Génération du rapport Spark

En fonction du type de ralentissements observé en jeu, vous pouvez utiliser deux commandes différentes :

Les lags sont constants

Dans le cas de ralentissements constants sur le serveur, vous pouvez exécuter la commande suivante :

/spark profiler start --timeout 30

Cette commande lancera une analyse pendant 30 secondes. Vous pouvez ajuster la durée, par exemple 60 pour une minute (30 à 60 secondes suffisent généralement pour récolter suffisamment de données).

Les lags sont courts et soudains (chutes de TPS soudaines)

Il peut arriver que les lags ne soient pas constants mais plutôt aléatoires et soudains. Dans ce cas de figure, nous allons exécuter une commande différente permettant d'isoler les moments de ralentissement afin de les faire ressortir dans le rapport :

/spark profiler start --only-ticks-over 70 --timeout 60

Dans ce cas :

  • --only-ticks-over 70 : N'enregistre que les informations des ticks qui ont pris plus de 70 ms à s'exécuter (ticks provoquant un lag notable). Ajustez cette valeur (en ms) si nécessaire. 50 ms correspond à la limite pour 20 TPS, donc une valeur comme 70 ou 100 est un bon point de départ pour cibler les pics.

  • --timeout 60 : L'analyse durera 60 secondes, mais ne collectera des données que pendant les pics de lag définis par le seuil précédent.

Comprendre le rapport

Une fois la commande exécutée, vous devriez obtenir un lien vers le rapport Spark une fois la durée spécifiée (via l'argument --timeout) écoulée.

Lien vers le rapport Spark

Le Spark Viewer présente les données collectées de manière organisée.

Aperçu du Spark Viewer

Voici comment l'interpréter :

  1. 1. Comme vu précédemment, le premier encart indique les TPS de votre serveur lors de la génération du rapport.
  2. 2. Il en est de même pour la durée des ticks.
  3. 3. L'encart CPU indique la charge du serveur lors de la génération du rapport.
  4. 4. Cet encart indique la quantité de RAM utilisée par le processus Minecraft. Cette valeur ne correspond pas à la quantité de mémoire disponible pour votre serveur. La limite de cette valeur n'est pas fixe et est dynamiquement ajustée par Minecraft.
  5. 5. Le CPU système est identique au CPU du processus sur les serveurs Hosterfy.
  6. 6. La mémoire physique correspond à la mémoire totale disponible pour votre serveur Minecraft. Cette valeur est fixe et définie selon le serveur Minecraft auquel vous avez souscrit.
  7. 7. La dernière ligne en bas de la page correspond à l'arbre d'appel qu'il est possible de déplier (voir section suivante).

Vous remarquerez également de nombreux encarts liés au GC (Garbage Collector), ces derniers indiquent l'état de santé de ce mécanisme qui a pour but de gérer la mémoire vive non utilisée par votre serveur Minecraft afin notamment de la libérer. De nombreuses valeurs oranges ou rouges dans ces encarts peuvent indiquer un problème de gestion de la mémoire. Dans ce cas, il est préférable de prendre contact avec le support afin que vous puissiez être accompagné pour résoudre ce problème.

Analyse de l'arbre d'appels

Cette partie du rapport est la plus importante pour les problèmes de TPS. Elle montre comment le temps de calcul est réparti entre les différentes opérations effectuées par le serveur.

  • Les éléments sont hiérarchisés. Une ligne représente une fonction ou une tâche exécutée par le serveur.

  • Les pourcentages indiquent la part du temps total d'analyse consommée par cette tâche et toutes les tâches qu'elle appelle (% Total).

  • Commencez par le haut (tick / Server thread) et dépliez les lignes ayant les pourcentages % Total les plus élevés. Continuez à descendre dans la hiérarchie pour affiner votre recherche.

Exemple d'un serveur ayant un TPS faible

Analyse de l'arbre d'appel Spark

Grace à Spark, on observe dans ce cas (en suivant la méthodologie présentée précédemment) que la grande majorité du temps consommé par le serveur est dédié au tick d'entités et plus particulièrement d'Allay et de Squelettes.

En effet, si on regarde l'onglet Monde disponible sur le rapport Spark, on observe un nombre conséquent de ces deux entités sur le serveur :

Entités chargées sur la map

Autres commandes Spark

Spark offre d'autres commandes qui peuvent compléter votre diagnostic :

  • /spark healthreport : Génère un rapport complet sur l'état de votre serveur, incluant les TPS/MSPT, l'usage mémoire, l'usage disque, les informations système (CPU, OS, Java), et les arguments de démarrage JVM. C'est excellent pour avoir une vue d'ensemble ou pour partager des informations lorsque vous demandez de l'aide.

  • /spark gc : Analyse l'activité du Garbage Collector (GC) de Java. Des pauses GC trop longues ou fréquentes peuvent causer des freezes majeurs du serveur. Cette commande aide à diagnostiquer les problèmes liés à la gestion de la mémoire.

  • /spark heapsummary : Crée un "dump" de la mémoire vive (heap) pour analyser quels objets occupent le plus de place. Utile pour les problèmes de consommation excessive de RAM, souvent en complément d'une analyse GC.

Nous ne déatillerons pas l'analyse de ces commandes, mais vous pouvez contacter notre support avec ces éléments si vous souhaitez une assistance pour déterminer la source des lags.

Créez votre serveur Minecraft !

Créez votre serveur Minecraft !

Créez votre propre serveur Minecraft avec vos amis ou en communauté et explorez des biomes fascinants, avec une fluidité de jeu inégalée.

Slots illimités Panel de gestion Performances extrêmes Support 24/7 Offres flexibles

Publier un commentaire

Name must be between 3 and 25 characters.
Please enter a valid email.
Comment must be between 30 and 500 characters.

Commentaires

Soyez le premier à commenter cet article !
Hosterfy Hébergement Web, cloud et Serveurs de jeux

Hosterfy est un hébergeur proposant diverses solutions d’hébergement haut de gamme à ses clients.