PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MineCraft Server - Hardware zu schwach ?


BigKid
2017-05-09, 12:06:37
Hi

ich habe aktuell einen kleinen MineCraft Server mit dem ModPack für Gronkh Life in the Woods Renaissance laufen...
Maximal sind 5 Leute drauf...

Ich habe der Java Engine schon die 2t höchste Prio gegeben und etwas mehr RAM als die original Config vorschreibt...

Der "Server" ist mein "HomeServer" mit
Intel i5 3330S
8 GB Ram

Da laufen die meiste Zeit keine Hintergrundtasks wenn ich ihn nicht gerade zum konvertieren von Videos ackern lassen oder zum iPad transcode... Aber dann zockt keiner (bzw hat auch keiner zu Zocken ;) ).

Trotzdem laggt der Server immer mal wieder hinterher...
Sieht man dann auch im Log dass er Tickets verwirft...
Hängt eventuell auch mit der Gegend zusammen in der die Leute gerade rummlaufen

Kann man das irgendwie noch optimieren (mal so als Minecraft Neuling gefragt)... Kennt jemand den Pack und hat Ideen was da so CPU Zeit kostet ?

Es sieht mir aktuell so aus als ob der MineCraft Server nur einen Kern richtig belastet ... Braucht der Single Core Performance ?

lumines
2017-05-09, 12:09:21
Die Startoptionen und wie viel RAM du tatsächlich zugeteilt hast, wären interessant.

Am OS und der Priorität wirst du wenig optimieren können. Interessant sind praktisch nur die Optionen der JVM und Garbage Collection.

BigKid
2017-05-09, 12:48:01
Die Startoptionen und wie viel RAM du tatsächlich zugeteilt hast, wären interessant.

Am OS und der Priorität wirst du wenig optimieren können. Interessant sind praktisch nur die Optionen der JVM und Garbage Collection.

Schonmal vielen Dank für die Antwort(en).

Also ich starte das Ding aktuell so:
start /high java -Xmx3G -Xms2G -jar "Server.jar" nogui

High scheint mir am besten zu laufen...

Hmm... Würde ne SSD da mehr Dampf geben ? Laggt er eventuell wenn er die Daten auf Platte sichert ? Da das Ding bisher eigentlich nur als Datengrab fungiert hat ist (noch) keine SSD drin...
Brauche ich Single Core oder Multi-Core performance...

EDIT: Hatte oben zweimal Xms geschrieben - das war falsch abgetippt (bin per RDP Client aufm Handy kurz drauf zum gucken)

Ganon
2017-05-09, 12:55:45
Ich hatte auch mal ein bisschen für meine Freundin nachgesehen, bei mir hatten folgende Argumente geholfen:

-Xmx6G -Xms6G -Xmn3G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+UseParNewGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking

War jedoch nur für den Client an sich, aber schadet bei einem Server auch sicherlich nicht. Damit stiegen ihre fps ziemlich dramatisch.

Man muss dazu aber sagen, dass Life in the Woods alleine schon eine ziemliche Ressourcen-Sau ist und man nicht unbedingt mit dauerhaft flüssiger Performance rechnen sollte. Eine lokale Multiplayer-Session mit ihr war schon teilweise echt ruckelig.

lumines
2017-05-09, 13:00:00
Du hast da zweimal einen Startwert, aber eins von beiden sollte -Xmx sein. Lass einmal den Startwert weg und gib nur das Maximum an.

Du könntest einmal einen anderen Garbage Collector mit diesem zusätzlichen Parameter ausprobieren:

-XX:+UseG1GC

Das schreibt Oracle dazu:

The Garbage-First (G1) collector is a server-style garbage collector, targeted for multi-processor machines with large memories. It meets garbage collection (GC) pause time goals with a high probability, while achieving high throughput. The G1 garbage collector is fully supported in Oracle JDK 7 update 4 and later releases. The G1 collector is designed for applications that:

* Can operate concurrently with applications threads like the CMS collector.
* Compact free space without lengthy GC induced pause times.
* Need more predictable GC pause durations.
* Do not want to sacrifice a lot of throughput performance.
* Do not require a much larger Java heap.



http://www.oracle.com/technetwork/tutorials/tutorials-1876574.html

Auf jeden Fall würde ich immer nur jeweils einen neuen Parameter ausprobieren, ansonsten kommt man komplett durcheinander und kann nicht abschätzen, was jetzt wirklich positiv und was sich eventuell sogar negativ auswirkt.

