Aller au contenu

Wiki

Révision #393

Enregistrée le 14 août 2026 à 23:24

Auteur: vyrriox Type: Édition « Lien de la page optimisation vers les arguments JVM. »
Cette révision #393

Optimiser et diagnostiquer son serveur

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. 1 Télécharge Oracle GraalVM 21 sur graalvm.org/downloads (Java 21, ta plateforme).
  2. 2 Extrais le dossier à côté du dossier serveur et renomme-le en graalvm21 (les scripts de lancement détectent ce nom automatiquement).
  3. 3 Active les flags GraalVM. Windows: ren user_jvm_args.txt user_jvm_args_temurin.txt puis ren user_jvm_args_graalvm.txt user_jvm_args.txt. Linux: mêmes commandes avec mv.

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 Les arguments JVM et la 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-distance pour 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.log dans le dossier logs/ pour le contexte juste avant le plantage.
  • En cas de crash watchdog (tick bloqué), relance avec un profiling spark profiler start --thread * --timeout 30 la 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 Arcadia et Lancer et configurer son serveur. Si le souci vient d'un lag audio côté client, vois Corriger le lag audio.

Version actuelle

Optimiser son serveur

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. 1 Télécharge Oracle GraalVM 21 sur graalvm.org/downloads (Java 21, ta plateforme).
  2. 2 Extrais le dossier à côté du dossier serveur et renomme-le en graalvm21 (les scripts de lancement détectent ce nom automatiquement).
  3. 3 Active les flags GraalVM. Windows: ren user_jvm_args.txt user_jvm_args_temurin.txt puis ren user_jvm_args_graalvm.txt user_jvm_args.txt. Linux: mêmes commandes avec mv.

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-distance pour 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.log dans le dossier logs/ pour le contexte juste avant le plantage.
  • En cas de crash watchdog (tick bloqué), relance avec un profiling spark profiler start --thread * --timeout 30 la 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.