Fügen Sie die Datei jvm.options zur Elasticsearch-Konfiguration hinzu, ändern Sie die Stapelgröße (der Standardwert beträgt 2 GB) und starten Sie es direkt, um sicherzustellen, dass die Konfigurationsdatei zuvor zugeordnet wurde. -Xms5g -Xmx5g Die vollständige Datei jvm.options sieht wie folgt aus:## JVM-Konfiguration ################################################################ ## WICHTIG: JVM-Heapgröße ################################################################ ## ## Sie sollten immer den minimalen und maximalen JVM-Heap festlegen ## size auf den gleichen Wert. Um beispielsweise ## den Heap auf 4 GB, setzen Sie: ## ## -Xms4g ## -Xmx4g ## ## Siehe https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html ## für weitere Informationen ## ################################################################ # Xms stellt die anfängliche Größe des gesamten Heap-Speichers dar # Xmx stellt die maximale Größe des gesamten Heap-Speichers dar -Xms5g -Xmx5g ################################################################ ## Experteneinstellungen ################################################################ ## ## Alle Einstellungen unterhalb dieses Abschnitts werden berücksichtigt ## Experteneinstellungen. Verändern Sie diese nicht, es sei denn, ## Sie verstehen, was Sie tun ## ################################################################ ## GC-Konfiguration -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly ## Optimierungen # von der JVM während der Initialisierung verwendete Pre-Touch-Speicherseiten -XX:+ImmerPreTouch ## Grundlegend # Server-VM erzwingen (auf 32-Bit-Client-JVMs entfernen) -Server # Stapelgröße explizit festlegen (auf 32-Bit-Client-JVMs auf 320 KB reduzieren) -Xss1m # auf Headless eingestellt, nur für den Fall -Djava.awt.headless=true # UTF-8-Kodierung standardmäßig sicherstellen (z. B. Dateinamen) -Dfile.encoding=UTF-8 # verwenden Sie immer unsere bereitgestellte JNA und nicht die System-JNA -Djna.nosys=true # Dateiberechtigungen im alten Stil auf JDK9 verwenden -Djdk.io.permissionsUseCanonicalPath=true # Flags zum Konfigurieren von Netty -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 # log4j 2 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true ## Heap-Dumps # einen Heap-Dump generieren, wenn eine Zuweisung vom Java-Heap fehlschlägt # Heap Dumps werden im Arbeitsverzeichnis der JVM erstellt -XX:+HeapDumpBeiSpeicherfehler # einen alternativen Pfad für Heap Dumps angeben # Stellen Sie sicher, dass das Verzeichnis vorhanden ist und über ausreichend Speicherplatz verfügt #-XX:HeapDumpPath=${heap.dump.path} ## GC-Protokollierung #-XX:+PrintGCDetails #-XX:+PrintGCTimeStamps #-XX:+DruckeGCDatumStempel #-XX:+KlassenHistogramm drucken #-XX:+DruckenTenuringDistribution #-XX:+PrintGCApplicationStoppedTime # GC-Status mit Zeitstempeln in eine Datei protokollieren # Stellen Sie sicher, dass das Verzeichnis vorhanden ist #-Xloggc:${loggc} # Standardmäßig wird die GC-Protokolldatei nicht rotiert. # Durch das Entfernen der Kommentarzeichen aus den folgenden Zeilen wird die GC-Protokolldatei # wird alle 128 MB höchstens 32 Mal rotiert. #-XX:+UseGCLogFileRotation #-XX:AnzahlGCLogFiles=32 #-XX:GCLogFileSize=128M # Elasticsearch 5.0.0 löst bei nicht in Anführungszeichen gesetzten Feldnamen in JSON eine Ausnahme aus. # Wenn Dokumente bereits in einer früheren Version mit nicht zitierten Feldern indexiert wurden # von Elasticsearch, einige Vorgänge können Fehler verursachen. # # ACHTUNG: Diese Option wird in Elasticsearch 6.0.0 entfernt und wird bereitgestellt # nur für Migrationszwecke. #-Delasticsearch.json.allow_unquoted_field_names=true Ergänzung: Speicherlimit für Docker-Container Docker-Speicherlimitdocker run -d -i -t -m 256M --memory-swap 512M --name centos2.12 centos /bin/bash Zeigen Sie das Speicherlimit der Container-Instanz an:Begrenzen Sie die Containerspeichergröße.
-m, --memory # Speicherbegrenzungsgröße, die Einheit kann b, k, M, g sein; das Minimum beträgt 4M --memory-swap #Gesamtspeicherlimit + Größe der Swap-Partition --memory-reservation #Reservierte Speichergröße; Mindestspeicher, der vom Container auf dem Host belegt wird; --oom-kill-deaktivieren # Out-of-Memory-Speicherüberlauf; Begrenzung des Beendens von Containerprozessen, standardmäßig nicht festgelegt --oom-score-adj # Die Priorität des Containers, der vom OOM-Killer getötet wird, der Bereich ist [-1000, 1000], der Standardwert ist 0 --memory-swappiness # Wird verwendet, um das Steuerungsverhalten des virtuellen Speichers des Containers festzulegen. Der Wert ist eine Ganzzahl zwischen 0 und 100 --kernel-memory Kernspeichergrenze, Minimum ist 4 M. 1. Speicher legt die Containerspeichergröße fest;--memory-swap ist nicht die Swap-Partition, sondern die Größe von Speicher + Swap; Die Swap-Partition des Containers Swap = Speicher-Swap - Speicher 2. Die Größe der Docker-Standardcontainer-Swap-Partition entspricht der SpeichergrößeMemory-Swap ist nicht festgelegt oder auf 0 gesetzt; Die Swap-Größe des Containers entspricht der Größe des Speichers. Maximaler vom Containerprozess genutzter Speicher = Speicher + Swap 3. SpeicherauslagerungseinstellungenWenn der Speicheraustausch auf -1 gesetzt ist; Die Containerspeichergröße ist die vom Speicher festgelegte Größe. Die Größe der Swap-Partition ist die Swap-Größe des Hostcomputers. Der maximale Speicher, den der Containerprozess verwenden kann = Speicher + Host-Swap-Größe; 4. Speicherüberlauf--oom-kill-deaktivieren Begrenzen Sie den Kill-Container-Prozess. (Muss nach der Speicherbegrenzung eingestellt werden.) docker run -d -i -t -m 256M --oom-kill-disable --name Centos-1 centos /bin/bash 5. Kernelspeicher und BenutzerspeicherDer Unterschied zwischen Kernelspeicher und Benutzerspeicher besteht darin, dass der Kernelspeicher nicht ausgelagert werden kann. Durch die fehlende Möglichkeit zum Auslagern können Container durch den zu hohen Speicherverbrauch einige Systemdienste blockieren. Der Hauptspeicher umfasst: Seiten stapeln Plattenseiten Sockel Speicher Druck TCP-Speicherdruck Dieser Speicher kann durch die Festlegung von Kernelspeichergrenzen eingeschränkt werden. Jeder Prozess verbraucht einige Stapelseiten und durch die Begrenzung des Kernelspeichers können Sie verhindern, dass neue Prozesse erstellt werden, wenn die Kernelspeichernutzung zu hoch wird. docker run -d -i -t -m 500M --kernel-memory 128M --name Centos-2 centos /bin/bash Begrenzen Sie den Containerspeicher auf 256 MB; begrenzen Sie den Kernspeicher auf 128 MB. docker run -d -i -t --kernel-memory 128M --name Centos-3 centos /bin/bash Der Speicher ist die Größe des Hostspeichers und der Kernspeicher ist auf 128 MB begrenzt 6. Seite zum Recycling des Swappiness-SpeichersDer Kernel des Containers kann einen bestimmten Prozentsatz anonymer Seiten auslagern. --memory-swappiness wird verwendet, um dieses Verhältnis festzulegen. --memory-swappiness kann von 0 bis 100 eingestellt werden. # 0 bedeutet, dass der anonyme Seitenaustausch deaktiviert wird. # 100 bedeutet, dass alle anonymen Seiten ausgetauscht werden können. Wenn --memory-swappiness nicht angewendet wird, wird der Wert standardmäßig vom übergeordneten Prozess übernommen. docker run -d -i -t --memory-swappiness=0 --name Centos-4 centos /bin/bash Wenn Sie --memory-swappiness auf 0 setzen, bleibt der Arbeitssatz des Containers erhalten und die Leistungseinbußen des Swap-Agenten werden vermieden. Je größer der Swappiness-Wert, desto aktiver wird die Swap-Partition verwendet, und je kleiner der Wert, desto aktiver wird der physische Speicher verwendet. Standardmäßige Auslagerungshäufigkeit = 60 sysctl vm.swappiness = 100 # Katze /proc/sys/vm/swappiness Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: Detaillierte Darstellung des MySQL 5.7.33-Installationsprozesses
>>: CSS3 realisiert das Papierflugzeug aus der Kindheit
In diesem Artikelbeispiel wird der spezifische Co...
Hintergrund Navicat ist das beste MySQL-Visualisi...
Inhaltsverzeichnis einführen Hauptmerkmale Effekt...
Inhaltsverzeichnis Überblick 1. Menü- und Routing...
Beim Codieren werden Sie feststellen, dass viele ...
Inhaltsverzeichnis MySql8.0 Fehler bei der Transa...
Inhaltsverzeichnis 1. Statische Implementierungsm...
Bei der Installation von tortoiseGit gab es immer...
Inhaltsverzeichnis Vorwort 1. Iceraven-Browser (F...
Web-Frontend 1 Studierendenausweis Name Geschlech...
In diesem Artikel wird der spezifische Code für d...
Heute geht es noch immer um das Design von Watch-...
Was Sie lernen werden 1. Softwareinstallation und...
Der <area>-Tag wird vor allem in Imagemaps ...
MySQL-Dirty-Pages Aufgrund des WAL-Mechanismus er...