[TL]Forum

Games => Minecraft => Topic started by: Dave on Juni 30, 2011, 12:55:30 PM

Title: Minecraft performance tweaks
Post by: Dave on Juni 30, 2011, 12:55:30 PM
Nachdem wir nen dicken dicken server haben, viel ram, aber immer noch alles lagt wie man so hört, hier mal einiges zu performance.

was mich primär interessiert: wenn doomroxxors redstone musik schaltung aktiviert wird, lagt es dann immer noch wie hölle?

desweiteren habe ich folgende interessante dinge gefunden:
http://www.reddit.com/r/mcservers/comments/ez2tf/improve_minecraft_server_performance/
die foren diskussion dazu: http://forums.bukkit.org/threads/how-to-improve-mincraft-server-performance.662/

der tip mit java 1.7 ist auch interessant (focus liegt auf den client) http://www.reece-eu.net/phpBB3/viewtopic.php?f=10&t=1324 - auch die advanced command line parameters habe ich schon (unerklärt) auf reddit gesehen
der java 1.7 tip taucht hier und da noch an anderer stelle auf

wenn man so liest (auch die kommentare) scheint disk performance das a und o zu sein. ramdisk könnte wunder wirken.
Title: Re:Minecraft performance tweaks
Post by: Dave on Juni 30, 2011, 12:57:40 PM
also mal zusammenfassen bisher:

Title: Re:Minecraft performance tweaks
Post by: µQ on Juni 30, 2011, 01:45:57 PM
Wie groß wäre die ramdisk dann?
Title: Re:Minecraft performance tweaks
Post by: TheJester on Juni 30, 2011, 01:55:42 PM
Also die Redstone Schaltung hat zumindest mit den 500mb nicht wirklich viel ausgemacht wenn ich das richtig sehe. Also jedenfalls kein reproduzierbarer Test

Das Java ist 64bit, mit -d64 kann man "64bit data model" anschalten
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)

2gb ram hat dazu geführt dass sofort einiges derbe gelagged hat, mit 1gb ram weniger.

Xen teilt übrigens die Kerne selbst zu, wenn alle vcpus auf 1 stehen. Ggf kann man das einfach mal hochsetzen.

Bei der Disk Performance habe ich im Schnelltest ca. 110mb/Sekunde. Ich finde das könnte selbst für dieses Java Geraffel reichen. Mit ner Ramdisk haben wir dann noch einen Dienst worauf wir beim Serverrestart aufpassen müssen, das würde ich wenns eben geht verhindern.

Ist Java 1.7 überhaupt 100% Kompatibel zu java6?

Ggf. erstmal ohne den -server Parameter versuchen.

Achso, die Maschine hat übrigens dauerhaft mit und ohne lag ne Load von um die 0.05 und einen Ramverbrauch von <50%. Aber da minecraft jetzt schon seit Start eine CPU Zeit von 1h hat (Pitboss 2h20min) könnte das mit den vcpus wirklich was bringen. Wenn es denn damit umgehen kann.
Title: Re:Minecraft performance tweaks
Post by: TheJester on Juni 30, 2011, 02:05:27 PM
Noch ne Idee:

Das can't keep up in der Konsole ist arg selten, und hängt anscheinend auch nicht mit der Zahl der Spieler zusammen (bei dem einen Mal heute waren nur Moonie und Raeuberbach auf dem Server).

Kann das sein dass der Pitboss vielleicht doch irgendwas seltsames macht? Der macht nämlich nicht viel CPU last und hat dafür doch ne Menge CPU Minuten verbraucht seit Start. Gibts da irgendwo nen Login-Log mit Zeiten?
Title: Re:Minecraft performance tweaks
Post by: jomu78 on Juni 30, 2011, 02:13:09 PM
Hallo zusammen,

also minecraft unwissender aber Java (ein wenig wissend) mal ein paar Kommentare von mir:

