Problemphänomen:
Tomcat (8.5.13) hat SuperMap iServer bereitgestellt und die Anzahl der gleichzeitigen Benutzer beträgt etwa 100. Nachdem das System eine Weile in Betrieb war, stürzt der Dienst ab. Ausnahme-Eingabeaufforderung
Problemanalyse:
1 Nachdem ich die Eingabeaufforderungsinformationen im Protokoll gesehen hatte, dachte ich, die Ursache sei unzureichender Systemspeicher. Daher wurde dem Server ein Überwachungsskript hinzugefügt (wie unten gezeigt), um den Systemspeicher und den Tomcat-Speicher jede Sekunde aufzuzeichnen.
Nach einer gewissen Zeit der Überwachung trat die Ausnahme erneut auf. Im Protokoll wurde keine Speicherausnahme gefunden
2. Nachdem der Speicher ausgeschlossen wurde, stellt sich die Frage, ob die Anzahl der Prozesse aufgrund zu vieler gleichzeitiger Benutzer überschritten wird?
1) Überprüfen Sie die Ressourcenlimitparameter des aktuellen Linux-Benutzers ulimit -a
2) Unter den oben genannten Parametern ist derjenige, dem mehr Aufmerksamkeit geschenkt wird ist ein Prozess Die maximale Anzahl von Dateien, die geöffnet werden können, dh geöffnete Dateien. Die maximale Anzahl von Prozessen, die vom System erstellt werden dürfen, ist der Parameter „maximale Benutzerprozesse“. Wir können ulimit -u 4096 verwenden, um den Wert der maximalen Benutzerprozesse zu ändern, dies wird jedoch nur in der Sitzung des aktuellen Terminals wirksam. Nach der erneuten Anmeldung wird weiterhin der Systemstandardwert verwendet.
Der richtige Weg, es zu ändern, besteht darin, den Wert in der Datei /etc/security/limits.d/90-nproc.conf zu ändern. Schauen wir uns zunächst an, was diese Datei enthält:
$ cat /etc/security/limits.d/90-nproc.conf # Default limit for number of user's processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning. * soft nproc 4096
Wir müssen nur den Wert 4096 in der obigen Datei ändern.
Eine Untersuchung ergab, dass dies tatsächlich daran lag, dass die vom aktuellen Benutzer des Servers festgelegte maximale Anzahl von Prozessen zu gering war, was dazu führte, dass der Server keine Prozesse erstellen konnte und abstürzte.
Referenz:
linux Aktuellen Prozess anzeigen:
Das obige ist der detaillierte Inhalt vonTomcat-Fehleranalyse unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!