
Der Nginx-Prozess schaltet sich immer wieder ab. Hier sind die Fehler
2023/04/18 11:47:29 [alert] 11073#0: worker process 11312 exited on signal 9
2023/04/18 11:47:29 [alert] 11073#0: fork() failed while spawning "worker process" (12: Cannot allocate memory)
2023/04/18 11:47:29 [alert] 11073#0: could not respawn worker process
Ich weiß, dass es genug RAM hat, es ist ein VPS, den ich steuere, und ich habe seinen RAM auf 4 GB hochgeschraubt, und immer noch dasselbe. Es ist ein sehr leichter Nginx-Server, kein PHP, einfache Bildbereitstellung. Ich führe Nginx 1.0.15 aus, ich weiß, es ist alt, aber es hat viele Jahre lang problemlos funktioniert. An diesem VPS hat sich seit Jahren nichts geändert.
Antwort1
fork() failed while spawning "worker process" (12: Cannot allocate memory)
Ist der Hinweis.
Durch einen Blick man 2 fork
können Sie herausfinden, welche Voraussetzungen zu dieser Position geführt haben.
ENOMEM fork()
Die erforderlichen Kernelstrukturen konnten aufgrund begrenzten Speichers nicht zugewiesen werden.
ENOMEM
Es wurde versucht, einen Kindprozess in einem PID-Namespace zu erstellen, dessen "init"-Prozess beendet wurde. Siehe pid_namespaces(7).
Es sollte eine dieser beiden Bedingungen vorliegen. Wird der gesamte VPS etwa zur gleichen Zeit neu gestartet? Wenn ja, ist das Ihre Antwort.
Wenn Sie dies nicht feststellen können, können Sie es ggf. testen, indem ps -o lstart 1
Sie im Container prüfen, wann der init
Prozess gestartet wurde.
Andernfalls, wenn Sie immer noch die Meldung „Speicher knapp“ erhalten, liegt es möglicherweise daran, dass der Gesamtsystemspeicher knapp ist. Das ist möglicherweise nichts, worüber Sie in Ihrem Container informiert sind, daher müssen Sie weitere Informationen vom Hosting-Anbieter anfordern.
Antwort2
Basierend auf der von Ihnen bereitgestellten Fehlermeldung scheint es, dass der Arbeitsprozess aufgrund eines beendet wird signal 9
, was auf ein SIGKILL
Signal hinweist. Darüber hinaus deutet die Fehlermeldung darauf hin, dass das fork() system call is failing
, was bedeutet, dass der Prozess keinen neuen untergeordneten Prozess erstellen kann.
Die Fehlermeldung „Speicher kann nicht zugewiesen werden“ deutet darauf hin, dass dem System möglicherweise nicht genügend Speicher zur Verfügung steht, was dazu führen könnte, dass der Systemaufruf fork() fehlschlägt. Eine mögliche Lösung für dieses Problem besteht darin, den für das System verfügbaren Speicher zu erhöhen.
Sie können versuchen, den verfügbaren Speicher auf Ihrem Server mit dem Befehl „free -tm“ zu überprüfen. Dadurch werden Informationen zum verfügbaren Speicher und Swap-Speicher angezeigt. Wenn der Speicher des Systems knapp wird, müssen Sie möglicherweise mehr Speicher zu Ihrem Server hinzufügen oder Ihre Nginx-Konfiguration anpassen, um weniger Speicher zu verwenden.
Eine weitere mögliche Lösung besteht darin, die Anzahl der Arbeitsprozesse in Ihrer Nginx-Konfiguration zu reduzieren. Sie können dies tun, indem Sie die Einstellung „worker_processes“ in Ihrer Datei nginx.conf anpassen. Indem Sie die Anzahl der Arbeitsprozesse reduzieren, können Sie den Speicherverbrauch Ihres Nginx-Servers verringern.
Antwort3
Hinzufügentauschen. Stellen Sie außerdem sicher, dass keine Probleme mit den Anmeldeinformationen/Berechtigungen vorliegen.
Auch unter Bezugnahme aufDasFrage, bei der eine App in Bezug auf den verfügbaren RAM eingeschränkt war. Was machen diese Worker? Dies könnte Ihre Antwort sein.
Haben Sie auch versucht,aktualisierenalles?