Die JVM sucht sich normalerweise schon Optionen aus, die sinnvoll erscheinen, aber gerade bei so Sachen wie Minecraft kann man da mit ein paar erzwungenen Einstellungen manchmal ein bisschen besser auf den Anwendungszweck hinoptimieren. Die JVM kann so an sich wahrscheinlich nicht wissen, ab wann die Pausen durch die GC für einen Spieler "nervig" erscheinen. Bei Minecraft will man auch eher auf kurze GC-Pausen und weniger auf Durchsatz optimieren. Dass die Welt etwas langsamer aufploppt, kann man noch verkraften, aber wenn eine Mob-Horde angelaggt kommt, dann ist das schnell frustrierend.

Die I/O-Performance ist bei Minecraft aber auf jeden Fall ziemlich wichtig. Gerade dann, wenn neue Chunks generiert werden.

Ansonsten könntest du auch einmal Spigot als Server ausprobieren. Der ist mehr auf Performance getrimmt und man kann mehr Einstellungen vornehmen, um die Performance zu optimieren. Einige Optionen können manche Spielmechaniken brechen, aber andere sind relativ harmlos und haben nur einen geringen Einfluss auf das Spiel. Man kann z.B. die Tickrate von Mobs ab einer gewissen Entfernung verringern. Das hat bei mir mit den größten Unterschied gemacht. Die Standardeinstellungen bei Spigot sind aber schon sehr gut und eine klare Verbesserung zum normalen Server, ohne irgendwelche großartigen Dinge dabei zu brechen.

BigKid
2017-05-09, 23:30:30
Vielen Dank für eure Antworten...

Ich habe Aufgrund der Rückmeldung zur IO Lastigkeit eine SSD eingebaut die ich noch hier rummfliegen hatte...
Ferner noch die Option für die Garbage Collection -XX:+UseG1GC

Jetzt mal abwarten wenn wir wieder zusammen kommen und jeder in eine andere Richtung loslatscht...

BigKid
2017-05-19, 13:17:02
Also mit der SSD ist es schon besser geworden...

Trotzdem geht das Ding total in den Keller wenn jemand ein neues Biom betritt - dann fliegen manche Leute sogar raus...
Und auch wenn wir an unterschiedlichen Ecken unterwegs sind lagt es...

Ich denke jetzt drüber nach noch die CPU zu wechseln... Wieder die Frage - ist der Minecraft Server Multi-Threaded oder braucht der vor allem Single Core Leistung ?
Wenns Multi-Core ist würde HT ja vielleicht noch helfen...


Ausserdem frage ich mich ob der Hub den ich dazwischen habe (ein mindestens 5 Jahre alter Netgear GB Switch) vielleicht mit zuviel "Verkehr" ein Problem hat...
Oder meine Leitung ist zu schlecht (VDSL 50000) ?

Ganon
2017-05-19, 13:33:38
Wenn dann mehr RAM und dem Server auch mehr RAM zuweisen.

edit: Aber ich sag es generell: Life in the Woods ist eine Ressourcen-Sau und im Endeffekt kannst du alles aufbessern und es wird Eckfall extrem scheiße laufen. Da hilft dann eine 20% schnellere CPU nicht, wenn es fast auf 0 runter bricht.

BigKid
2017-05-19, 13:45:57
Wenn dann mehr RAM und dem Server auch mehr RAM zuweisen.

edit: Aber ich sag es generell: Life in the Woods ist eine Ressourcen-Sau und im Endeffekt kannst du alles aufbessern und es wird Eckfall extrem scheiße laufen.

Wieviel Ram solls denn werden ? Ich hab schon das doppelte der Vorgaben der orginalen Start.bat gegeben...

Im original start.bat war noch ein param drinn, den JAVA nicht mehr unterstützt... Vielleicht wär das noch ne Spur... Irgendwas mit MaxHeap oder so...

BigKid
2017-05-19, 13:49:12
Wenn dann mehr RAM und dem Server auch mehr RAM zuweisen.

