Détecter et corriger les lags

De Nefald Wiki
Aller à la navigation Aller à la recherche

Bien souvent il arrive que des lags, bugs etc ne proviennent pas de nos plugins mais bel et bien de la map. Celle-ci peut en effet être truffées de chunks corrompus nuisant gravement au jeu.

Prévenir les lags

Il existe des tas de raisons pour qu'un serveur lag; surcharge du fait de vos plugins, des chunks corrompus, trop d'entités ou de mobs présents, etc.

Modification du Bukkit.yml

Il peut être très intéressant de modifier les valeurs de ticks-per: animal-spawns et ticks-per: monster-spawns. Il s'agit du nombre de ticks séparant chaque génération d'animaux et de monstres. Par défaut, la valeur des monstres est à 1. C'est à dire que Minecraft va générer des monstres 20 fois par secondes (Max ticks par seconde: 20). Il est très intéressant de modifier cette valeur de 1 vers des choses plus acceptables comme 100 ou plus. Cela a permit à de nombreux clients d'améliorer leurs performances.


Spigot

Spigot est un fork de Bukkit, conçu pour améliorer les performances de son serveur.

Article détaillé : Spigot.


Quelques plugins à connaitre


Détecter l'origine d'un lag

Protocole à suivre face à un lag/crash

Si vous faite face à des crashs réguliers lors de la mise en route de votre serveur, ce protocole est fait pour vous! Suivez chacune des étapes afin d'isoler la source de votre problème. [1]

1ère étape : Mettez à jour Bukkit/Spigot

Bien souvent cette manipulation permet de régler le problème. Testez diverses versions de bukkit ou spigot (plus récentes et plus anciennes) jusqu'à ce que votre souci soit réglé. Ce n'est pas le cas? Passez là l'étape 2.

2ème étape : Désactivez vos mondes

L'une des premières causes de lag est la map en elle-même, un monde corrompu pouvant la plupart du temps faire crasher votre serveur.

  • Tentez de lancer votre serveur sans aucun mondes et regardez ce qu'il se passe.

Si votre problème est réglé, il se peut que l'un de vos mondes soit corrompu.

  • Isolez le monde mise en cause en lançant votre serveur avec un seul monde à chaque fois.
  • Vous l'avez trouvé? Si vous pouvez, supprimez-le ou utilisez un réparateur de chunk
Votre problème persiste? Passez à l'étape 3.

3ème étape : Lancez votre serveur sans aucun plugin

Pour lancez votre serveur sans aucun plugins :

  • Renommez tous le répertoire ou déplacez tous les .jar dans un dossier nommé TEST (que vous créerez)
  • Lancez votre serveur.
Le problème est résolu? Vous savez maintenant qu'il était causé par un plugin. Passez à l'étape 3a.
3a : Mettez à jour l'ensemble de vos plugins
3b : Vérifiez chacun de vos plugins

Que c'est fastidieux! Sur un semi-vanilla, ça ira vite, mais sur un serveur comme Nefald et ses 60 plugins cette tâche est pénible. Courage! Faites un billet annonçant à vots joueurs que le serveur sera indisponible une heure ou deux et lancez-vous! Vous pouvez aussi soit lancez un autre serveur, soit téléchargez l'ensemble de votre serveur (c'est long!) en local et faire les test à l'abri.

Les plugins

La plupart des lags viennent des plugins. Certains plugins sont connus pour ralentir le serveur comme Multiverse (utilisez plutôt My Worlds ou Multiworld) ou Dynmap. Aussi, il faut vérifier qu'il n'y a aucune erreur dans le fichier server.log car chaque erreur ralentit drastiquement le serveur.[2]

les clocks redstone

Comment les détecter? Un plugin permet ça! Il les détecte et vous téléporte dessus; Chunks_corrompus#Redstone Clock Detector.

Régénérer un chunk

Vous vous en doutez le moyen le plus direct pour regen un chunk ou une portion de map est d'utiliser WorldEdit. Un autre plugin super, dédié à la régénération, est ChunkFixer. C'est celui que j'utilise à chaque fois que je souhaite régénérer une partie de la map, le résultat est d'autant plus propre qu'avec WE.

Utilisation de WorldEdit
  • repérez le lieu à régénérer et faite //chunk pour sélectionner le chunk sur lequel vous vous tenez OU sélectionnez une zone avec votre wand
  • pour régénérer votre sélection faites //regen


Utilisation de ChunkFixer
  • Pour régénérer le chunk sur lequel vousvous tenez, tapez /chunkfix
  • sinon sélectionnez une portion de la map avec /cf s pour obtenir la wand et une fois fait, retapez la commande pour régénérer



Redstone Clock Detector

Développé par hwei, Redstone Clock Detector vous permet de tester les activités redstone en scannant le serveur sur une durée de temps. De préférence testez votre serveur avec ce plugin sans personne d'autres que vous connecté. En effet cela réduira considérablement l'activité redstone. À noter que les hooks s'activent de temps à autre.

commandes description
/rcd Get plugin status
/rcd ? Help
/rcd <sec> Scanne durant <sec> secondes
/rcd stop Arrête le scan
/rcd list [page] Liste les activités redstone relevées durant le laps de temps indiqué
/rcd tp [player] [num] Téléporte [player] (par défaut soi-même) à l'endroit identifié dans la liste par [num]

Les chunks corrompus

Il existe de nombreux outils dédiés à la correction d'erreurs de chunks; Chunkster, VoidChunk ou encore Minecraft Region Fixer.

Chunkster & VoidChunk

Ces deux plugins, qui autrefois faisaient des miracles, ne sont plus tenus à jour et par conséquent ne fonctionnent plus. :( Chunkster est totalement obsolète et ne prend pas en charge le format Anvil (tout comme checkworld de sk89q), VoidChunk ne semble pas fonctionner malgré mes très nombreuses tentatives.

Minecraft Region Fixer

Article détaillé : Minecraft Region Fixer.

Minecraft Region Fixer est le digne héritié de VoidChunk (lui même remplaçant de Chunkster, héhé).

Utilisation (Linux/Unix)
  • Téléchargez les fichiers au format .zip sur le GitHub de RegionFixer ou clonez-le via Git
  • Placez ces fichiers dans un répertoire RegionFixer, à la racine de votre serveur de jeu
  • Via un terminal, rendez-vous dans le repertoire RegionFixer
  • Lancez un scan complet avec la commande python region-fixer.py ../<nomdevotremap>

Et patientez le temps que le scan soit terminé!



Résultats d'un scan
Welcome to Region Fixer!
(version: 0.1.2)
 
############################################################
#################  Scanning world: Harlan  #################
############################################################
 
Scanning directory...
There are 673 region files and 1218 player files in the world directory.
 
-------------------- Checking level.dat --------------------
'level.dat' is readable
 
------------------ Checking player files -------------------
All player files are readable.
 
------------------ Scanning the Overworld ------------------
Scanning: 61 / 673   9% [##########                                                                                                            ] ETA:  00:32:17
Scanning: 673 / 673 100% [#####################################################################################################################] Time: 00:26:50
 
Chunk problems:
-------------------------------------------------------------------
| Problem | Corrupted  Wrong l.  Etities  Shared o.  Total chunks |
-------------------------------------------------------------------
| Counts  |     0         0         4         0         512952    |
-------------------------------------------------------------------
 
Region problems:
No problems found.


Références