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