Kann mir bitte schnell jemand bei einem Java fehler helfen?
Guten Tag zusammen,
ich habe auf meinem vServer zurzeit BungeeCord installiert. Dieser soll 2 Server miteinander verbinden. Server 1 kann ich starten und mich auch über BungeeCord via Minecraft verbinden. Doch bei Server 2 gibt es folgenen Fehler:
[0,077s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 4k, detached.
[0,078s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
at java.base/java.lang.Thread.start0(Native Method)
at java.base/java.lang.Thread.start(Thread.java:798)
at java.base/jdk.internal.ref.CleanerImpl.start(CleanerImpl.java:118)
at java.base/java.lang.ref.Cleaner.create(Cleaner.java:203)
at java.base/jdk.internal.ref.CleanerFactory.<clinit>(CleanerFactory.java:42)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:729)
at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:849)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:247)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:177)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:348)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:319)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:258)
at java.base/sun.launcher.LauncherHelper.getMainClassFromJar(LauncherHelper.java:521)
at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:747)
at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:655)
Der Server hat 16GB RAM, 2GB für BungeeCord, 6GB für Server 1 und 3GB für Server 2.
Danke für die Hilfe im Voraus,
MFG MrGLaDOS
3 Antworten
Dann hat dein sever genau 1 gig arbeitsspeicher zur verfügung. Erhöhe male xmx auf 4 gig oder so.
dann startest du mit 3g und hast 3g max.
Generell: xms und xmx sollten nicht identisch sein. Wenn du nen out of memory bekommst, erhöhe xmx.
Und wenn du das auch bei sehr hohen werten bekommst, dann hast du nen memory leak. Mit dem sourcecode und tools wie jprofiler etc. kann man die finden und fixen.
unable to create native thread: possibly out of memory or process/resource limits reached
Dann läufst du wahrscheinlich in ein Limit von Threads, das in dem virtuellen Server gilt. Das ist bei billigen vServern mitunter recht niedrig gesetzt. Manchmal gibt's sowas auch, wenn die Zahl der offenen Filehandles überschritten wird - das kannst du mit ulimit rausfinden.
Hallo alfredo153,
ja das denke ich auch.
Ist übrigens ein Stratoserver.
ulimit sagt: unlimited
ulimit -a sagt:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 1545116
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 62987
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
MFG MrGLaDOS
Dann kannst du noch schauen ob das de facto ein Softlimit ist (d.h. du kannst es selber innerhalb der VM erhöhen).
https://www.strato.de/faq/server/prozesse-vs-threads-bei-linux-v-servern/
Auf was soll ich task_max stellen? Default ist 105.
Vielen Vielen Dank für deine Hilfe.
Es hat funktioniert, als ich Default_task_max auf 200 gestellt habe.
Schönen Tag dir noch!
MFG John-Luca aka. MrGLaDOS
Die JVm hast standardmäßig nicht den ganzen Ram vom Server, sondern nur einen festen Teil. Du musst zum startargument den max ram hinzufügen:
java -Xms1g -Xmx6g
setzt den minimalen Speicher auf 1g, den maximalen auf 6g.
Hallo Freestila,
danke für deine schnelle Antwort.
Die start.sh sieht bereits so aus:
java -Xms1G -Xmx1G -jar paper-1.16.5-778.jar
MFG MrGLaDOS
Sorry, das war die start.sh für den BungeeCord, der Server bekommt: -Xms3G -Xmx3G