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
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.


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 pour la dernière version :
En version mod pour les anciennes versions :
En version plugin pour les anciennes versions et la dernière version :
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 tps.
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

1711532317750.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. Et plus ce chiffre est bas, plus votre serveur va subir des lags importants qui vont dégrader la fluidité de votre serveur.

Ces 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/Paper, vous pouvez faire la commande /tps
Pour Forge, vous pouvez faire la commande /forge tps


3 - Identifier les sources de lags
Si les TPS de votre serveur sont bas, vous avez à votre disposition l'outil profiler 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 suivante :
- Si vous avez des lags constants, faites la commande suivante : /spark profiler --timeout 30
- Si vous avez des pics de lags de temps en temps, faites la commande suivante : /spark profiler --only-ticks-over 100 --timeout 30
2) Patientez les 30 secondes indiquée dans la commande (vous pouvez mettre 60 si vous voulez que l'analyse dure 60 secondes par exemple)
3) Après le délai indiquée, 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 :

1711532408922.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.world.entity.monster.EntityZombie.tick() 92.32%

Cette ligne indique que 92,32% d'un tick du serveur est uniquement dédié à gérer les zombies 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 des milliers de zombies que j'ai concentrés à un seul endroit comme pourraient le faire des joueurs avec des machines automatiques et d'autres entités comme des poulets par exemple.

Sur les dernières versions de Spark, vous pouvez aussi avoir un aperçu détaillé du nombre d'entité depuis l'onglet "World" au dessus de ces lignes :

1711532481216.png


On voit bien qu'il y a 4397 zombies concentré sur un seul chunk. C'est bien trop élevé et c'est clairement la source des lags.

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