Pour un projet sur un serveur Minecraft, j'ai utilisé la nouvelle commande /forceload pour garder certains chunks chargés. Il y a probablement environ 10 chunks sans compter les chunks de spawn qui sont forceloadés. J'ai également remarqué que l'utilisation de la mémoire du serveur a augmenté ainsi que les messages "Running behind". Il y a également eu une augmentation du nombre de joueurs, ce qui pourrait aussi être la cause du problème. Dans mon esprit, ce n'est pas très différent que d'avoir un autre joueur, mais est-ce que cela ne met pas un peu plus de pression sur le serveur parce qu'ils sont à différents endroits et ne sont pas regroupés (plutôt 10 joueurs) ? Ceci est en 1.13.2 Minecraft avec le serveur vanilla.
Réponses
Trop de publicités?Oui, à cause d'un bug MC-141482 /forceload
charge neuf chunks pour chaque chunk que vous marquez. Cela signifie effectivement qu'il y a beaucoup plus de morceaux chargés que ce à quoi on pourrait s'attendre, surtout s'ils sont répartis.
En dehors de cela, vous avez probablement des choses qui se passent dans ces morceaux. C'est généralement plus important que le nombre de morceaux en soi. Par exemple, désactiver les lignes de redstone ralentit beaucoup le serveur, de même que mettre des entités en collision en un seul endroit et déplacer des blocs en l'air, pour ne citer que quelques exemples.
Si vous recevez déjà des messages "Can't keep up", c'est que le serveur est surchargé et que vous devriez envisager de faire quelque chose pour y remédier, par exemple en l'exécutant sur un appareil plus puissant, en réglant la distance de rendu plus basse ou en optimisant les zones toujours chargées pour éviter les décalages.
"Beaucoup" peut être une surestimation. Par défaut, le serveur exploite des chunks dans un rayon de 10 taxis (pour un total de 21x21 ou 441 chunks). src autour du joueur. Donc /forceload
réglé sur la zone 19x19 de manière efficace ( MC-141482 ) met l'équivalent de la charge d'un joueur seul, moins les mobs hostiles et d'autres charges qui ne se produisent qu'en présence réelle du joueur. Si vous chargez une douzaine de morceaux ( /forceload
2 morceaux en chargeront 12...), ce n'est pas un si gros problème.
Évidemment, l'impact dépend fortement de ce qui se passe dans ces morceaux. Les chariots de mine avec trémies créent beaucoup de lag (même lorsqu'ils sont immobiles, par exemple lorsqu'ils sont plantés dans le sol de vos fermes par rapport aux trémies standard). Les mobs comme les villageois et les golems provoquent un décalage important. Les engins de pierre rouge, surtout s'ils ne sont pas protégés par une mise à jour de la lumière, peuvent provoquer un décalage. Les observateurs uniques ne sont pas un problème, mais remplir de grands volumes avec ceux-ci (fermes de canne à sucre ou de citrouille) peut devenir un fardeau. Par contre, les fermes aléatoires basées sur des tics avec transport d'eau, comme les cactus, sont assez légères, prenant de la RAM mais peu de temps CPU.
Faites également attention à ne pas charger accidentellement plus de morceaux que nécessaire. Par exemple, une trémie avec un objet à l'intérieur, dirigée d'un chunk chargé vers un chunk non chargé, le charge, même s'il n'y a rien pour recevoir cet objet (et s'il y a d'autres trémies dirigées vers d'autres chunks, elles sont chargées aussi - donc des "pipelines" de trémies peuvent charger un tas de chunks que vous ne vouliez pas charger. D'un autre côté, cela peut être un bon moyen d'étendre votre zone de chargement de morceaux sans créer de frontières excessives. Chargez 1 chunk central d'une ferme de 48x48, et ajoutez une zone de collecte de 1 chunk en le chargeant avec une trémie dirigée vers lui depuis l'un des chunks de bordure, pour un total de 10 au lieu de 12.