Einführung Da die Anforderungen an die Computertechnik ständig steigen, steigt auch der Speicherbedarf der Anwendungen. Um den Mechanismus zur virtuellen Speicherverwaltung zu implementieren, implementiert das Betriebssystem eine Paging-Verwaltung für den Speicher. Seit der Speicher-Paging-Mechanismus vorgeschlagen wurde, wurde die Standardgröße der Speicherseite auf 4096 Byte (4 KB) festgelegt. Obwohl die Speicherseitengröße grundsätzlich konfigurierbar ist, wird in den meisten Betriebssystemimplementierungen immer noch die Standardseite mit 4 KB verwendet. Als der „Paging-Mechanismus“ vorgeschlagen wurde, waren 4-KB-Seiten sinnvoll, da die Speichergröße damals nur einige zehn Megabyte betrug. Wenn die physische Speicherkapazität jedoch auf mehrere GB oder sogar einige zehn GB angewachsen ist, verwendet das Betriebssystem immer noch 4 KB als Grundeinheit der Seite. Ist das immer noch sinnvoll? Beim Ausführen einer Anwendung mit großem Speicherbedarf auf dem Linux-Betriebssystem werden mehr TLB-Fehler und Seitenfehler generiert, da die standardmäßig verwendete Seitengröße 4 KB beträgt, was die Leistung der Anwendung erheblich beeinträchtigt. Wenn das Betriebssystem Paging-Einheiten von 2 MB oder noch mehr verwendet, verringert sich die Anzahl der TLB-Fehler und Seitenfehler erheblich, was die Anwendungsleistung deutlich verbessert. Dies ist auch der direkte Grund, warum der Linux-Kernel die Unterstützung großer Seiten eingeführt hat. Die Vorteile liegen auf der Hand. Angenommen, eine Anwendung benötigt 2 MB Speicher. Wenn das Betriebssystem 4 KB als Paging-Einheit verwendet, sind 512 Seiten und 512 Einträge im TLB erforderlich. Gleichzeitig sind auch 512 Seitentabelleneinträge erforderlich. Das Betriebssystem muss mindestens 512 TLB-Fehler und 512 Seitenfehler aufweisen, um den gesamten 2 MB großen Anwendungsspeicher dem physischen Speicher zuzuordnen. Wenn das Betriebssystem jedoch 2 MB als grundlegende Paging-Einheit verwendet, sind nur ein TLB-Fehler und ein Seitenfehler erforderlich, um eine virtuelle zu reale Zuordnung für den 2 MB großen Anwendungsspeicher herzustellen, und während des Betriebs sind keine TLB-Fehler- und Seitenfehlerunterbrechungen erforderlich (vorausgesetzt, es findet kein Ersetzen und Auslagern von TLB-Einträgen statt). Um die Unterstützung großer Seiten zu möglichst geringen Kosten zu erreichen, verwendet das Linux-Betriebssystem die Unterstützung 2 MB großer Seiten basierend auf dem speziellen Dateisystem „hugetlbfs“. Diese Methode zur Unterstützung großer Seiten in Form eines speziellen Dateisystems ermöglicht es Anwendungen, die Größe der virtuellen Speicherseiten flexibel nach Bedarf zu wählen, ohne gezwungen zu sein, 2 MB große Seiten zu verwenden. Wenn Redis unter Linux gestartet wird, wird normalerweise In Bezug auf transparente große Seiten werfen wir einen Blick auf die offizielle Einführung
Überprüfen Sie, ob Transparent Huge Pages aktiviert sind 1: Befehl cat /sys/kernel/mm/redhat_transparent_hugepage/enabled Dieser Befehl ist auf das Red Hat Enterprise Linux-System anwendbar [root@getlnx06 ~]# mehr /etc/issue Red Hat Enterprise Linux Server Version 6.6 (Santiago) Kernel \r auf einem \m [root@getlnx06 ~]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled [immer] madvise nie 2: Befehl cat /sys/kernel/mm/transparent_hugepage/enabled Dieser Befehl ist auf andere Linux-Systeme anwendbar [root@getlnx06 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled immer madvise [nie] [root@getlnx06 ~]# Wenn Sie den Befehl zum Anzeigen verwenden und das Ausgabeergebnis [immer] lautet, bedeutet dies, dass transparente große Seiten aktiviert sind. [never] bedeutet, dass transparente riesige Seiten deaktiviert sind, [madvise] bedeutet 3: Wenn HugePages_Total 0 zurückgibt, bedeutet dies, dass transparente große Seiten deaktiviert sind. [root@getlnx06 ~]# grep -i HugePages_Total /proc/meminfo HugePages_Total: 0 4: cat /proc/sys/vm/nr_hugepages gibt 0 zurück, was auch bedeutet, dass transparente große Seiten deaktiviert sind. [root@getlnx06 ~]# cat /proc/sys/vm/nr_hugepages 0 Deaktivieren und Aktivieren der Funktion „Transparent Huge Pages“ Methode 1: Legen Sie die Datei /etc/grub.conf so fest, dass sie beim Systemstart deaktiviert wird. [root@getlnx06 ~]# vi /etc/grub.conf # grub.conf generiert von anaconda # # Beachten Sie, dass Sie grub nicht erneut ausführen müssen, nachdem Sie Änderungen an dieser Datei vorgenommen haben # HINWEIS: Sie haben eine /boot-Partition. Das bedeutet, dass # alle Kernel- und Initrd-Pfade sind relativ zu /boot/, zB. # Wurzel (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/VolGroup--LogVol0-LogVol01 # initrd /initrd-[generic-]version.img #boot=/dev/sda Standardwert = 0 Zeitüberschreitung = 5 splashimage=(hd0,0)/grub/splash.xpm.gz verstecktes Menü Titel Red Hat Enterprise Linux 6 (2.6.32-504.el6.x86_64) Wurzel (hd0,0) Kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/mapper/VolGroup--LogVol0-LogVol01 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup-LogVol0/LogVol01 rd_LVM_LV=VolGroup-LogVol0/LogVol00 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb ruhig initrd /initramfs-2.6.32-504.el6.x86_64.img transparent_hugepage=nie Methode 2: Einrichten der Datei /etc/rc.local [root@getlnx06 ~]# vi /etc/rc.local #!/bin/sh # # Dieses Skript wird *nach* allen anderen Init-Skripten ausgeführt. # Sie können hier Ihre eigenen Initialisierungsmaterialien einfügen, wenn Sie nicht # möchte die komplette Initialisierung im Sys-V-Stil durchführen. berühren Sie /var/lock/subsys/local wenn test -f /sys/kernel/mm/redhat_transparent_hugepage/enabled; dann echo nie > /sys/kernel/mm/redhat_transparent_hugepage/aktiviert fi Nachdem Sie die obige Konfiguration verwendet haben, müssen Sie das Betriebssystem neu starten, damit sie wirksam wird. Sie können den folgenden Befehl auch ausführen, ohne das Betriebssystem neu zu starten. [root@getlnx06 ~]# echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled [root@getlnx06 ~]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled immer madvise [nie] [root@getlnx06 ~]# Tipps: 1: Ab den Kerneln RedHat 6, OEL 6, SLES 11 und UEK2 ist Transparent HugePages standardmäßig aktiviert: Wird verwendet, um die Leistung der Speicherverwaltung zu verbessern. Transparent HugePages ähnelt den Huge Pages in früheren Versionen. Der Hauptunterschied besteht darin, dass Transparent HugePages in Echtzeit konfiguriert werden kann und kein Neustart erforderlich ist, damit die Konfiguration wirksam wird. 2: Transparent Huge Pages werden im 32-Bit-RHEL 6 nicht unterstützt. 3: ORACLE empfiehlt offiziell nicht, Transparent HugePages zu aktivieren, wenn Sie RedHat 6-, OEL 6-, SLES 11- und UEK2-Kernel verwenden, da Transparent HugePages einige Probleme aufweist:
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. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: So verschieben Sie den Datenspeicherort von mysql5.7.19 in Centos7
>>: So verwenden Sie das Videowiedergabe-Plugin DPlayer.js
Die folgenden Funktionsdemonstrationen basieren a...
Gemäß dem Koeffizienten von Pi und dem Radius der...
In einem großen Kästchen befindet sich ein Bild. ...
Das <marquee>-Tag ist ein Tag, das paarweis...
Inhaltsverzeichnis Fehlermeldung Ursache Fehlerde...
Seine Funktion besteht darin, einen globalen Stil ...
Inhaltsverzeichnis Einführung Installieren Anzeig...
Die folgenden Installationen verwenden alle das V...
Inhaltsverzeichnis 1. Einfache SELECT-Anweisung 1...
1. Lassen Sie uns zunächst das relevante Wissen z...
Heute habe ich auf CSDN einen kleinen Trick zum Es...
Inhaltsverzeichnis 1. Installation 2. Einleitung ...
Klassifizierung von CSS-Stilen 1. Interner Stil -...
Ich habe mehr als eine Stunde gebraucht, um SSH i...
Vorwort Ich habe vor Kurzem eine virtuelle Maschi...