Hallo erstmal...
ich habe schon lange und oft hier im Forum gesucht und auch immer mal wieder eine Antwort auf meine Fragen gefunden, ohne das ich jemals eine eigene stellen musst... doch nun ist es so weit, ich habe ein Problem und konnte so bisher noch keine Lösung finden, und hoffe das mir jemand von euch evtl. dabei helfen kann.
Folgende Situation: Ich habe einen "kleinen" vServer (Debian10, Eckdaten s.U.) auf dem ich ein Minecraft-Server-Netzwerk betreiben möchte. Folgende Server sollen darauf laufen:
-BungeeCord-Proxy
-1x Lobby
-1x Survival-Server
-1x "Farmwelt"
-2x Minigames (jeweils mit ca. 5 eigenen kleinen Servern)
= 14 Server
Jedes für sich betrachtet funktioniert auch alles einwandfrei und ohne größere Probleme. Nur sobald ich versuche alle Server gleichzeitig laufen zu lassen fangen die Probleme an.
Natürlich läuft jeder Server über seinen eigenen Port. Dennoch schaffe ich es nie mehr als 3-5 Server gleichzeitig laufen zu lassen. Ich verstehe jedoch einfach nicht warum...
Folgende Fehlermeldung bekomme ich in der Console:
Daraus schließe ich, dass entweder mein RAM voll ist, oder aber das Limit der Prozesse erreicht ist, die ich ausführen darf.
und
Ich sehe also nicht das ich hier irgendwo an irgendwelche grenzen stoße... Wo genau liegt denn nun das Problem? Und kann mir evtl einer bei der Lösung helfen?
Oder kann es daran liegen das es sich hierbei "nur" um einen vServer und nicht um einen root-Server handelt?
Ich danke euch bereits in Vorfeld für eure Bemühungen.
Hier noch die Eckdaten meines "kleinen" vServers
16 CPU vCore
60 GB RAM garantiert
1,5 TB SSD
Virtuozzo Virtualisierer
Ach so, hier noch mal ein eines der Start-Skripte mit denen ich die einzelnen MC-Server Starte
Solltet ihr noch weitere Informationen benötigen, lasst es mich wissen.
ich habe schon lange und oft hier im Forum gesucht und auch immer mal wieder eine Antwort auf meine Fragen gefunden, ohne das ich jemals eine eigene stellen musst... doch nun ist es so weit, ich habe ein Problem und konnte so bisher noch keine Lösung finden, und hoffe das mir jemand von euch evtl. dabei helfen kann.
Folgende Situation: Ich habe einen "kleinen" vServer (Debian10, Eckdaten s.U.) auf dem ich ein Minecraft-Server-Netzwerk betreiben möchte. Folgende Server sollen darauf laufen:
-BungeeCord-Proxy
-1x Lobby
-1x Survival-Server
-1x "Farmwelt"
-2x Minigames (jeweils mit ca. 5 eigenen kleinen Servern)
= 14 Server
Jedes für sich betrachtet funktioniert auch alles einwandfrei und ohne größere Probleme. Nur sobald ich versuche alle Server gleichzeitig laufen zu lassen fangen die Probleme an.
Natürlich läuft jeder Server über seinen eigenen Port. Dennoch schaffe ich es nie mehr als 3-5 Server gleichzeitig laufen zu lassen. Ich verstehe jedoch einfach nicht warum...
Folgende Fehlermeldung bekomme ich in der Console:
[warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.
[IO-Worker-15/ERROR]: Caught exception in thread Thread[IO-Worker-15,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) [?:?]
[IO-Worker-15/ERROR]: Caught exception in thread Thread[IO-Worker-15,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) [?:?]
Daraus schließe ich, dass entweder mein RAM voll ist, oder aber das Limit der Prozesse erreicht ist, die ich ausführen darf.
free gibt folgendes austotal used free shared buff/cache available
Mem: 62914560 11280520 50684300 27168 949740 51606872
Swap: 0 0 0
Mem: 62914560 11280520 50684300 27168 949740 51606872
Swap: 0 0 0
und
top das nun folgendetop - 11:06:27 up 15:12, 1 user, load average: 3,80, 6,29, 5,78
Tasks: 57 total, 1 running, 56 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4,9 us, 0,0 sy, 0,0 ni, 95,1 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
MiB Mem : 61440,0 total, 49529,6 free, 10980,8 used, 929,6 buff/cache
MiB Swap: 0,0 total, 0,0 free, 0,0 used. 50432,5 avail Mem
Tasks: 57 total, 1 running, 56 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4,9 us, 0,0 sy, 0,0 ni, 95,1 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
MiB Mem : 61440,0 total, 49529,6 free, 10980,8 used, 929,6 buff/cache
MiB Swap: 0,0 total, 0,0 free, 0,0 used. 50432,5 avail Mem
ulimit -u dann noch das hier62987
Ich sehe also nicht das ich hier irgendwo an irgendwelche grenzen stoße... Wo genau liegt denn nun das Problem? Und kann mir evtl einer bei der Lösung helfen?
Oder kann es daran liegen das es sich hierbei "nur" um einen vServer und nicht um einen root-Server handelt?
Ich danke euch bereits in Vorfeld für eure Bemühungen.
Hier noch die Eckdaten meines "kleinen" vServers
16 CPU vCore
60 GB RAM garantiert
1,5 TB SSD
Virtuozzo Virtualisierer
Ach so, hier noch mal ein eines der Start-Skripte mit denen ich die einzelnen MC-Server Starte
starthauptwelt.sh:
#!/bin/bash
BINDIR=$(dirname "$(readlink -fn "$0")")
cd "$BINDIR"
screen -d -m -S "Hauptwelt" bash -c "sh ./loophauptwelt.sh"
loophauptwelt.sh:
#!/bin/bash
BINDIR=$(dirname "$(readlink -fn "$0")")
cd "$BINDIR"
cd Hauptwelt
echo "\033]0;Hauptwelt\007"
echo "$BINDIR"
echo "Starte den Hauptwelt-Server..."
while true
do
java -Xmx4G -Xms4G -jar spigot.jar
echo 'Willst Du den Server komplett stoppen, benutze STRG-C, \nbevor die Zeit bei 1 ist!'
echo "Rebooting in:"
for i in 5 4 3 2 1
do
echo "$i..."
sleep 1
done
echo 'Server neustart!'
done
Solltet ihr noch weitere Informationen benötigen, lasst es mich wissen.