Aide à la traduction
Si vous remarquez des erreurs ou des défauts dans la traduction, veuillez les signaler et les corriger. Merci !
Pourquoi pas Aikar flags?
C'est très simple. Son garbage collector est basé sur l'algorithme G1. Comme il l'a dit, l'algorithme est incroyablement stable, mais il est extrêmement lent par rapport aux normes actuelles. En même temps, il est terriblement dépassé, tout ce qu'il mettait en œuvre était innovant à l'époque du JDK 8, mais plus maintenant. En effet, pourquoi changer quelque chose qui fonctionne ? Eh bien, vous devriez.
Je propose de le remplacer par Shenandoah - il s'agit d'un garbage collector avec un temps de pause extrêmement court, ce qui convient parfaitement à notre jeu préféré, nous détestons tous les freezes. Cela n'a en aucun cas affecté la stabilité, durant l'antière période de tests ininterrompus, pas un seul problème n'a été identifié.
Je ne demande pas à tout le monde de modifier immédiatement les propriétés de lancement de leur serveur, je veux simplement préciser que rien n'est parfait. De même, je ne suis pas responsable de la stabilité de mes paramètres dans votre cas d'utilisation en particulier, tous les systèmes sont différents, et les résultats peuvent varier.
JDK supportés:
Je recommande d'utiliser OpenJDK 16
- OpenJDK 8+
- Red Hat 8+
- Amazon 11+
- Azul 11+
- AdoptOpenJDK 11+
- Oracle
- SAP
Serveurs pris en charge:
- Vanilla
- Bukkit, Spigot, Paper ...
- Fabric
- Forge
Propriétés:
java -jar -server -Xms6G -Xmx6G -XX:+UseLargePages -XX:LargePageSizeInBytes=2M -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:+UseNUMA -XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:+DisableExplicitGC -Dfile. encoding=UTF-8 launcher-airplane.jar --nogui
L'avertissement
Option UseBiasedLocking was deprecated in version 15.0 and will likely be removed in a future release.
peut être ignoré sans risque et utilisé sur votre serveur, le flag UseBiasedLocking fait très bien son travail.
Et maintenant nous allons analyser attentivement ce qui est responsable de quoi:
-Xms6G et -Xmx6G : définit les limites d'utilisation de la mémoire par votre serveur Minecraft, je recommande de ne pas utiliser plus de 12 Go pour votre serveur et de toujours laisser 1 - 2 Go de mémoire libre pour le système.
-XX:+UseLargePages et -XX:LargePageSizeInBytes = 2M : pour les utilisateurs avancés uniquement, permet d'utiliser de large pages de mémoire, accélère la vitesse de démarrage et la réactivité du serveur. Allons faire en sorte que Linux enregistre des pages pour nous. Ajoutez cette ligne à /etc/sysctl.conf
:
vm.nr_hugepages = 3372
Comment avons-nous obtenu ce nombre ? Disons que je veux enregistrer 6 Go de large pages, pour cela, je divise 6 Go par 2.
6 * 1024 / 2 = 3072
Ensuite, je recommande de laisser un peu d'espace libre et d'ajouter 300 à notre nombre.
3072 + 300 = 3372
Puis nous redémarrons le système pour appliquer les changements. Vous pouvez vérifier que la mémoire a été enregistrée avec succès avec la commande grep -i hugepages /proc/meminfo
.
-XX:+UnlockExperimentalVMOptions : permet l'utilisation de fonctionnalités expérimentales.
-XX:+UseShenandoahGC : utilise le projet Shenandoah comme algorithme de garbage collector (c'est ainsi que le traducteur lit ce nom).
-XX:ShenandoahGCMode=iu : active le mode expérimental de notre assembleur, c'est un miroir du mode SATB, qui rendra le markup moins conservateur, surtout en ce qui concerne l'accès aux liens faibles.
-XX:+UseNUMA : Active l'entrelacement NUMA sur les hôtes avec plusieurs sockets, lorsqu'il est combiné avec AlwaysPreTouch, il fournit de meilleures performances que la configuration par défaut. Vous trouverez plus de détails sur cette architecture ici.
-XX:+AlwaysPreTouch : pré-enregistrement de toute la mémoire allouée en une seule fois, réduit les délais d'entrée.
-XX:-UseBiasedLocking : Il existe un compromis entre la bande passante du verrouillage illimité (biaisé) et les points sûrs que la JVM réalise pour les activer et les désactiver selon les besoins. Pour les charges de travail axées sur la latence, y compris les serveurs Minecraft, il est judicieux de désactiver le blocage biaisé.
-XX:+DisableExplicitGC : L'appel de System.gc () à partir d'un code personnalisé oblige ShenandoahGC à effectuer un cycle supplémentaire de garbage collection, la désactivation protège contre les abus de code.
Pour l'option la plus stable et efficace, je recommande Airplane.
Tuned-adm est un outil en ligne de commande qui vous permet de passer d'un profil à l'autre pour améliorer les performances dans un certain nombre de cas d'utilisation spécifiques. Installez le paquet avec apt-get
:
sudo apt-get install tuned
Ensuite, vous devez choisir la configuration pour votre système, je recommande d'utiliser throughput-performance
ou latency-performance
, définissez le profil dont vous avez besoin :
sudo tuned-adm profile throughput-performance
Vous pouvez vérifier que les changements ont été appliqués avec la commande tuned-adm profile
.
Un article détaillé sur tous les profils et quand les utiliser ici.
chunk-gc :
period-in-ticks : 600
Valeur recommandée pour chunk-gc.period-in-ticks
:
N'allouez pas plus de 12 Go de mémoire, cela n'affectera pas la plupart des cas.
Mémoire / Nombre de joueurs | jusqu'à 30 | de 30 à 60 | de 60 à 100 | plus de 100 |
---|---|---|---|---|
4 GB | 400 | - | - | - |
8 GB | 600 | 400 | 300 | - |
12 GB | 1200 | 800 | 600 | 400 |