Minecraft-Server auf Raspberry Pi 2

Buttersniper

Lt. Junior Grade
Dabei seit
Mai 2008
Beiträge
393
Hallo zusammen,

ich arbeite aktuell an einem kleinen Raspberry Pi Projekt, bei dem ich einen Minecraft-Server aufsetzen und via Hamachi-VPN Tunnel für mich und ein paar Freunde zugänglich machen will.

Begonnen hat das ganze auf Raspbian. Ich habe dort erfolgreich einen in .net geschriebenen Minecraft-Server zum laufen gebracht:

https://cuberite.org/

und konnte mich sogar mit installiertem und konfiguriertem Hamachi von meinem Windows-Rechner mit aktuellem Minecraft Client drauf verbinden. So weit so gut.

Initiales Problem
Jetzt ist der in .net geschriebene Minecraft-Server aber lange nicht auf dem stand des "offiziellen" Minecraft-Servers (Java). So kommt es z.B. dass Creeper explodieren können wenn sie außerhalb meiner Hütte heraumlaufen und ich mich bei geschlossener Tür darin befinde. Es gibt noch einige weitere Unterschiede zum Original; hauptsächlich in dem Verhalten / der Physik des Spiels.

Lösungsansatz
Also habe ich mir mal die Mühe gemacht und versucht, dass ganze unter Java zum laufen zu bringen. Tatsächlich hat man sich bei Oracle dazu überwunden eine für ARM Prozessoren (wie im Raspberry) laufende Java-Version zu entwickeln, u.a. da bereits Millionen dieser Dinger im Umlauf sind. Nach etwas gefriggel habe ich diese auch installiert und zum Laufen bekommen.

Neues Problem
Jetzt gibt es aber folgendes Problem: Minecraft ist (bekanntlicher weise) sehr CPU-lastig. Wenn ich also den Java Minecraft-Server mit der soeben installierten JRE starten möchte, klappt das, braucht aber unendlich lange. Bis man mal zu dem Punkt "Preparing spawn area: 0%" kommt, vergehen Minuten. Und dann braucht er schätzungsweise bis zu einer Stunde um den Server komplett zu starten (habe bei max. 20% abgebrochen, weil man für jedes Prozent gerne mal eine Minute oder länger wartet). Das liegt m.E. hauptsächlich daran, dass Java hier nur einen Kern verwendet (in htop ersichtlich).

Neuer Lösungsansatz
Ich habe bereits versucht mit

taskset -c 0-3 Java -Xmx700M -Xms256M -jar minecraft_server.1.11.2.jar nogui
Java beizubringen, bitte alle Prozessorkerne zu verwenden (Markierter Befehl soll das wohl tun), hat aber nichts gebracht. Java nutzt hier immer nur einen Kern. Interessanter weise springt die Last von Kern zu Kern, es ist aber immer nur einer zu 100% ausgelastet.

Ich habe das ganze Prozedere auch mal unter Ubuntu Mate probiert, gleiches Ergebnis (liegt also nicht an Raspbian, augenscheinlich).

Offene Fragen
Meine Fragen an dieser Stelle lauten:

  • Gibt es andere Befehle zur Ansteuerung mehrerer Prozessorkerne, die man mal ausprobieren könnte?
  • Laut Internet kann Minecraft nur einen Kern verwenden; es soll also an der Software liegen. Heißt das, das mein Vorhaben aussichtlos ist?
  • Gibt es vielleicht alternative Minecraft-Server oder konfigs die mir weiterhelfen könnten, mein Ziel zu erreichen einen möglichst originalgetreuen Minecraft-Server auf meinem Pi zum Laufen zu bringen?
  • Weitere Ideen...?

Ich bin für jeden Rat dankbar.

Viele Grüße
 

Kenny [CH]

Commodore
Dabei seit
Mai 2008
Beiträge
4.133
Da gibt es sicher viele Möglichkeiten, wieso du mit dem Minecraft Server Probleme hast.