edit: Aber ich sag es generell: Life in the Woods ist eine Ressourcen-Sau und im Endeffekt kannst du alles aufbessern und es wird Eckfall extrem scheiße laufen. Da hilft dann eine 20% schnellere CPU nicht, wenn es fast auf 0 runter bricht.
Naja - was ich SEHE ist dass der Server sich beschwert er käme nicht nach und müsse "ticks" verwerfen... Die Zahl dahinter ist aber mit der SSD schon deutlich kleiner geworden - wir reden jetzt von 20-100 Ticks im normalfall... ohne die SSD war das gerne schonmal 4 stellig...
Von daher hatte ich Hoffnung dass ne 25-30% schnellere CPU es vielleicht dann reist...

Das Spieler rausfliegen wenn einer ein neues Biom betrifft und dass das Ding machmal einfach so abstürzt macht mir mehr sorgen...
Besteht ne Chance dass der Server unter Linux besser läuft ? Ich könnte das mit Hyper V mal ausprobieren - ne Linux VM hab ich eh schon auf der Maschine... (die isses aber nicht die stört - schon getestet...)

UPS. Sorry für 2mal Post...

Ganon
2017-05-19, 13:51:19
Wie gesagt, ich hatte ja eine Argumenten-Liste gepostet. Dort werden 6GB RAM vergeben von deinen 8GB. Musst halt gucken ob deine Installation das mitmacht.

Es bleibt weiter das Problem, dass die Welt-Generation bei LitW eben verdammt viel Ressourcen frisst. Eine um ein paar % schnellere CPU wird dir da nicht helfen, vermute ich.

Am Ende ist wirklich dein Upload am Ende dabei. Ich würde da nicht so elendig viel Geld in die Sache vergraben, ohne konkrete Hinweise.

Ganon
2017-05-19, 13:54:29
Naja - was ich SEHE ist dass der Server sich beschwert er käme nicht nach und müsse "ticks" verwerfen... Die Zahl dahinter ist aber mit der SSD schon deutlich kleiner geworden - wir reden jetzt von 20-100 Ticks im normalfall... ohne die SSD war das gerne schonmal 4 stellig...


Was aber schon mal zeigt, dass deine CPU nicht der Flaschenhals zu sein scheint. Probiere erst mal andere JVM-Parameter und mehr RAM dem Server zuzuweisen, bevor du dir da blind einfach eine neue CPU rein packst.

Eine neue CPU kannst du im Zweifel immer noch kaufen ;)

edit:
Und behalte dabei doch einfach mal CPU-Auslastung, Speicherverbrauch und Upload im Auge.

BigKid
2017-05-19, 13:58:23
Wie gesagt, ich hatte ja eine Argumenten-Liste gepostet. Dort werden 6GB RAM vergeben von deinen 8GB. Musst halt gucken ob deine Installation das mitmacht.

Es bleibt weiter das Problem, dass die Welt-Generation bei LitW eben verdammt viel Ressourcen frisst. Eine um ein paar % schnellere CPU wird dir da nicht helfen, vermute ich.

Am Ende ist wirklich dein Upload am Ende dabei. Ich würde da nicht so elendig viel Geld in die Sache vergraben, ohne konkrete Hinweise.
Hmm... Upload guck ich mir mal an... Dann in der Fritzbox vermute ich...

Was deine Command Line Betrifft:
-Xmx6G -Xms6G -Xmn3G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+UseParNewGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking

Sind das nicht schon 9 GB ?

Ganon
2017-05-19, 14:01:09
Du kannst die ersten 3 Parameter noch mal um 1 GB senken, im Zweifel. Ansonsten -> Ausprobieren.

=Floi=
2017-05-20, 16:56:26
edit: Aber ich sag es generell: Life in the Woods ist eine Ressourcen-Sau und im Endeffekt kannst du alles aufbessern und es wird Eckfall extrem scheiße laufen. Da hilft dann eine 20% schnellere CPU nicht, wenn es fast auf 0 runter bricht.

das läuft auch mit nem 4,5ghz haswell im singleplayer nicht sauber.

lumines
2017-05-20, 17:04:17
Hast du schon Spigot ausprobiert? Das bringt wahrscheinlich mehr als die CPU zu upgraden.

BigKid
2017-05-30, 13:40:47
Hast du schon Spigot ausprobiert? Das bringt wahrscheinlich mehr als die CPU zu upgraden.
Ich habe vor ein paar Tagen auf Reddit einen Channel gefunden "Admincraft" ...
Dort wurden Parameter gepostet die ich nun verwende und die haben schon etwas Linderung gebracht...

Was aber wirklich richtig was gebracht hat war die Sichtweite in den Server Properties von 15 auf 10 zu senken...
Taste mich gerade wieder rann wo der Sweetspot liegt... bin jetzt bei 11...

