1 votes

Comment faire pour qu'un serveur Minecraft moddé fonctionne correctement sur un ordinateur personnel ?

Je cherche à gérer un serveur Minecraft moddé (1.12.2) pour moi et un ami pour jouer dessus. Il y a un certain nombre de mods que nous cherchons à utiliser, et je voudrais savoir ce que je peux faire pour que le serveur fonctionne plus facilement. Pour l'instant, il est très lent, même avec un monde fraîchement généré. En regardant en ligne, toutes les informations que je peux trouver semblent être au moins un peu dépassées, et parfois même un peu trop. lot dépassée. Donc, bien que je cherche à faire fonctionner un serveur particulier, j'apprécierais également toute information sur l'optimisation générale des performances en utilisant les versions actuelles de Java.

Selon LagGoggles, les principaux coupables semblent être les mobs, avec un ou deux (celui qui change à chaque fois que je l'exécute) prenant ~20-30 ms par tick à chaque fois que je lance le profileur.

D'après warmroast, quelque chose fait que le jeu passe un temps considérable à faire du pathfinding pour les moutons, et un temps considérable est passé dans UpdateTimeLightAndEntities, environ 80% des ressources du thread du serveur.

Existe-t-il un mod qui optimise les calculs des entités ? Ou peut-être un moyen de déterminer quels sont les mods qui affectent le plus les performances, afin que je sache lesquels je dois supprimer ou modifier dans les configurations ?

Le serveur fonctionne sur un ordinateur équipé d'un Ryzen 2200G (qui sera probablement bientôt mis à niveau vers un 3600, mais j'espère que cela aidera) et de 16 Go de RAM DDR4-2666. Il dispose également d'une GTX 1060-6GB mais je suis raisonnablement certain que la carte graphique n'a pas d'importance pour ce projet. (Ce serait bien si je pouvais décharger une partie de la charge de calcul sur elle, cependant..... Y a-t-il un moyen de le faire ?)

J'utilise OpenJDK 8, avec la JVM OpenJ9, en démarrant le serveur avec la commande "C:\Program Files\AdoptOpenJDK\jdk-8.0.242.08-openj9\bin\java.exe" -server -XX:+UseG1GC -Xmx8G -Xms8G -Dsun.rmi.dgc.server.gcInterval=2147483646 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -jar forge-1.12.2-14.23.5.2847-universal.jar . Je ne sais pas vraiment à quoi servent la plupart de ces drapeaux, mais on m'a dit qu'ils m'aideraient. Et je pense qu'ils l'ont fait, au moins un peu, mais il y a encore beaucoup de décalage.

3voto

Hearth Points 1106

Eh bien, j'ai fini par trouver une solution. Il s'avère que, puisque la plupart des mods Minecraft sont faits par des amateurs et non par des codeurs expérimentés, il y a quelques mauvaises habitudes de programmation qui leur sont communes, et l'une d'entre elles semble être l'appel explicite de la collecte des déchets, beaucoup trop fréquemment, mangeant des quantités massives de temps CPU.

Ainsi, l'ajout de la -XX:+DisableExplicitGC aux arguments java aide un lot et ensuite diverses autres modifications du collecteur automatique de déchets, trouvées sur ce L'utilisation du processeur est passée de 60 % à 1 % lorsque personne n'est en ligne, et le temps de tic est maintenant assez constant, de 2 à 10 millisecondes, au lieu de tourner au ralenti à 0,3 ms et de monter en flèche à ~400 ms.

Afin de ne pas faire de cette réponse une réponse uniquement basée sur des liens, voici les arguments JVM que l'article de blog ci-dessus propose d'utiliser pour toute version de Minecraft entre 1.8 et 1.15 :

java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=8 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=true -Daikars.new.flags=true -jar serverjargoeshere.jar

El source dit que vous pouvez modifier les arguments -Xmx et -Xms en fonction de la quantité de mémoire que vous souhaitez utiliser, et tout devrait fonctionner correctement. La source ne mentionne pas que ces drapeaux semblent améliorer les performances du client et du serveur, mais peut-être pas au même degré extrême.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X