http://minecraft.gamepedia.com/Tutorials/Setting_up_a_server#Start_the_Minecraft_server:
Both hosting and playing on the same machine is not a recommended practice unless you have a powerful computer (e.g. more than 6 gigabytes of ram (5 for the server, 1 for the client, and remainder for system).

Hier wird z.B. gesagt, das der Server min. 5GB Ram haben sollte. Da wird es mit dem Raspberry PI schwierig (Die Version 2 Model B hat "nur 512MB")
 

HoschY1987

Cadet 3rd Year
Dabei seit
Dez. 2009
Beiträge
63
Ich hab meine minecraft Server unter Linux immer mit spigot (bzw damals bukkit) aufgesetzt. auf einem "echten" Root (mit genug CPU Leistung), bin ich der Meinung, wurde auch mehr als nur ein Kern angesprochen.
https://hub.spigotmc.org/jenkins/job/BuildTools/

Die Chance, dass ihr wirklich problemfrei (oder angenehm) auf einem Server, der nur so wenig ram/cpu-leistung zur Verfügung gestellt bekommt, spielen könnt, ihr eher gering denke ich.


MfG
 

Buttersniper

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Mai 2008
Beiträge
393
@Kenny [CH]
Ich habe natürlich nicht vor den Raspberry auch als Client zu verwenden, er soll ausschließlich als Server eingesetzt werden. Der Raspberry Pi 2 Model B hat 1GB Ram (nicht 512MB); wobei mir klar ist, dass auch das weit unter den Anforderungen für einen ordentlichen Server steht. Es sollen aber ohnehin maximal 4 Personen gleichzeitig zocken können. Die Limitierung bei kostenlosen Hamachi-Netzwerken sind 5 Clients pro Netzwerk, einer davon ist der Raspberry selbst.

Generell: Was nach Blick auf den Taskmanager limitiert ist die CPU, nicht der Speicher.

@HoschY1987

------------
EDIT: Arbeite mittlerweile nach Anleitung. Nach ein paar Problemen läuft der Build jetzt gerade. Bin nebenbei in Kommunikation mit dem Chat auf der Webseite von BuildTools bzw. Spigot. Danke auf jeden Fall für deinen Hinweis!!!
-------------

Ich hab mir die von dir gepostete Seite mal angeschaut. Ich muss dazu sagen, dass ich noch nie mit bukkit, spigot oder dergleichen zu tun hatte.

Wenn ich das richtig verstehe, handelt es sich bei bukkit um eine API und bei spigot um ein Plugin, dass auf dieser API aufbaut. In verschiedenen Anleitungen die man dazu findet wird auch beschrieben wie man das herunterlädt und installiert. Aber was ich bisher nicht gefunden habe, ist wie man das an einen bestehenden Minecraft Server (also das JAR File) ankoppelt.

- Kannst du mir sagen wie man den Kram an den Minecraft Server koppelt?
- Was verstehe ich unter einem "echten" Root (Sorry, bin auch in der Linuxwelt neu)?

Würde das gerne mal ausprobieren. Wenn das wirklich einen Performancezuwachs gibt, wäre ich ja sehr froh. :)
 
Zuletzt bearbeitet:

Phneom

Lt. Commander
Dabei seit
Apr. 2013
Beiträge
1.851
Mit top oder htop kannst du bequem die Last anschauen. Freunde dich generell einfach mit SSH an.
Generell würde ich dir eher raten einen Server zu mieten, also einen fertigen Minecraft Server. Wenn du selber sagst das du nicht die Ahnung von Linux oder generell Servern hast wäre das nicht unbedingt eine Empfehlung für dich dir nen Root zu besorgen. Lokal ist das immer so die Sache. Stromkosten, Brandschutz und zu guter letzt halt sehr oft Lautstärke und Anbindung.
Soweit ich weiß ist der Pi als Minecraft Server auch zu schwach.
Mit echter Root soll gemeint sein ein echter Server im Rechenzentrum, würde ich dir mangels Erfahrung und wissen aber nicht empfehlen.
 

Buttersniper

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Mai 2008
Beiträge
393
@Phenom
Jap, hatte htop bereits verwendet.

Daheim würde ich mir ohnehin keinen "echten" Server aufstellen und konfigurieren. Ich könnte mir das Wissen schon aneignen, komme aus der IT, habe aber keine Zeit mich darum zu kümmern und wie du schon sagst Stromkosten, Lautstärke etc...

Es ging hierbei eher um ein kleines privates Fun-Projekt. Wäre cool gewesen einen 24/7 Minecraftserver auf Hamachi erreichbar zu machen.

Ergebnis
Ich habe mittlerweile alles nach Anleitung von spigotmc.org ausgeführt und mit deren Hilfestellung sogar zum Laufen bekommen. Es ist allerdings derart unperformant, dass das so nie sinnvoll laufen wird. Es hat sich herausgestellt, dass das Bottleneck hierbei der Prozessor des Raspberry Pi ist. Es wird generell nur eine CPU verwendet (auch in gemoddeten Minecraft-Servern) und der Raspberry Prozessor ist einfach... kacke.

Ich danke allen für die wertvollen Tipps. War ein interessantes Projekt, ist aber so auf Pi's nicht umsetzbar. Ich werde auf die Alternative https://cuberite.org/ zurückgreifen und damit meinen 24/7 Server laufen lassen. Besser als gar nichts. :)
 

Phneom

Lt. Commander
Dabei seit
Apr. 2013
Beiträge
1.851
Dann hol dir doch lieber nen VServer mit 1-2 Kernen, ist deutlich besser alleine schon wegen der Anbindung wegen ;)
 
Top