Vorwort Bezüglich der HugePages- und Oracle-Datenbankoptimierung von Linux-Systemen können Sie den vorherigen Artikel von Xiong Ye lesen, der die relevanten Konzepte sehr klar vorstellt: Optimierung der Oracle-Datenbank für große Speicherseiten unter Linux Dieser Artikel zielt darauf ab, HugePages schnell auf einem Linux-System zu konfigurieren Testumgebung: RHEL6.8 + 512G physischer Speicher; Oracle 11.2.0.4 SGA=400G. 1. Memlock auf unbegrenzt setzen Setzen Sie in der Konfigurationsdatei /etc/security/limits.conf den Oracle-Benutzer Memlock auf unbegrenzt: vi /etc/security/limits.conf Oracle Soft Memlock unbegrenzt Oracle Hard Memlock unbegrenzt 2. Setzen Sie angemessene vm.nr_hugepages Legen Sie in der Konfigurationsdatei /etc/sysctl.conf einen sinnvollen vm.nr_hugepages-Wert fest. Führen Sie das von MOS 401749.1 bereitgestellte Skript hugepages_settings.sh aus, um die empfohlenen Werte direkt zu erhalten. Inhalt des Skripts „hugepages_settings.sh“: #!/bin/bash # # riesigepages_settings.sh # # Linux Bash-Skript zum Berechnen von Werten für die # empfohlene HugePages/HugeTLB-Konfiguration # auf Oracle Linux # # Hinweis: Dieses Skript führt Berechnungen für den gesamten gemeinsam genutzten Speicher durch # Segmente verfügbar, wenn das Skript ausgeführt wird, unabhängig davon # ist ein gemeinsam genutztes Speichersegment von Oracle RDBMS oder nicht. # # Dieses Skript wird bereitgestellt durch Doc ID 401749.1 von My Oracle Support # http://support.oracle.com # Begrüßungstext Echo " Dieses Skript wird bereitgestellt durch Doc ID 401749.1 von My Oracle Support (http://support.oracle.com), wo es zur Berechnung von Werten für vorgesehen ist die empfohlene HugePages/HugeTLB-Konfiguration für den aktuellen Shared Speichersegmente unter Oracle Linux. Bevor Sie mit der Ausführung fortfahren, beachten Sie bitte Folgendes: * Für die ASM-Instanz muss ASMM statt AMM konfiguriert werden. * Das 'pga_aggregate_target' liegt außerhalb des SGA und Sie sollten dies bei der Berechnung der SGA-Größe berücksichtigen. * Falls Sie die DB SGA-Größe ändern, da die neue SGA nicht in die bisherige HugePages-Konfiguration passt, es wäre besser, die ganzen HugePages zu deaktivieren, Starten Sie die Datenbank mit neuer SGA-Größe und führen Sie das Skript erneut aus. Und stellen Sie Folgendes sicher: * Oracle-Datenbankinstanz(en) sind aktiv und betriebsbereit * Oracle Database 11g Automatic Memory Management (AMM) ist nicht eingerichtet (Siehe Dokument-ID 749851.1) * Die gemeinsam genutzten Speichersegmente können mit folgendem Befehl aufgelistet werden: # ipcs -m Drücken Sie die Eingabetaste, um fortzufahren …“ lesen # Überprüfen Sie die Kernelversion KERN=`uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'` # Ermitteln Sie die HugePage-Größe HPG_SZ=`grep Hugepagesize /proc/meminfo | awk '{print $2}'` wenn [ -z "$HPG_SZ" ];dann echo "Die Hugepages werden möglicherweise auf dem System, auf dem das Skript ausgeführt wird, nicht unterstützt." Ausfahrt 1 fi # Initialisieren Sie den Zähler NUM_PG=0 # Kumulative Anzahl der Seiten, die zum Verarbeiten der ausgeführten gemeinsam genutzten Speichersegmente erforderlich sind für SEG_BYTES in `ipcs -m | cut -c44-300 | awk '{print $1}' | grep "[0-9][0-9]*"` Tun MIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q` wenn [ $MIN_PG -gt 0 ]; dann NUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q` fi Erledigt RES_BYTES=`echo "$NUM_PG * $HPG_SZ * 1024" | bc -q` # Ein SGA kleiner als 100MB macht keinen Sinn # Wenn das der Fall ist, springen Sie ab wenn [ $RES_BYTES -lt 100000000 ]; dann Echo "************" echo "** FEHLER **" Echo "************" echo "Entschuldigung! Es sind nicht genügend gemeinsame Speichersegmente zugewiesen für HugePages-Konfiguration. HugePages können nur für gemeinsam genutzte Speichersegmente verwendet werden die Sie per Befehl auflisten können: # ipcs -m einer Größe, die mit einem Oracle Database SGA mithalten kann. Bitte stellen Sie Folgendes sicher: * Die Oracle-Datenbankinstanz ist einsatzbereit * Oracle Database 11g Automatic Memory Management (AMM) ist nicht konfiguriert" Ausfahrt 1 fi # Mit Ergebnissen abschließen Fall $KERN in '2.2') echo "Kernelversion $KERN wird nicht unterstützt. Wird beendet." ;; '2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`; echo "Empfohlene Einstellung: vm.hugetlb_pool = $HUGETLB_POOL" ;; '2.6') echo "Empfohlene Einstellung: vm.nr_hugepages = $NUM_PG" ;; '3.8') echo "Empfohlene Einstellung: vm.nr_hugepages = $NUM_PG" ;; '3.10') echo "Empfohlene Einstellung: vm.nr_hugepages = $NUM_PG" ;; '4.1') echo "Empfohlene Einstellung: vm.nr_hugepages = $NUM_PG" ;; esac # Ende Führen Sie einfach das Skript aus, um die entsprechenden Vorschläge zu erhalten: --Wenn Sie eine Instanz mit SGA_MAX_SIZE=12G starten, finden Sie folgende Vorschläge: Empfohlene Einstellung: vm.nr_hugepages = 6148 --Wenn Sie eine Instanz mit SGA_MAX_SIZE=400G starten, finden Sie folgende Vorschläge: Empfohlene Einstellung: vm.nr_hugepages = 204805 --Wenn die Instanz nicht gestartet wird, wird eine Fehlermeldung angezeigt: *********** ** FEHLER ** *********** Es sind nicht genügend gemeinsam genutzte Speichersegmente zugewiesen für HugePages-Konfiguration. HugePages können nur für gemeinsam genutzte Speichersegmente verwendet werden die Sie per Befehl auflisten können: # ipcs -m einer Größe, die mit einem Oracle Database SGA mithalten kann. Bitte stellen Sie Folgendes sicher: * Die Oracle-Datenbankinstanz ist einsatzbereit * Oracle Database 11g Automatic Memory Management (AMM) ist nicht konfiguriert Ich füge den empfohlenen Wert vm.nr_hugepages = 204805 an die Konfigurationsdatei /etc/sysctl.conf an und führe dann sysctl -p aus, um die Konfiguration wirksam zu machen. 3. Bestätigen Sie, dass HugePages erfolgreich eingerichtet wurde Sehen Sie sich die Informationen zu HugePages an und beachten Sie, dass der HugePages_Total-Wert 204805 beträgt, der zuvor festgelegt wurde: grep Riesig /proc/meminfo # grep Riesig /proc/meminfo AnonHugePages: 0 kB HugePages_Total: 204805 HugePages_Free: 168475 HugePages_Rsvd: 168471 HugePages_Surp: 0 Riesige Seitengröße: 2048 kB Wenn die Datenbank gestartet wird, enthält das entsprechende Warnprotokoll „Informationen zu großen Seiten“: Mittwoch, 14. November 2018, 14:38:12 Uhr Starten der ORACLE-Instanz (normal) ************************ Informationen zu großen Seiten ******************* Memlock-Limit (weich) pro Prozesssystem = UNBEGRENZT Gesamte gemeinsam genutzte globale Region in großen Seiten = 400 GB (100 %) Von dieser Instanz verwendete große Seiten: 204801 (400 GB) Große Seiten, die systemweit nicht genutzt werden = 4 (8192 KB) Große Seiten, systemweit konfiguriert = 204805 (400 GB) Große Seitengröße = 2048 KB ******************************************************************** Jetzt können Sie bestätigen, dass HugePages erfolgreich eingerichtet wurde. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. |
<<: JavaScript implementiert schnell Kalendereffekte
>>: Erfahrungsaustausch zur Reparatur von MySQL InnoDB-Ausnahmen
Inhaltsverzeichnis Vorwort Dynamisches SQL 1. Sch...
Vorwort In der MySQL-Datenbank verwenden wir manc...
Die Probleme und Lösungen, die beim Bereitstellen...
Der Befehl „Explain“ ist die primäre Möglichkeit,...
Inhaltsverzeichnis Methode 1 1. Konfigurations- u...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Überblick 1. Middleware auf An...
In MySQL gibt es folgende Protokolldateien: 1: Pr...
1. Spiegelbilder verschwinden in 50 und 93 [root@...
Diese Geschichte beginnt heute mit einer unerwarte...
Probieren wir hier den Reverse-Proxy von Nginx au...
.NET SDK-Download-Link https://dotnet.microsoft.c...
Adaptives Layout wird in praktischen Anwendungen i...
Da die Anwendung von CentOS auf der Serverseite i...
Bevor wir Docker offiziell verwenden, machen wir ...