GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fork:Retry:Ressource vorübergehend nicht verfügbar

Eine andere Möglichkeit sind zu viele Threads. Wir sind gerade auf diese Fehlermeldung gestoßen, als wir eine Testumgebung für eine App ausgeführt haben, die einen Thread-Pool verwendet. Wir haben

verwendet
watch -n 5 -d "ps -eL <java_pid> | wc -l"

um die fortlaufende Anzahl der nativen Linux-Threads zu beobachten, die innerhalb der angegebenen Java-Prozess-ID ausgeführt werden. Nachdem dieser Wert ungefähr 1.000 (für uns – YMMV) erreicht hatte, erhielten wir die von Ihnen erwähnte Fehlermeldung.


Dies wird häufig dadurch verursacht, dass keine Dateideskriptoren mehr vorhanden sind.

Es gibt das Gesamtdateideskriptor-Limit des Systems, was Sie von dem Befehl erhalten:

sysctl fs.file-nr

Dies gibt die Anzahl der Dateideskriptoren zurück:

<in_use> <unused_but_allocated> <maximum>

Um herauszufinden, wie hoch das Dateideskriptor-Limit eines Benutzers ist, führen Sie die folgenden Befehle aus:

sudo su - <username>
ulimit -Hn

Um herauszufinden, wie viele Dateideskriptoren von einem Benutzer verwendet werden, führen Sie den folgenden Befehl aus:

sudo lsof -u <username> 2>/dev/null | wc -l

Wenn Sie also ein Problem mit der Beschränkung der Systemdateideskriptoren haben, müssen Sie Ihre /etc/sysctl.conf-Datei bearbeiten und eine Zeile mit fs.file-max hinzufügen oder ändern, wenn sie bereits existiert, und sie auf einen großen Wert setzen genug, um mit der Anzahl der benötigten Dateideskriptoren fertig zu werden und neu zu starten.

fs.file-max = 204708

Linux
  1. [Linux]:SSH kann nicht zu einem bestimmten Benutzer wechseln mit einem Fehler „su:Benutzer-ID kann nicht festgelegt werden:Ressource vorübergehend nicht verfügbar“

  2. Dateideskriptoren und Shell-Scripting?

  3. Bedeutung von Pfeilsymbolen beim Duplizieren/Schließen von Dateideskriptoren unter Bash?

  4. So beheben Sie su USER Fails With su:untergeordneter Prozess kann nicht erstellt werden:Ressource vorübergehend nicht verfügbar Fehler in CloudLinux?

  5. Linux-Interviewfragen:Open Files / Open File Descriptors

So legen Sie das Limit für ulimit und Dateideskriptoren auf Linux-Servern fest

Wie finde ich den Prozess mit maximalen Dateideskriptoren?

Wie erstelle ich eine Datei in Linux aus dem Terminalfenster?

C-Dateizeiger ändert sich nach Fork und (fehlgeschlagener) Ausführung

So zeigen Sie offene Dateideskriptoren an, ohne den Befehl lsof zu verwenden

cp-L vs. cp-H