Bukkit - Javaprozesse werden gekillt

  • Hallo zusammen,


    ich habe ein kleingroßes Problem mit meinem vServer (Uranus light, Debian Wheezy, selbstverständlich aktuell), bei dem ich mittlerweile mit meinem Latein am Ende bin, wobei ich mir nicht sicher bin, ob es sich primär um ein vServer Problem oder um ein reines "Gameserverproblem" handelt.


    Sache ist folgende: Ich versuche einen kleinen Minecraftserver (4-5 Spieler) herzurichten, auf Basis von Bukkit (zunnächst erstmal ohne irgendwelchen krummen Erweiterungen), wobei mir ständig die Javaprozesse wegfliegen, sobald "rechenlastigere Aktionen", wie beispielsweise das Generieren von neuen Weltabschnitten stattfinden. Dabei ist es allerdings nicht der Arbeitsspeicher, der überläuft. Laut htop habe ich, wenn ein solcher "Crash" auftritt noch rund 200-400MB an "garantiertem Arbeitsspeicher" frei.


    Sowohl openJDK-6-jre, openJDK-7-jre als auch Oracle Java 7 habe ich ausprobiert, überall die selben Ergebnisse, nach einiger Zeit werden die Javaprozesse abgewürgt und mir wird nur mehr ">Killed" im Terminal angezeigt. Was mich wundert ist, dass bisher nichts in den Logdateien (sowohl Bukkitlogs, als auch /var/log) aufgetaucht ist. Auch sterben die Prozesse komplett ohne Vorankündigung ab - der Gameserver läuft bis zum Crashzeitpunkt bis zur letzten Millisekunde komplett ohne Probleme/irgendwelche Lags.


    Generell starte ich den Server mit "java -jar -Xmx768M -Xms768M craftbukkit.jar", ab und zu auch mit einer höheren Speicherbegrenzung, wobei der Arbeitsspeicher glaube ich hierbei weniger das Thema ist.


    Wie es mit anderen rechenlastigen Aufgaben aussieht und ob diese auch gekillt werden, weiß ich nicht. Allerdings hätte ich da auch keine Idee, was ich denn laufen lassen sollte. Versucht habe ich, die Javaprozesse mittels cpulimit in Sachen Verbrauch von CPU Ressourcen zu drosseln - allerdings ohne großen Erfolg, es passiert genau das selbe.


    Hat zufälligerweise jemand von Euch einen Tipp für mich parat?


    Ich bedanke mich schon mal im Vorraus,
    Simon :)

  • Ohne einen Hinweis ist es schwierig zu helfen. Aber was wenn du die Karte lokal auf deinem Rechner generieren lässt und diese dann nur noch vom Server laden lässt?


    Naja, das könnte sich als etwas schwierig herrausstellen, da Minecraftwelten ja quasi unendlich sind. Eventuell für einen bestimmten Bereich, fragt sich nur, bis jemand über den hinausläuft. Zumal mir der Javaprozess auch manchmal direkt beim Serverstart weggewürgt wird oder auch teilweise beim Laden von bereits generierten, vorhandenen Weltabschnitten.


    Mit was lässt du Minecraft laufen Screen oder so ?


    Screen, damit er nach Beendigung meiner SSH Session weiterläuft, ja. Aber ich bekomme das gleiche Phänomen auch ohne screen.
    Bin gerade nochmals /var/log durchgegangen. Ich finde schlicht und ergreifend nichts.


    Was mir aufgefallen ist, ist, dass die CPU Last kurz vor dem auf "120%" hochschießt (htop Wert, direkt in der Prozessliste) - natürlich ein unmöglicher Wert. Aber müssten dann nicht wenigstens Lags auftreten? Schließlich kommt der Server ja nicht mehr hinterher. - wobei ich ja bei Netcup in einem chroot meinen vServer habe. Außerdem bekomme ich grundsätzlich diese "Can't keep up" Meldungen nicht. Die treten ja gerne auf, wenn der Server mal überlastet ist - aber der Prozess wird dann dort ja nicht direkt abgewürgt.

  • Du hast ja einen light Server. Da kann es natürlich sein, dass wenn ein Prozess mehr als die zugeteilten Ressourcen nutzt vom Hostsystem gekillt wird. Das ist aber nur eine Vermutung. Am besten mal direkt beim Support nachfragen.


    Eine ähnliche solche Vermutung hatte ich bereits auch im Hinterkopf, wobei ich hoffe, dass es nicht so ist.
    Dann versuche ich mein Glück mal beim Support, eventuell können die ja da einen Riegel vorschieben - wobei ich nicht weiß, ob das bei einem chroot möglich ist (in Sachen Virtualisierung bin ich nicht besonders gut bewandert).


    Ansonsten habe ich ja jetzt schon was von eventuell baldigen mit KVM virtualisierten vServern bei Netcup gelesen. Eventuell steig' ich ja dann auf einen solchen um. Vollvirtualisierung mit eigenem Kernel gefällt mir ja schon etwas besser.


    Danke für eure bisherigen Antworten und guten Rutsch ins neue Jahr :)