-bash: fork: Die Ressource ist zur Zeit nicht verfügbar

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
puck
Beiträge: 3
Registriert: 08.04.2021 12:12:28

-bash: fork: Die Ressource ist zur Zeit nicht verfügbar

Beitrag von puck » 08.04.2021 12:49:50

Server:
- V-Server von Strato
- Debian 10 64bit
- 4 CPU vCores
- 8 GB RAM
- Auf dem Server läuft im Wesentlichen Nextcloud, Jitsi und Netdata.

Problem Beschreibung:
Folgende meldungen erscheinen bei nahezu jeder Befehlseingabe in der Kommandozeile:
-bash: fork: retry: Die Ressource ist zur Zeit nicht verfügbar
-bash: fork: retry: Die Ressource ist zur Zeit nicht verfügbar
-bash: fork: retry: Die Ressource ist zur Zeit nicht verfügbar
-bash: fork: retry: Die Ressource ist zur Zeit nicht verfügbar
-bash: fork: Die Ressource ist zur Zeit nicht verfügbar

Nach einem Neustart des Servers kann man eine Zeit (<30min) normal damit arbeiten, bis sich o.g. Meldungen zeigen.
Nach einem Neustart ist auch die Anzahl der unten gezeigten Java-Prozesse niedrig, zählt aber nach und nach hoch, auch ohne Aktivitäten mit den installierten Anwendungen.

Durchgeführte Analysen:
- Internetsuche verweist i.d.R. auf ein Ressourcen-Limit als Ursache

root@server:~# ulimit -a
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) 4096
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

root@server:~# ulimit -u
62987

root@server:/# free -m
total used free shared buff/cache available
Mem: 8192 905 7093 42 193 7244
Swap: 0 0 0

root@server:~$ pstree
systemd─┬─2*[agetty]
├─cron
├─dbus-daemon
├─fail2ban-server───4*[{fail2ban-server}]
├─java───282*[{java}]
├─java───40*[{java}]

├─lua5.2
├─mariadbd───15*[{mariadbd}]
├─nginx───4*[nginx]
├─php-fpm7.4───12*[php-fpm7.4]
├─redis-server───3*[{redis-server}]
├─saslauthd───saslauthd
├─sshd───sshd───sshd───bash───pstree
├─syslogd
├─systemd-journal
├─systemd-logind
├─systemd-network
├─systemd-udevd
├─turnserver───8*[{turnserver}]
├─unattended-upgr───{unattended-upgr}
└─xinetd

Seltsam erscheinen mir die vielen Java-Prozesse.
Kann mir jemand bei der Analyse und Behebung des Problems helfen?

mludwig
Beiträge: 671
Registriert: 30.01.2005 19:35:04

Re: -bash: fork: Die Ressource ist zur Zeit nicht verfügbar

Beitrag von mludwig » 08.04.2021 14:55:00

Probiere doch mal die Lösungsvorschläge dieses Links durch:

https://community.jitsi.org/t/fork-retr ... e/84403/23

wenn es allerdings ein Limit des Hosters ist, hast wenig Möglichkeiten, außer einem Upgrade deines Servers bzw. Wechsel.
Limit des Hosters sieht man (aus dem obigen Link) dann z. B.:

Code: Alles auswählen

 cat /proc/user_beancounters | grep numproc

puck
Beiträge: 3
Registriert: 08.04.2021 12:12:28

Re: -bash: fork: Die Ressource ist zur Zeit nicht verfügbar

Beitrag von puck » 08.04.2021 15:49:41

Vielen Dank.
Konnte den Fehler ca. 20min nach Neustart des Servers reproduzieren:

root@server:~# less /proc/user_beancounters | grep numproc
numproc 399 399 400 400 2
root@server:~# less /proc/user_beancounters | grep numproc
bash: fork: retry: Die Ressource ist zur Zeit nicht verfügbar
bash: fork: retry: Die Ressource ist zur Zeit nicht verfügbar
numproc 400 400 400 400 2

Hochgezählt haben im Wesentlichen die Java-Prozesse, vermutlich durch Jitsi ausgelöst.

Dazu habe 2 Fragen:
1. Ist das Limit von 400 für die o.g. Anwendungen angemessen?
2. Ist es normal, dass die Java-Prozesse immer weiter hochzählen?

mludwig
Beiträge: 671
Registriert: 30.01.2005 19:35:04

