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
1. Tabellenanweisung erstellen: CREATE TABLE `Mit...
Öffnen Sie den Centos Yum-Ordner Geben Sie den Be...
Frage Die Angabe des Typs der hochgeladenen Datei...
Nachdem Sie auf der Seite auf das a-Tag geklickt h...
Inhaltsverzeichnis Vorwort 1. Hintergrund 2. Simu...
Inhaltsverzeichnis Was ist ein Index? Prinzip der...
Docker-Installation Über die Installation auf ein...
Vorwort Dieser Artikel stellt hauptsächlich den r...
Nur als Referenz für Python-Entwickler, die Ubunt...
Das Programm wird sequentiell von oben nach unten...
Inhaltsverzeichnis Effektanzeige Code-Link Schlüs...
Vorwort Bei der Frontend-Entwicklung stoßen wir h...
CSS fügt dem div Scrollen hinzu und verbirgt die ...
Vor dem Verstecken: Nach dem Verstecken: CSS: Code...
Während der Projektentwicklung werden unsere Date...