Comment puis-je exécuter un serveur Minecraft sur plusieurs processeurs CPU?

Je travaille sur la mise en place d'un serveur Minecraft sur une machine que j'ai à la maison. Cette machine particulière dispose de deux CPU quad-core fonctionnant à 2.0Ghz, donc je souhaite profiter du nombre de noyaux et exécuter un serveur avec 4 ou 6 des noyaux. Mon serveur de choix est CraftBukkit, dont la dernière version est craftbukkit-1.4.7-R1.0 et lancé avec un script de démarrage de:

"C:\Program Files\Java\jre7\bin\java.exe" -Xms1G -Xmx8G -jar craftbukkit-1.4.7-R1.0.jar" 

Le Minecraft Wiki dit:

Les serveurs Minecraft, à partir de 1.1.0, peuvent utiliser plusieurs noyaux, donc maintenant ils ne resteront pas au ralenti.

Mais ne se développe pas vraiment sur ce point.

Mes questions, alors:

  • Est-il possible de définir le nombre de noyaux utilisés par le serveur?
  • Comment puis-je le faire – via des options de démarrage ou d'autres méthodes?
  • Est-ce que ça vaut vraiment le coup et cela marrierait-il beaucoup de choses avec beaucoup de joueurs?

Si vous utilisez le JDK au lieu du JRE, vous pouvez utiliser la ligne de commande suivante pour forcer le JDK à utiliser tous les noyaux disponibles pour optimiser Java lui-même ( source ):

-server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=7 -XX:+AggressiveOpts -Xms1G -Xmx8G -jar craftbukkit-1.4.7-R1.0.jar

Comme vous utilisez clairement Windows, avez-vous considéré YAMS ? (Renseignements complets: je l'ai fait). YAMS fera tout cela pour vous

Est-il possible de définir le nombre de noyaux utilisés par le serveur?

  • Oui, c'est possible, mais pas par une méthode que vous envisagez peut-être.

Tout se déroule dans le cadre d'un processus sur le Gestionnaire des tâches, de sorte que vous pouvez voir la quantité de puissance du processeur (en%) que prend le processus, les noyaux requis pour l'utiliser et la RAM (mémoire) du processus particulier (programme) utilise.

Je n'ai pas touché Bukkit beaucoup, donc je ne peux pas vous dire exactement ce que vous devrez faire, mais si vous deviez le faire via les méthodes Vanilla (l'application du serveur MC original), vous pouvez trouver le processus dans lequel il se trouve (par exemple, Minecraft Elle-même utilise le processus 'javaw.exe') et cliquez avec le bouton droit de la souris sur la tâche spécifique et choisissez "Définir l'affinité …" Cela vous permettra de choisir les noyaux que vous souhaitez exécuter le serveur. Je ne sais pas si cela fonctionne avec plusieurs processeurs (comme ce que je vois, c'est la situation). Je pense qu'il faudra que ce soit un type de "voir par vous-même".

Comment puis-je le faire – via des options de démarrage ou d'autres méthodes?

  • La méthode que je vous décris est:

    1. Accédez au Gestionnaire des tâches (tous les moyens: Ctrl + Alt + Del, Démarrer> Exécuter> taskmgr.exe, etc.)

    2. Trouvez le processus que votre application serveur exécute, (il existe également diverses façons de le faire, je ne suis pas familier avec une «manière facile», en plus de cliquer avec le bouton droit de la souris sur le programme dans l'onglet «Applications» de Task Manager et en cliquant sur " Aller au processus ")

    3. Une fois que vous avez localisé le processus, cliquez dessus avec le bouton droit de la souris et vous verrez près du bas de la fenêtre, "Définir l'affinité …"

    4. Changez les noyaux et les processeurs que vous souhaitez que votre programme serveur utilise.

Est-ce que ça vaut vraiment le coup et cela marrierait-il beaucoup de choses avec beaucoup de joueurs?

  • De ma compréhension, Minecraft utilise la CPU pour charger le monde et utilise la RAM pour tout ce qui est basé sur un joueur (mélangeant CPU et RAM pour les interactions mondiales), donc je dirais que votre meilleur pari est d'avoir des processeurs puissants et beaucoup de RAM. La RAM vous rapprochera pour plus de joueurs que le processeur, mais un meilleur processeur supportera plus d'interactions mondiales des joueurs et empêchera votre monde de générer des «morceaux clairs" (la moitié d'une montagne brusquement dans des plaines, etc.) comme vous en avez plus Les gens explorent le monde à la fois et interagissent avec lui.

Si quelqu'un trouve quelque chose de mal à propos de mon article, n'hésitez pas à me corriger. Je ne vais que de mes hypothèses et de mon expérience de gérer mon propre serveur pour env. Une demi-année.