-- Java 7 ist noch nicht released, soll aber kompatibel sein. Einer der größten Unterschiede wird wohl sein, dass Java 7 keinen PermGenSpace mehr hat - ein besonderer Speicher. D.h. Java 7 hat das Speichermodell umgesetllt.
-- Die Server Option würde ich nicht weg lassen - die ist genau für server basierte Prozesse gedacht. Start langsamer, bessere Garbage Collection, etc.
- das ist Oracle 1.6.0_24, oder? Sollte dringend auf 1.6.0_26 aktualisiert werden - CPU Patch zum Schließen von einigen Sicherheitslücken
- Man könnte noch mal eine andere Implementierung der JVM testen (jRockit ist meiner Meinung nach jetzt auch freigegeben)
- die Parameter müsste ich mir mal ansehen.

Stehe zur weiteren Java Beratung gerne zur Verfügung.

Gruß
Jörn

Title: Re:Minecraft performance tweaks
Post by: TheJester on Juni 30, 2011, 02:22:03 PM
Hi Jörn,

danke für die Hinweise.. ich habe grade mal eben ein dist-upgrade in sqeeze gemacht, da kamm auch _26 als Update.

Nach Serverlog hatten wir das Lag übrigens heute exakt dreimal direkt beieinander, nämlich um 12:51.
Gestern gabs die Logeinträge einmal um 17:53.
Also jeweils 1x am Tag nach Serverlog. Ich war heute und gestern da nicht drauf, kann also nichts dazu sagen, aber kann das sein dass wir Gespenster oder Clientlag jagen?
Title: Re:Minecraft performance tweaks
Post by: TheJester on Juni 30, 2011, 02:24:38 PM
Quote from: µQ on Juni 30, 2011, 01:45:57 PM
Wie groß wäre die ramdisk dann?

Dank tmpfs immer so groß wie die welt :)
Title: Re:Minecraft performance tweaks
Post by: Dave on Juni 30, 2011, 03:06:44 PM
jester, ich wiederspreche dir ja ungern, aber ich tue es hier mal.

wo fange ich an? ah ja, ramdisk. /tmp ist sowieso tmpfs - und tmpfs ist die bessere ramdisk effektiv. zwar is sie swapbar, aber dafür wird nur soviel ram verwendet, wie auch daten drin liegen. im gegensatz zu ramdiskfs ist tmpfs "tweaked to oblivion" - eine übersicht gibt es hier (http://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux/) - also ist diese ramdisk nur ein parameter in /etc/fstab - kein dienst, nichts neues. 1GB max und gut.

zum anderen ist die annahme 110mb/s sei schnell falsch. die ramdisk dürfte von meinem system ausgehend geschätzt so 2gb/s machen. es geht aber garnicht um den durchsatz als um die mittlere zugrifszeit, die bei ramdisk quasi null ist, und im durchsatz nicht messbar ist. platte = hoch, ramdisk = null. das ist der grund wieso ein os von ssd so schnell bootet - primär zugriffszeit, nicht durchsatz

ich hab hier diverse tests mit ramdisks gemacht, und das bringt so unglaublich viel, das man es sehen muss

mit deinem segen würde ich mich mal dranmachen dies alles umzusetzen. allerdings würde es einen neustart von timelord.de benötigen wegen des /tmp mount targets.

so, jetzt zu java. beim überfliegen der links habe ich durchgehen mehr ram = mehr performance aussagen gefunden. die probleme könnten also vom alten update 24 hergerührt haben. und wenn der tenor der minecraft community ist, dass java7 besser/schneller läuft als java6, wieso nicht?

ich könnte mir auch gut vorstellen, dass die beiden pitbosse sich negativ auswirken - solltest du bei gelegenheit mehr vcpus zuteilen, dürfte das allerdings erledigt sein. ein "segen" der pitbosse ist, dass sie nicht multithreaded sind.

laut björn hat seine redstone schaltung später doch für lag gesorgt. könnte also zum testen geeignet sein. ebenso wie die fetischbox
Title: Re:Minecraft performance tweaks
Post by: TheJester on Juni 30, 2011, 03:14:33 PM
Quote from: Dave on Juni 30, 2011, 03:06:44 PM
jester, ich wiederspreche dir ja ungern, aber ich tue es hier mal.
wo fange ich an? ah ja, ramdisk. /tmp ist sowieso tmpfs - und tmpfs ist die bessere ramdisk effektiv. zwar is sie swapbar, aber dafür wird nur soviel ram verwendet, wie auch daten drin liegen. im gegensatz zu ramdiskfs ist tmpfs "tweaked to oblivion" - eine übersicht gibt es hier (http://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux/) - also ist diese ramdisk nur ein parameter in /etc/fstab - kein dienst, nichts neues. 1GB max und gut.
Ja, das mit dem Dienst war natürlich verkehrt. ich meinte das im Sinne von "Ramdisk Inhalt persistent machen". Also ein initscript dafür (->"Dienst")

Mir gehts primär darum dass das auch gleich auf der Platte liegt, und man beim Timelord neustarten nicht zu dem Save im Pitboss klicken auch noch Minecraft manuell sichern muss. Das andere sehe ich auch so, wenn es etwas bringt sollten wir es testen. Bei den Pitbossen bin ich mir nicht mehr so sicher, 2:20h cpuzeit innerhalb eines Tages sind zwar schon ne Ansage, aber ob das wirklich Spitzen gibt müsste man mal sehen wenn jemand dann gerade connected.
Title: Re:Minecraft performance tweaks
Post by: Dave on Juni 30, 2011, 04:02:51 PM
ich denke, da es keine lebenswichtigen firmendaten sind, reicht es, einfach einmal pro stunde das world3/ verzeichnis in world3.persistent/ zu kopieren. selbiges noch in mc_stop rein, und gut ist. kein wirklicher aufwand bei evtl. hohem gewinn.

zusätzlich haben wir nach wie vor das tägliche backup. wenn wir in nem crash fall 1 stunde verlieren, bringt das niemanden um. wobei der timelord eh nicht crashed ^^
Title: Re:Minecraft performance tweaks
Post by: TheJester on Juli 01, 2011, 05:28:21 PM
Hm, zum Java7 nochmal, irgendwie ging bei mir nach dem Minecraft Update auf dem Notebook nicht mehr, und nach ein wenig nachforschen hab ich gesehen dass Arch testing Java7 an Board hat.


[sven@troy minecraft] pacman -Q |grep jdk
jdk 7b147-1
[sven@troy minecraft] java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Server VM (build 21.0-b17, mixed mode)


Jedenfalls startet das minecraft damit nichtmal weil java die libjawt.so nicht laden kann. Warum das so ist werde ich wohl später sehen, die lib ist vorhanden und lesbar im Java-Verzeichnis, und ldconfig -p findet sie auch.
Title: Re:Minecraft performance tweaks
Post by: Dave on Juli 03, 2011, 04:16:17 PM
Trotzdem könnte es server seitig helfen.

Haben wir den konkret noch lags? Oder ist das nur einbildung? Wenn ja, wo genau und wie kann man es testen?
Title: Re:Minecraft performance tweaks
Post by: x3t0 on Juli 03, 2011, 05:34:15 PM
also, alle mit denen ich gesprochen habe, ausser thalli, haben keine lags festgestellt
Title: Re:Minecraft performance tweaks
Post by: TheJester on Juli 03, 2011, 05:48:09 PM
Eben waren 9 Leute da, auch keine Lags, allerdings kann ich nicht sagen welche Schaltungen/Mobfallen an sind.
Title: Re:Minecraft performance tweaks
Post by: Dave on Juli 04, 2011, 05:43:24 AM
Quote from: x3t0 on Juli 03, 2011, 05:34:15 PM
also, alle mit denen ich gesprochen habe, ausser thalli, haben keine lags festgestellt

Rolf! Alles klar... Und wieso diskutieren wir hier dick  über performance?
Title: Re:Minecraft performance tweaks
Post by: jomu78 on Juli 04, 2011, 06:20:02 AM
Zu Java 7: Da noch nicht released würde ich erst einmal die Finger davon lassen - siehe Bugs von Jester (zu mindest wenn es die Oracle JVM ist, und danach sieht es aus).

Zu Minecraft: lasst mich rein, dann schau ich es mir an  ;)