Minecraft-Server stürzt immer wieder ab (Java)

k1ngl0u1

New Member
Hallo,

da ihr mir bei meinem letzten Problem schon so schnell helfen konntet hoffe ich ihr könnt mir auch diesmal wieder helfen.

Ich wollte zusätzlich zu meinen Privat-genutzten Diensten auf meinem VServer einen Minecraft-Server laufen lassen, jedoch stürzt dieser immer wieder einfach ab. In der Konsole habe ich folgendes dazu gefunden:

Code:
>[29,354s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.
[29,354s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.
[16:28:26] [IO-Worker-7/ERROR]: Caught exception in thread Thread[IO-Worker-7,5,main]
java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
        at java.lang.Thread.start0(Native Method) ~[?:?]
        at java.lang.Thread.start(Thread.java:803) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:937) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:1005) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
>[29,360s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.
[16:28:26] [IO-Worker-8/ERROR]: Caught exception in thread Thread[IO-Worker-8,5,main]
java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
        at java.lang.Thread.start0(Native Method) ~[?:?]
        at java.lang.Thread.start(Thread.java:803) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:937) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1354) ~[?:?]
        at net.minecraft.server.v1_16_R2.ThreadedMailbox.f(SourceFile:122) ~[spigot-1.16.2.jar:git-Spigot-b5a13e6-a939fbd]
        at net.minecraft.server.v1_16_R2.ThreadedMailbox.run(SourceFile:108) ~[spigot-1.16.2.jar:git-Spigot-b5a13e6-a939fbd]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
Hat jemand vielleicht bereits die selbe Problematik gehabt und kann hier schnell weiterhelfen? Ich verstehe im Grunde genommen dass er in das Thread-Limit läuft, dieses kann ich allerdings nicht anheben meines Wissens nach.

Betriebssystem ist Ubuntu auf einem Strato-Vserver.

Gruß

K1ngL0u1
 

d3p

Blog Benutzer
java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
Wie viel RAM hast du denn der JVM zugewiesen?
Tritt der Fehler auf, wenn du den RAM für die JVM erhöhst?
 

marce

Well-Known Member
Ggf. liegts auch an der RessourceLimits seitens des OS / Hypervisors, wird hier auch öfters gerne genannt. Stichwort numproc, beancounters, ...
 

DeaD_EyE

Blog Benutzer
Was passiert denn, wenn man z.B. nur 512 MiB der JavaVM zuweist, der Prozess aber mehr benötigt?
Käme die Meldung "java.lang.OutOfMemoryError" dann auch?
 

k1ngl0u1

New Member
Was passiert denn, wenn man z.B. nur 512 MiB der JavaVM zuweist, der Prozess aber mehr benötigt?
Käme die Meldung "java.lang.OutOfMemoryError" dann auch?
Habe die Erfahrung gemacht dass darunter einfach nur die Performance leidet, in der Regel führt dies aber nicht zu einem Absturz.
Es geht hier ja auch nicht um einen 50-Spieler oder mehr Server mit etlichen Plugins, es geht um einen nahezu Vanilla-Server mit 2-5 Leuten.
 

DeaD_EyE

Blog Benutzer
Dann trifft wahrscheinlich die Vermutung von marce zu.
Je nach verwendeter Virtualisierung gibt es Soft- und Hard-Limits von allen möglichen Ressourcen.
 

ThomasChr

Member
Strato=Virtuozzo=komische Limits (beancounters)=Mist

Schau mal nach in der beancounters Datei welches Limit gerissen wurde. Und dann such dir nen sinnvollen Serveranbieter :)
 

marce

Well-Known Member
Was passiert denn, wenn man z.B. nur 512 MiB der JavaVM zuweist, der Prozess aber mehr benötigt?
Käme die Meldung "java.lang.OutOfMemoryError" dann auch?
Bei Java gilt: kommt drauf an (in welchem Speicherbereich wird der Speicher angefordert, was ist im OS noch frei, was kann der GC ggf. freigeben, wie ist die Anwendung gestrickt, ...)

... meist aber - ja.

Zusammengefasst: Speicherverwaltung u. Management mit Java-Anwendungen ist kompliziert.
 
Top