Minecraft Server Multicore?
Guten Tag,
ich habe einen Minecraft Server auf meinem Raspberry Pi 4 (Linux) und habe heute gemerkt, dass der Server nur auf einem Kern läuft. Nun wollte ich fragen, ob es via Plugin oder Befehl in der start.sh - Datei möglich ist, den Server auf allen vier Kernen laufen zu lassen.
Würde mich über eine Antwort freuen!
3 Antworten
Die hauptsächliche Gamelogik läuft nur in einem einzelnen Thread, das ist unmöglich auf mehrere Cores auszuweiten. Ein paar wenige Dinge laufen asynchron, das allermeiste aber eben in diesem einen Thread.
Das obige gilt für alle "klassichen" Server-JARs (Spigot, Bukkit, Paper, ...)
Eine vollständige Neuimplementation mit Multithreading wäre Minestom: https://minestom.net/
Beachte aber, dass darauf keine Spigot Plugins laufen, du hast aber dennoch die Möglichkeit, Plugins dafür zu schreiben.
Hab hier was gefunden, das evtl hilft:
-server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC
-XX:+CMSIncrementalPacing -XX:ParallelGCThreads=7 -XX:+AggressiveOpts
-Xms1G -Xmx8G -jar server_file.jar
Dadurch wird Java gezwungen, alle verfügbaren Kerne zu nutzen. Voraussetzung ist allerdings JDK, also nicht nur das JRE
Bei meinem Raspberry kommt diese Meldung:
start.sh: line 2: -server: command not found
start.sh: line 3: -XX:+CMSIncrementalPacing: command not found
start.sh: line 4: -Xms1G: command not found
Minecraft Server nutzen trotzdem nur einen hauptthread. Nur nebensächliche Berechnungen können auf andere Kerne verteilt werden (leider).
Ein Raspberry Pi ist leider nicht wirklich für einen Minecraft Server geeignet durch die geringe Single Core Performance. Am besten einfach nen günstigen Minecraft Server anmieten.
Kann man denn auf eine bestehende Minecraft Vanilla Map via Minestom spielen?