le forum de MineStrator

Nous ne cherchons pas à être un forum, mais le forum de référence pour les administrateurs et joueurs de serveurs minecraft, la communauté a besoin de toi, alors n'hésite pas à t'inscrire et à participer à la vie du forum !

Analyser les lags de votre serveur avec Spark [1.8+]

Yoshun

Administrateur
Staff
Administrateur
#1
spark.png
Bonjour et bienvenue dans ce tutoriel qui va vous apprendre comment analyser les lags de votre serveur avec Spark. Spark est un formidable outil d'analyse qui va vous permettre de voir en détail les sources de lags de votre serveur et d'agir en conséquences.
Spark est disponible sous Spigot, PaperMC, Forge et il est compatible avec BungeeCord et Sponge (compatible à partir de la version 1.8 de Minecraft).


1 - Téléchargement de Spark
La première chose à faire est de télécharger et d'installer Spark. Pour ça, cliquez sur le lien suivant pour vous diriger vers la page de téléchargement : . Sur cette page, vous avez plusieurs choix de téléchargement selon la version que vous utilisez.

- Pour Spigot, PaperMC et BungeeCord :
Vous devez télécharger le fichier spark.jar. Le fichier doit ensuite être placé dans le répertoire plugins de votre serveur.
La commande à utiliser avec Spigot et PaperMC est la commande /spark.
La commande à utiliser avec BungeeCord est la commande /sparkb.


- Pour Sponge/SpongeForge :
Vous devez télécharger le fichier spark.jar. Le fichier doit ensuite être placé dans le répertoire mods de votre serveur.
La commande à utiliser avec Sponge/SpongeForge est la commande /sparkb.

- Pour Forge :
Vous devez télécharger le fichier spark-forge.jar. Le fichier doit ensuite être placé dans le répertoire mods de votre serveur.
(Pour les versions 1.10, 1.11 et 1.12 de Forge, vous devez télécharger une ancienne version que vous pouvez obtenir )
La commande à utiliser côté serveur est la commande /spark.
La commande à utiliser côté client est la commande /sparkc.


Ensuite, redémarrez votre serveur pour que Spark s'installe.

2 - Vérifier l'état du serveur
La première commande va vous permettre de vérifier si le problème vient du serveur ou de votre connexion. Cette commande est la /spark healthreport.
Celle-ci va vous fournir plusieurs informations :
- Les TPS (Ticks Per Second) de votre serveur qui indique l'état de santé global de votre serveur.
- L'usage du CPU et de la mémoire RAM
- L'usage de l'espace disque

health_report.png

L'information la plus directe pour savoir si votre serveur est en bonne santé sont vos TPS. Un serveur en bonne santé est un serveur à 20 TPS. Considérez qu'il est bon d'analyser votre serveur avec Spark si vous êtes en dessous des 18 TPS. Et plus ce chiffre est bas, plus votre serveur va subir des lags importants qui vont dégrader la fluidité de votre serveur.

Ces trois versions intègrent aussi une commande pour voir les TPS au moment de l'exécution de la commande. Ce n'est pas aussi précis que Spark mais ça permet de se faire une première idée avant son installation.
Pour Spigot et PaperMC, vous pouvez faire la commande /tps
Pour Sponge/SpongeForge, vous pouvez faire la commande /sponge tps


3 - Identifier les sources de lags
Si les TPS de votre serveur sont bas, vous avez à votre disposition l'outil sampler de Spark qui va analyser tout ce qu'il se passe sur votre serveur pendant un certain temps pour ensuite vous fournir un lien avec les informations nécessaires pour trouver les différentes sources de lags :

1) Utilisez la commande /spark sampler pendant les lags de votre serveur pour lancer l'analyse
2) Patientez quelques minutes pour que l'outil récolte un maximum d'informations
3) Utilisez la commande /spark sampler --stop pour arrêter l'analyse. Vous allez obtenir un lien, cliquez dessus pour l'ouvrir et accéder à une page web qui va contenir les résultats de l'analyse qui ressemblera à cette page :

spark_sampler.png

Cette page présente tout ce qu'il se passe sur votre serveur. Pour trouver les différentes sources de lags, la première chose est d'identifier les lignes avec un haut pourcentage. Plus le pourcentage est haut, plus le serveur est sollicité. Dans mon exemple, en dépliant les lignes une à une, j'arrive sur une ligne très intéressante : net.minecraft.server.v1_14_R1.EntityZombie.tick() 93.35%

Cette ligne indique que 93,35% du serveur est uniquement dédié à gérer les zombis du serveur. C'est bien évidemment un chiffre bien trop élevé pour de la gestion d'entité. Pour les tests, j'ai effectivement fait spawn plusieurs centaines de zombis que j'ai concentrés à un seul endroit comme pourraient le faire des joueurs avec des machines et d'autres entités. Cette ligne indique donc clairement un problème au niveau de la gestion des entités du serveur à cause de leur nombre trop élevé.

Bien évidemment, ceci n'est qu'un exemple, il existe un nombre incalculable de possibilités et les sources peuvent être multiples : trop d'entités, un mod trop gourmand, un plugin défectueux ... À vous d'utiliser Spark pour analyser et trouver ces causes.

C'est la fin de ce tutoriel, n'hésitez pas à venir sur le Discord de MineStrator si vous avez besoin d'aide pour analyser vos résultats d'analyse.
Bon jeu :cool:
 

Haut