Le meilleur start.sh

Fau8

Architecte en herbe
20 Février 2017
169
1
10
126
Bonjour, bonsoir, je fais quelques recherches sur le start.sh, j'ai vu qu'il y avait plusieurs options supplémentaires qui pouvaient améliorer le serveur. Cependant, ils y en a qui sont différents des autres (avec d'autres options), donc je me demande quel est le meilleur start.sh..
Code:
while true
do
java -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=4 -XX:+AggressiveOpts -Xms5G -Xmx5G -jar spigot.jar nogui
echo Redémarrage...
done
 
Bonjour !

Il n'existe pas de bon ou de mauvais fichier de lancement. Tut ce qu'il y a dedans, ce sont des arguments java. Il en existe des plus courts que ce que tu as envoyé. N'importe quel tutoriel sur internet montrant comment créer un serveur minecraft te proposera un fichier de démarrage. Il y a une chose importante dans la ligne en question : c'est la quantité minimum de RAM et la quantité max allouée au programme. Après le reste, ca varie en fonction des personnes et des tutoriels ;)

AlexFatta
 
Je sais que le plus important dans le fichier de lancement est la RAM, mais ces arguments Java font-ils vraiment une différence par rapport à un fichier de lancement basique ? Et si oui, laquelle ?
 
Salut,
Le script que tu as lancé a la commande java à l'intérieur d'une boucle while, ce qui relancera automatiquement le serveur s'il se coupe (ça peut servir dans certains cas).

Concernant les arguments java, ça peut faire une petite différence, surtout pour le garbage collector (ce qui gère la mémoire).
Java 7 et 8 utilise le Parallel GC, mais le nouveau G1 GC est déjà dispo avec java 8 (par défaut avec Java 9) il est plus performant et je recommande donc de l'utiliser (le launcher de Minecraft lance par ailleurs le jeu avec ce GC) :
Code:
-XX:+UseG1GC

Le launcher de minecraft lance le jeu avec les arguments suivants :
Code:
-Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
Il peut être intéressant de reprendre l'argument -XX:MaxGCPauseMillis=50 qui évitera que le GC utilise trop de temps cpu à chaque lancement de ce dernier (pendant que le GC tourne, le code de minecraft ne s'exécute pas).

Tu peux aussi augmenter le nombre de thread utilisé par le GC avec :
Code:
-XX:ParallelGCThreads=n
et
Code:
-XX:ConcGCThreads=n
(tu peux remplacer n par le nombre de cœurs du processeur du serveur).

http://www.oracle.com/technetwork/articles/java/vmoptions-jsp-140102.html
 
  • J'aime
Reactions: Fau8 et Alex Fatta