Réglages de performance
Avertissement
These docs were written for SpongeAPI 7 and are likely out of date. If you feel like you can help update them, please submit a PR!
Sponge fournit plusieurs options pour augmenter les performance et vous aider à faire tourner un serveur sans ralentissement, même sous forte charge.
Note
Bien que nous essayons d’améliorer la performance de chaque serveur, les gains de performance dépendent de votre installation. Veuillez exécuter quelques évaluations pour vous assurez que vous avez bien configuré votre serveur Sponge pour en prendre avantage le plus possible !
Zone d’Activation des Entités
Ce paramètre va altérer le comportement de chargement des entités autour des joueurs. Diminuer la valeur va seulement charger les entités les plus près, et l’augmenter va charger les entités qui sont loin du joueur. Diminuez la valeur pour améliorer la performance de votre serveur, surtout avec un nombre élevé d’entités et de joueurs. Pour désactiver l’intervalle d’activation pour une entité spécifique, définissez sa valeur à 0
.
Astuce
Il est possible de spécifier l’intervalle d’activation par monstre. Vous pouvez définir auto-populate
à true
et Sponge ajoutera tous les monstres disponibles à la liste d’intervalle d’activation, il est recommandée de la désactivée après la liste remplie. Si vous ajoutez de nouveaux monstres au jeu, répétez la procédure et les nouveaux monstres seront ajoutés à la suite de la liste.
entity-activation-range {
# If enabled, newly discovered entities will be added to this config with a default value.
auto-populate=false
# Default activation ranges used for all entities unless overridden.
defaults {
ambient=32
aquatic=32
creature=32
misc=16
monster=32
}
}
Éclairage Asynchrone
Ce paramètre exécutera les vérifications d’éclarage sur un thread séparé pour améliorer les performances.
optimizations {
# Runs lighting updates async.
async-lighting {
# If enabled, runs lighting updates async.
enabled=true
# The amount of threads to dedicate for async lighting updates. (Default: 2)
num-threads=2
}
}
Mise en Cache des Propriétaires Domptables
Ce paramètre mettra en cache le UUID des propriétaires d’entités domptables afin de limiter le nombre de recherches du data watcher.
optimizations {
# Caches tameable entities owners to avoid constant lookups against data watchers. If mods cause issue, disable.
cache-tameable-owners=true
}
Drops Pré-Fusion
Ce paramètre va pré-traiter et potentiellement fusionner les items droppés afin de limiter le nombre d’entités qui sont fusionnées après leur spawn.
optimizations {
# If enabled, block item drops are pre-processed to avoid
# having to spawn extra entities that will be merged post spawning.
# Usually, Sponge is smart enough to determine when to attempt an item pre-merge
# and when not to, however, in certain cases, some mods rely on items not being
# pre-merged and actually spawned, in which case, the items will flow right through
# without being merged.
drops-pre-merge=true
}
Panda Redstone
Un algorithme de mise à jour de Redstone alternatif, mène à moins de mises à jour de blocs quand la Redstone change d’état.
optimizations {
# If enabled, uses Panda4494's Redstone implementation which improves performance.
# See https://bugs.mojang.com/browse/MC-11193 for more information.
# Note: This optimization has a few issues which is explained in the bug report. We are not responsible for any issues this may cause.
panda-redstone=false
}
Intervalle d’ajustement de la sauvegarde automatique
Minecraft Vanilla sauvegarde tous les chunks tous les 900 ticks (45 secondes) par défaut. Si vous voulez augmenter ou diminuer cette intervalle, vous pouvez le changer dans le fichier global.conf
:
world {
# The auto-save tick interval used when saving global player data.
# Set to 0 to disable. (Default: 900) Note: 20 ticks is equivalent to 1 second.
auto-player-save-interval=900
# The auto-save tick interval used to save all loaded chunks in a world.
# Set to 0 to disable. (Default: 900) Note: 20 ticks is equivalent to 1 second.
auto-save-interval=900
}
Réduire l’intervalle augmente la charge du processeur ainsi que la place sur le stockage votre serveur, mais réduit les pertes de données qui peuvent arriver si le serveur le bloque lors d’une coupure de courant. À l’inverse, augmenter l’intervalle de sauvegarde automatique réduit la charge du serveur, mais augmente la quantité de données perdues s’il y a une coupure de courant.
Temps réel
Activer ceci va juste améliorer l’expérience de jeu de vos joueurs quand le nombre de tick par seconde est bas, cela n’améliorera pas les performances. Un ensemble limité d’entités, les tile entities, et le temps du monde utiliseront le temps réel au lieu des ticks pour se mettre à jour.
modules {
# Use real (wall) time instead of ticks as much as possible
realtime=false
}
Un exemple de ceci sont les bébés animaux. Normalement, ils prennent 20 minutes pour devenir adulte. Cependant, si le serveur lagge, chaque animal recevra moins de ticks, augmentant donc le temps qu’il prennent pour grandir. Ce paramètre met à jour certaines logiques pour utiliser le temps réel d’une horloge qui s’est écoulé, plutôt que le nombre de ticks. Cela s’applique également au cassage des blocs, donc plus de « casser les blocs plusieurs fois ».
Refuser les requêtes des chunk
Avertissement
C’est une option expérimentale pour gagner des performances, nous ne vous recommandons pas de l’utiliser avec des mods. Désactivez-la si vous rencontrez des problèmes avec le chargement des tileentities.
world {
# If enabled, any request for a chunk not currently loaded will be denied (exceptions apply for things like world gen and player movement).
# Note: As this is an experimental setting for performance gain, if you encounter any issues then we recommend disabling it.
deny-chunk-requests=false
}
Lorsque cette option est activée, les mods demandant à des zones d’être chargées pour y faire quoi que ce soit seront refusées. Seuls les joueurs et la génération du monde seront autorisés à charger de nouveaux chunks.