Re: -bash: fork: Die Ressource ist zur Zeit nicht verfügbar

Beitrag von mludwig » 08.04.2021 16:34:26

Das Limit von 400 Prozessen ist in diesem Fall vom Provider der VM vorgegeben worden, und scheint in diesem Fall eben gerade nicht zu reichen, da es ja sonst nicht zu diesem Fehler kommen würde. Funktioniert denn Jitsi ansonsten fehlerfrei? Ich würde eigentlich auch dort Fehler in der Anwendung erwarten, also nicht funktionierende Konferenzen o. ä.

puck
Beiträge: 3
Registriert: 08.04.2021 12:12:28

Re: -bash: fork: Die Ressource ist zur Zeit nicht verfügbar

Beitrag von puck » 08.04.2021 21:11:23

Wenn das Limit erreicht ist, entstehen verschiedenste Fehlerbilder. Sowohl in den Anwendungen als auch in der Systemverwaltung, cron-Jobs etc., bis dahin, dass eine Anmeldung per ssh nicht möglich ist.
Ich werde das Thema beim Provider Strato ansprechen. Leider weiß ich nicht, welcher Wert anstelle von 400 das Problem dauerhaft behebt.

Vielen Dank für die Unterstützung.

mludwig
Beiträge: 671
Registriert: 30.01.2005 19:35:04

Re: -bash: fork: Die Ressource ist zur Zeit nicht verfügbar

Beitrag von mludwig » 08.04.2021 21:45:43

etwas google foo bringt noch dieses:

https://community.jitsi.org/t/jicofo-cr ... s/61466/15

Dort wird von ca 500 bis 550 Threads gesprochen, abhängig von der Zahl der Konferenzen/Teilnehmer, wobei eine Konferenz mit 7 Teilnehmer mir nicht viel erscheint. Dennoch ist ein max. von 400 Threads für einen Server schon extrem niedrig, selbst wenn das nur eine VM ist. Ich würde wohl ein anderes VM Modell ohne diese Limits nehmen, oder etwa 2000 für sinnvoll halten. Habe aber solche Angaben zu Limitierung der Prozessanzahl noch nicht gesehen.

Außerdem:
Disabling the healthcheck of jicofo, which permanently created new threads, has reduced the number of threads massively.
Vielleicht hilft dir das, mir sagt es erstmal nichts.

wanne
Moderator
Beiträge: 6799
Registriert: 24.05.2010 12:39:42

Re: -bash: fork: Die Ressource ist zur Zeit nicht verfügbar

Beitrag von wanne » 09.04.2021 10:19:05

Diclaimer: Ganz persönliche Meinung. Muss man nicht so sehen. Aber ich will das trotzdem mal los werden.
Ich dachte die OpenVZ-Overprovisioner seien endlich tot...
Dem Scheint nicht so zu sein.
Hintergrund ist dass der Anbieter da extrem hart Optimiert. Du teilst dir einen Kernel mit anderen Nutzern. Üblicherweise dann auch in Kombination mit das aus wenigen echten Kernen verdammt viele vCPUs werden. Deswegen kannst du da keine Einstellungen verändern und weil der Sceduler am Ende dann doch nicht so ganz gerecht ist, versuchen sie dir überall Limits rein zu hauen, dass du den anderen nicht zu viele, der spärlich gesähten Ressourcen weg nimmst. Ich habe keine direkten Erfahrungen mit Strato aber im Normalfall ist OpenVZ ein sicheres Anzeichen dafür, dass du schreiend weg rennen willst, weil der Anbeiter virtuell möglichst viel aus möglichst wenig Hardware raus quetschen will. Das überträgt sich dann auch meist auf sonstige Qualität des Services. Ich sehe, das neuste Debian, dass sie kennen ist 9. Ich meine 10 kam ja erst vor 2 Jahren raus. Kann man mal verpasst haben... Passt wie Faust aufs Auge. Ich wette der Kernel hat seit 3 Jahren keine Sicherheitspatches gesehen.
Ich würde dir dick empfehlen nen Seriöseren Anbieter zu suchen. Gerade wenn du doch sehr anspruchsvolle Anwendungen wie Nextcloud und Jitsi hast, ist ne Überlegung in richtung Preisklasse Hetzner oder so nicht dumm. Ich mein ein Mailserver läuft überall. Und ein Blog ist auch genügsam. Aber das sind andere Brocken.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten