Choix de la JVM
Le pack utilise Eclipse Temurin JRE 21 par défaut: libre, stable, open-source, déjà embarqué dans jre21/ et actif via user_jvm_args.txt. C'est le meilleur choix pour 99 % des cas et la compatibilité maximale avec les mods.
Pour plus de performances sur un gros serveur, tu peux passer à Oracle GraalVM 21: 5 à 15 % plus rapide sur les contraptions Create grâce à la vectorisation SIMD et au compilateur JVMCI. En contrepartie, c'est un téléchargement d'environ 300 Mo, une install manuelle et une licence Oracle.
- 1 Télécharge Oracle GraalVM 21 sur graalvm.org/downloads (Java 21, ta plateforme).
- 2 Extrais le dossier à côté du dossier serveur et renomme-le en
graalvm21(les scripts de lancement détectent ce nom automatiquement). - 3 Active les flags GraalVM. Windows:
ren user_jvm_args.txt user_jvm_args_temurin.txtpuisren user_jvm_args_graalvm.txt user_jvm_args.txt. Linux: mêmes commandes avecmv.
Vérifie dans les logs
Au démarrage, tu dois voir GraalVM apparaître dans les logs à la place de Temurin. Le fichier user_jvm_args_graalvm.txt est déjà fourni dans le pack, tu n'as pas à le créer.
Le détail de chaque argument passé à Java, ligne par ligne, est expliqué dans Arguments JVM et RAM.
Diagnostiquer les lags avec Spark
Spark est un mod de profiling déjà inclus dans le modpack. Il identifie précisément la cause des baisses de TPS, des freezes ou des crashes watchdog. Les commandes se tapent dans la console serveur, sans slash au début:
spark health: check rapide de santé (TPS, CPU, RAM, GC).spark profiler start --thread Server --timeout 60: profile le thread serveur pendant 60 s puis affiche une URL cliquable à transmettre à l'admin.spark profiler start --thread * --timeout 30: profile tous les threads, idéal pour repérer un deadlock quand le serveur freeze.spark tps: TPS et durée de tick courants.
Le plus utile à envoyer
L'URL Spark générée par le profiler est l'information la plus importante en cas de bug. Joins-y l'heure du problème en UTC, ce qui se passait, le nombre de joueurs, ainsi que le fichier latest.log.
Réduire le lag
Si le serveur affiche des warnings Can't keep up!, c'est qu'il est surchargé. Plusieurs leviers dans server.properties:
- Baisse la
simulation-distance: c'est le rayon de chunks réellement simulés, souvent le plus gros gain. - Baisse la
view-distancepour alléger le chunk loading côté serveur. - Réduis le nombre de mobs et d'entités actives (fermes trop grosses, animaux en masse).
Lance un spark profiler pour identifier ce qui coûte le plus avant de tout baisser à l'aveugle.
Que faire en cas de crash
Un crash n'est jamais silencieux: le serveur laisse des traces à analyser.
- Regarde le dossier
crash-reports/: le fichier le plus récent contient la cause exacte du crash. - Consulte
latest.logdans le dossierlogs/pour le contexte juste avant le plantage. - En cas de crash watchdog (tick bloqué), relance avec un profiling
spark profiler start --thread * --timeout 30la prochaine fois pour capter le deadlock.
La console se ferme instantanément?
Sous Windows, si la fenêtre se ferme tout de suite, Java a planté très tôt. Lance run_java21.bat pour garder l'erreur visible à l'écran et pouvoir la lire.
Pour transmettre un bug proprement, garde sous la main l'URL Spark, l'heure en UTC, le crash report et le latest.log. Reviens aux étapes de base dans Installer son serveur et Lancer et configurer son serveur. Si le souci vient d'un lag audio côté client, vois Corriger le lag audio.