1. Abnormale Leistung beim Docker-Start: 1. Der Status wird wiederholt neu gestartet. Überprüfen Sie dies mit dem Befehl $ Docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 21c09be88c11 docker.xxxx.cn:5000/xxx-tes/xxx_tes:1.0.6 "/usr/local/tomcat..." vor 9 Tagen Neustart (1) Vor weniger als einer Sekunde xxx10 2. Es gibt offensichtliche Probleme mit Docker-Protokollen: $docker logs [Containername/Container-ID] 2. Mögliche Gründe für Abnormalitäten beim Docker-Start: 2.1. Nicht genügend Speicher Zum Starten benötigt Docker mindestens 2 GB Arbeitsspeicher. Führen Sie zunächst den Befehl free -mh aus, um zu prüfen, ob der verbleibende Arbeitsspeicher ausreicht. Speicher direkt anzeigen $frei -mh insgesamt genutzter freier gemeinsamer Buff/Cache verfügbar Speicher: 15 G 14 G 627 M 195 M 636 M 726 M Tauschen: 0B 0B 0B Protokolle analysieren Manchmal ist der Speicher kurzzeitig überlastet, was dazu führt, dass einige Prozesse beendet werden. Es scheint, als sei der Speicher ausreichend, aber tatsächlich wird Docker wiederholt neu gestartet. Eine weitere Analyse ist anhand der Docker-Protokoll- und Systemprotokollinformationen erforderlich: Analysieren von Docker-Protokollen Überprüfen Sie das Docker-Protokoll, um Informationen zum Speicherüberlauf zu erhalten. Sie müssen es sorgfältig lesen, um die Informationen zu finden. Es steht nicht ganz unten $docker logs [Containername/Container-ID]|weniger Java HotSpot(TM) 64-Bit Server VM-Warnung: INFO: os::commit_memory(0x0000000769990000, 1449590784, 0) fehlgeschlagen; Fehler='Speicher kann nicht zugewiesen werden' (errno=12) # # Es ist nicht genügend Speicher vorhanden, um die Java Runtime Environment fortzusetzen. # Bei der nativen Speicherzuweisung (malloc) konnten 1449590784 Bytes zum Festschreiben des reservierten Speichers nicht zugewiesen werden. # Eine Fehlerberichtsdatei mit weiteren Informationen wird wie folgt gespeichert: # //hs_err_pid1.log Java HotSpot(TM) 64-Bit Server VM-Warnung: INFO: os::commit_memory(0x0000000769990000, 1449590784, 0) fehlgeschlagen; Fehler='Speicher kann nicht zugewiesen werden' (errno=12) # # Es ist nicht genügend Speicher vorhanden, um die Java Runtime Environment fortzusetzen. # Bei der nativen Speicherzuweisung (malloc) konnten 1449590784 Bytes zum Festschreiben des reservierten Speichers nicht zugewiesen werden. # Eine Fehlerberichtsdatei mit weiteren Informationen wird wie folgt gespeichert: # /tmp/hs_err_pid1.log Java HotSpot(TM) 64-Bit Server VM-Warnung: INFO: os::commit_memory(0x0000000769990000, 1449590784, 0) fehlgeschlagen; Fehler='Speicher kann nicht zugewiesen werden' (errno=12) # # Es ist nicht genügend Speicher vorhanden, um die Java Runtime Environment fortzusetzen. # Bei der nativen Speicherzuweisung (malloc) konnten 1449590784 Bytes zum Festschreiben des reservierten Speichers nicht zugewiesen werden. # Protokolldatei kann nicht gespeichert werden, auf dem Bildschirm ausgeben. # # Es ist nicht genügend Speicher vorhanden, um die Java Runtime Environment fortzusetzen. # Bei der nativen Speicherzuweisung (malloc) konnten 1449590784 Bytes zum Festschreiben des reservierten Speichers nicht zugewiesen werden. # Mögliche Gründe: # Das System verfügt nicht über genügend physischen RAM oder Swap-Speicher # Im 32-Bit-Modus wurde die Prozessgrößenbeschränkung erreicht # Mögliche Lösungen: # Reduzieren Sie die Speicherlast des Systems # Erhöhen Sie den physischen Speicher oder den Swap-Speicher # Überprüfen Sie, ob der Swap-Backing-Store voll ist # Verwenden Sie 64-Bit-Java auf einem 64-Bit-Betriebssystem # Java-Heapgröße verringern (-Xmx/-Xms) # Anzahl der Java-Threads verringern # Java-Thread-Stack-Größen verringern (-Xss) # Größeren Code-Cache mit -XX:ReservedCodeCacheSize= einstellen # Diese Ausgabedatei ist möglicherweise abgeschnitten oder unvollständig. # # Nicht genügend Arbeitsspeicherfehler (os_linux.cpp:2756), pid=1, tid=140325689620224 # # JRE-Version: (7.0_79-b15) (Build) # Java VM: Java HotSpot(TM) 64-Bit Server VM (24.79-b02, gemischter Modus, Linux-AMD64, komprimiert, ups) # Core Dump geschrieben. Standardspeicherort: //core oder core.1 # Analysieren Sie Systemprotokolle Beim Überprüfen des Systemprotokolls fand ich eine große Anzahl von Aufzeichnungen über Prozesse, die aufgrund eines Speicherüberlaufs beendet wurden. $grep -i 'Nicht genügend Arbeitsspeicher' /var/log/messages 7. April 10:04:02 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 1192 (Java) beenden, Punktzahl 54 oder Kind opfern 7. April 10:08:00 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 2301 (Java) beenden, Punktzahl 54 oder Kind opfern 7. April 10:09:59 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 28145 (Java) beenden, Punktzahl 52 oder Kind opfern 7. April 10:20:40 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 2976 (Java) beenden, Punktzahl 54 oder Kind opfern 7. April 10:21:08 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 3577 (Java) beenden, Punktzahl 47 oder Kind opfern 7. April 10:21:08 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 3631 (Java) beenden, Punktzahl 47 oder Kind opfern 7. April 10:21:08 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 3634 (Java) beenden, Punktzahl 47 oder Kind opfern 7. April 10:21:08 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 3640 (Java) beenden, Punktzahl 47 oder Kind opfern 7. April 10:21:08 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 3654 (Java) beenden, Punktzahl 47 oder Kind opfern 7. April 10:27:27 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 6998 (Java) beenden, Punktzahl 51 oder Kind opfern 7. April 10:27:28 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 7027 (Java) beenden, Punktzahl 52 oder Kind opfern 7. April 10:28:10 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 7571 (Java) beenden, Punktzahl 42 oder Kind opfern 7. April 10:28:10 Centos106-Kernel: Nicht genügend Arbeitsspeicher: Prozess 7586 (Java) beenden, Punktzahl 42 oder Kind opfern 2.2. Port-Konflikt Der Docker-Abhörport wurde von anderen Prozessen belegt. Dieses Problem tritt häufig bei neu bereitgestellten Diensten oder bei der Bereitstellung neuer Hintergrunddienste auf dem ursprünglichen Computer auf. Daher sollten Sie vor der Bereitstellung einen Befehl ausführen, um zu prüfen, ob der Port belegt ist. Wenn nach dem Online-Gehen festgestellt wird, dass er belegt ist, sollten Sie ihn auf einen verfügbaren Port ändern und neu starten. Prüfbefehl: $netstat -nltp|grep [geplante Portnummer] 3. Gegenmaßnahmen 3.1. Gegenmaßnahmen bei Speichermangel: Gegenmaßnahme 1: Gegenmaßnahme 2: Strategie 3: Gegenmaßnahme 4: 3.2 Gegenmaßnahmen bei Hafenkonflikten Gegenmaßnahme 1: Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Verwendung von Vue-Filtern und benutzerdefinierten Anweisungen
>>: Grafisches Tutorial zur Installation und Konfiguration der MSI-Version von MySQL 8.0.11
Was ist WSL Zitat aus der Baidu-Enzyklopädie: Das...
Abfrage-Cache 1. Funktionsprinzip des Abfrage-Cac...
Vorwort Da für den Upload des Miniprogramms https...
Vorwort Manchmal habe ich das Gefühl, dass die na...
Projektanforderungen: Wenn Sie auf einen Produktb...
Im Zuge des schrittweisen Übergangs von herkömmli...
Inhaltsverzeichnis 1. Prototyp (expliziter Protot...
Inhaltsverzeichnis 1. Funktion Entprellung 1. Was...
Inhaltsverzeichnis 1. React Hooks vs. reine Funkt...
1. Zusammengesetzter Primärschlüssel Der sogenann...
Bei der Behebung von Systemproblemen, Anwendungsv...
1. Mobile Auswahl der Formulartexteingabe: Wenn i...
Dieser Artikel beschreibt die Schritte zur Instal...
Das MySQL-Protokoll für langsame Abfragen ist seh...
Inhaltsverzeichnis Grundkonfiguration Eintragsdat...