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.
Sur un serveur bien chargé, Oracle GraalVM 21 peut faire gagner quelques points de performance grâce à son compilateur, surtout sur le calcul intensif comme les grosses machines de Create. Le gain dépend beaucoup de la charge réelle et n'a rien d'automatique: mesure avant et après avec Spark plutôt que de le supposer. En contrepartie, c'est un téléchargement d'environ 300 Mo, une installation manuelle et une licence Oracle à accepter.
- 1 Télécharge Oracle GraalVM 21 sur graalvm.org/downloads (Java 21, ta plateforme).
- 2 Extrais le dossier dans le dossier du serveur, à côté de
jre21, et renomme-le engraalvm21. - 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.
La détection automatique ne marche que sous Linux
run.sh cherche d'abord jre21/, puis graalvm21/: sous Linux, il suffit de poser le dossier au bon endroit. Sous Windows, run.bat ne teste que jre21\ et ignore GraalVM. Pour l'utiliser quand même, remplace le contenu de jre21\ par celui de GraalVM, ou édite la ligne JAVA_BIN de run.bat.
Vérifie dans les logs
Au démarrage, la version de Java s'affiche avant le lancement du serveur: tu dois y voir GraalVM à 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.
La méthode la plus simple, recommandée par le pack
Le fichier user_jvm_args_graalvm.txt livré avec le serveur donne une alternative plus courte: remplacer le contenu de jre21/ par celui de GraalVM. Les scripts de lancement continuent alors de pointer au bon endroit sur les deux systèmes, et tu n'as qu'à activer les arguments GraalVM. Pense à garder une copie de l'ancien dossier si tu veux revenir en arrière.
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
Deux mods s'en chargent déjà en partie: ServerCore abaisse tout seul la distance de simulation et le plafond de monstres quand la charge monte, et Chunky permet de générer le monde à l'avance pour éviter le pire coût d'un serveur moddé. Les deux sont détaillés sur Chunky et ServerCore.
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.
Alléger les mods gourmands
Avant de chercher plus loin, sache que le pack embarque ArcadiaTweaks, un mod maison qui retire du travail inutile à Botany Pots, Refined Storage et Mekanism. Ses trois modules se désactivent séparément, ce qui aide à isoler l'origine d'une baisse de performance.
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.