Aber da ich BukkitGUI nutze um den Server automatisch zu starten und nach nem Crash wieder hochzufahren werde ich mir Spigot mal ansehen...
Danke !

BigKid
2017-07-06, 12:06:00
Kleines Update:
Ich habe den Server nun auf einen i5-7500 aufgerüstet mit 16GB DDR4.
Ich konnte die Sichtweite auf 15 erhöhen und habe keinen Ärger mehr... Ich vermute dass auch der schnellere Speicher dazu beiträgt...
Laut Auslastung war die Speichermenge eigentlich nicht das Problem - aber wer weiss... Vielleicht war es auch rein das Speicher-Upgrade...

lumines
2017-07-06, 12:56:13
Ich hätte ja eher auf Spigot umgestellt. Da hatte ich sogar mit einem alten Ivy Bridge mit 2,x GHz keine Probleme. Spigot kann auch optional Chunks in bestimmten Intervallen aggressiver aus dem Speicher werfen, wenn die nicht mehr gesehen werden, was enorm viel RAM spart. Ich hatte mit 4 GB nie Probleme. Dass der Vanilla-Server zu viel RAM braucht, ist ein bekanntes Problem. Eventuell kannst du in Kombination mit der Hardware für noch mehr Puffer nach oben sorgen.

Exxtreme
2017-07-06, 13:14:50
Ich hatte auch mal ein bisschen für meine Freundin nachgesehen, bei mir hatten folgende Argumente geholfen:



War jedoch nur für den Client an sich, aber schadet bei einem Server auch sicherlich nicht. Damit stiegen ihre fps ziemlich dramatisch.

Man muss dazu aber sagen, dass Life in the Woods alleine schon eine ziemliche Ressourcen-Sau ist und man nicht unbedingt mit dauerhaft flüssiger Performance rechnen sollte. Eine lokale Multiplayer-Session mit ihr war schon teilweise echt ruckelig.
Der CMS-Collector ist eher nicht zu empfehlen bzw. nur wenn man Java < 8 nutzt und der ParallelOldGC unzumutbar lange Pausen generiert. Er hat den Nachteil, dass hier der Heap fragmentiert wird was den Durchsatz wirklich sehr arg drückt. Die Heap-Fragmentierung sorgt auch dafür, dass er ab und zu auf den langsamen SerialGC für den eden space zurückfallen muss. Und er braucht zusätzlichen Platz weil er bereits aktiv werden muss bevor der Heap voll ist. Weil ansonsten der sog. "concurrent mode failure" droht. Wenn der auftritt dann gibt es wieder einen Fallback auf den SerialGC.

Der SerialGC stoppt die gesamte Anwendung und für die Garbage Collection mit einem einzigen Thread durch. Und das ist leider sehr langsam.

Wenn man den CMS-Collector nutzen will dann auf keinen Fall -XX:+CMSClassUnloadingEnabled als Parameter vergessen, speziell bei länger laufenden Servern. Wenn man das nicht tut und die Anwendung einen Classloader Leak hat dann gibt es irgendwannmal einen Permspace-/Metaspace-Error.

Empfehlenswert ist auch noch -XX:+ParallelRefProcEnabled. Damit werden schwache Referenzen mit mehreren Threads gesucht und ggf. weggeräumt.

BigKid
2017-09-14, 09:41:22
Ich hätte ja eher auf Spigot umgestellt. Da hatte ich sogar mit einem alten Ivy Bridge mit 2,x GHz keine Probleme. Spigot kann auch optional Chunks in bestimmten Intervallen aggressiver aus dem Speicher werfen, wenn die nicht mehr gesehen werden, was enorm viel RAM spart. Ich hatte mit 4 GB nie Probleme. Dass der Vanilla-Server zu viel RAM braucht, ist ein bekanntes Problem. Eventuell kannst du in Kombination mit der Hardware für noch mehr Puffer nach oben sorgen.
Ich habe es einfach nicht hinbekommen Spigot und den ModPack zur Kooperation zu bewegen... :(
Ich nutze lediglich Bukkit V2 um den Server zu "managen"...

lumines
2017-09-14, 12:16:22
Hm, das ist echt schade. Mit Spigot habe ich Minecraft ziemlich lange auf einem relativ schwachen vServer laufen lassen und hatte damit nie Probleme. Es macht schon sehr viel aus.