So prüfen Sie, ob Kernel-Hugepages in Linux aktiviert sind

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie überprüfen können, ob Kernel-Hugepages auf einem Linux-System aktiviert und konfiguriert sind. Hugepages sind ein Kernel-Feature, das die Leistung von speicherintensiven Anwendungen verbessern kann, indem es größere Speicherseiten verwendet.

Durch eine Reihe praktischer Schritte werden Sie verschiedene Methoden zur Überprüfung der Hugepage-Einstellungen erkunden. Sie beginnen damit, die Datei /proc/meminfo zu untersuchen, um die aktuellen Hugepage-Statistiken anzuzeigen, einschließlich der Gesamtzahl, der freien und reservierten Hugepages sowie der Größe der Hugepages. Als Nächstes verwenden Sie den Befehl sysctl, um den Kernel-Parameter vm.nr_hugepages zu überprüfen, der die gewünschte Anzahl von Hugepages angibt. Schließlich untersuchen Sie das Verzeichnis /sys/kernel/mm, um weitere Einblicke in die Hugepage-Konfiguration innerhalb des Speichermanagement-Subsystems des Kernels zu erhalten. Durch die Durchführung dieser Schritte werden Sie ein solides Verständnis dafür entwickeln, wie Sie den Status der Hugepages auf Ihrem Linux-System bestimmen können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") subgraph Lab Skills linux/ls -.-> lab-558793{{"So prüfen Sie, ob Kernel-Hugepages in Linux aktiviert sind"}} linux/cat -.-> lab-558793{{"So prüfen Sie, ob Kernel-Hugepages in Linux aktiviert sind"}} linux/cd -.-> lab-558793{{"So prüfen Sie, ob Kernel-Hugepages in Linux aktiviert sind"}} linux/grep -.-> lab-558793{{"So prüfen Sie, ob Kernel-Hugepages in Linux aktiviert sind"}} linux/env -.-> lab-558793{{"So prüfen Sie, ob Kernel-Hugepages in Linux aktiviert sind"}} end

Überprüfen von Hugepages in /proc/meminfo

In diesem Schritt werden wir untersuchen, wie Sie die aktuelle Hugepage-Konfiguration auf Ihrem Linux-System überprüfen können. Hugepages sind ein Feature des Linux-Kernels, das es dem System ermöglicht, größere Speicherseiten als die Standardgröße von 4 KB zu verwenden. Dies kann die Leistung von Anwendungen verbessern, die große Mengen an Speicher verwenden, wie z. B. Datenbanken und Virtualisierungssoftware.

Wir können Informationen über Hugepages in der Datei /proc/meminfo finden. Diese Datei enthält verschiedene speicherbezogene Statistiken für das System.

Öffnen Sie das Terminal, wenn Sie es noch nicht getan haben. Sie können dies tun, indem Sie auf das Symbol Xfce Terminal auf der linken Seite des Desktops klicken.

Lassen Sie uns nun den Inhalt von /proc/meminfo mit dem Befehl cat anzeigen. Der Befehl cat wird verwendet, um den Inhalt von Dateien anzuzeigen.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

cat /proc/meminfo

Dieser Befehl gibt den gesamten Inhalt der Datei /proc/meminfo in Ihrem Terminal aus. Sie werden eine Menge Informationen über den Speicher Ihres Systems sehen.

Um speziell nach Informationen zu Hugepages zu suchen, können wir den Befehl grep verwenden, um die Ausgabe von cat zu filtern. Der Befehl grep sucht nach Zeilen, die einem bestimmten Muster entsprechen.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat /proc/meminfo | grep HugePages

Das Symbol | wird als Pipe bezeichnet. Es nimmt die Ausgabe des Befehls auf der linken Seite (cat /proc/meminfo) und gibt sie als Eingabe an den Befehl auf der rechten Seite (grep HugePages) weiter. Auf diese Weise sucht grep nur innerhalb der Ausgabe von cat.

Sie sollten Zeilen ähnlich wie diese sehen (die genauen Zahlen können variieren):

HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

Lassen Sie uns analysieren, was diese Zeilen bedeuten:

  • HugePages_Total: Die Gesamtzahl der auf dem System konfigurierten Hugepages.
  • HugePages_Free: Die Anzahl der Hugepages, die derzeit frei und für die Verwendung verfügbar sind.
  • HugePages_Rsvd: Die Anzahl der Hugepages, die für die zukünftige Verwendung reserviert sind.
  • HugePages_Surp: Die Anzahl der Hugepages, die über der Einstellung vm.nr_hugepages liegen (wir werden uns dies im nächsten Schritt ansehen).
  • Hugepagesize: Die Größe jeder Hugepage. Auf den meisten Systemen beträgt dies 2048 kB (2 MB).

In dieser Umgebung ist die Standardkonfiguration wahrscheinlich 0 Gesamt-Hugepages, was für allgemeine Systeme üblich ist.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Überprüfen der Hugepage-Einstellungen mit sysctl vm.nr_hugepages

Im vorherigen Schritt haben wir uns /proc/meminfo angesehen, um die aktuelle Nutzung von Hugepages zu sehen. Jetzt verwenden wir den Befehl sysctl, um den Kernel-Parameter zu überprüfen, der die Gesamtzahl der Hugepages steuert.

Der Befehl sysctl wird verwendet, um Kernel-Parameter zur Laufzeit anzuzeigen und zu ändern. Kernel-Parameter sind Einstellungen, die das Verhalten des Linux-Kernels beeinflussen.

Der spezifische Parameter, der uns interessiert, ist vm.nr_hugepages. Dieser Parameter bestimmt die Gesamtzahl der Hugepages, die der Kernel reservieren soll.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

sysctl vm.nr_hugepages

Dieser Befehl zeigt den aktuellen Wert des Kernel-Parameters vm.nr_hugepages an.

Sie sollten eine Ausgabe ähnlich wie diese sehen:

vm.nr_hugepages = 0

Diese Ausgabe bestätigt, dass die aktuelle Einstellung für die Gesamtzahl der Hugepages 0 ist. Dies stimmt mit dem überein, was wir in /proc/meminfo gesehen haben, wo HugePages_Total ebenfalls 0 war.

Der Befehl sysctl ist ein leistungsstarkes Werkzeug zum Überprüfen und Ändern vieler Aspekte des Kernel-Verhaltens. Obwohl wir uns hier nur auf vm.nr_hugepages konzentrieren, können Sie viele andere Parameter mit sysctl -a erkunden.

Das Verständnis von Kernel-Parametern wie vm.nr_hugepages ist wichtig, um die Systemleistung für bestimmte Workloads zu optimieren.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Untersuchung der Hugepage-Konfiguration in /sys/kernel/mm

In diesem letzten Schritt werden wir einen anderen Ort erkunden, an dem Informationen zur Hugepage-Konfiguration verfügbar sind: das /sys-Dateisystem. Das /sys-Dateisystem bietet eine Schnittstelle zu Kernel-Datenstrukturen, die es uns ermöglicht, Kernel-Objekte zu untersuchen und manchmal zu ändern.

Hugepage-bezogene Informationen können unter /sys/kernel/mm/transparent_hugepage gefunden werden. Transparente Hugepages (Transparent Hugepages, THP) ist ein Feature, das versucht, automatisch Hugepages zu verwenden, ohne dass Anwendungen eine explizite Konfiguration vornehmen müssen.

Navigieren wir in dieses Verzeichnis mit dem Befehl cd. cd steht für "change directory" (Verzeichnis wechseln).

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cd /sys/kernel/mm/transparent_hugepage

Jetzt, da wir uns im Verzeichnis /sys/kernel/mm/transparent_hugepage befinden, lassen Sie uns die Dateien in diesem Verzeichnis mit dem Befehl ls auflisten. Der Befehl ls listet den Inhalt eines Verzeichnisses auf.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

ls

Sie sollten eine Ausgabe ähnlich wie diese sehen:

defrag  enabled  khugepaged  numa_defrag  shmem_enabled  split_huge_pmd_size  split_huge_pte_size

Diese Dateien repräsentieren verschiedene Konfigurationsoptionen und Statusindikatoren für Transparente Hugepages.

Lassen Sie uns den Inhalt der Datei enabled mit dem Befehl cat anzeigen. Diese Datei zeigt an, ob Transparente Hugepages aktiviert, deaktiviert oder in einem 'madvise'-Modus (wo Anwendungen den Kernel über die Nutzung von Hugepages beraten können) sind.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat enabled

Sie sollten eine Ausgabe ähnlich wie diese sehen:

[always] madvise never

Die Ausgabe gibt die aktuelle Einstellung an. [always] bedeutet, dass THP derzeit für alle Zuordnungen aktiviert ist.

Jetzt lassen Sie uns die Datei defrag betrachten. Diese Datei steuert, ob der Kernel versuchen sollte, den Speicher zu defragmentieren, um Hugepages verfügbar zu machen.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat defrag

Sie sollten eine Ausgabe ähnlich wie diese sehen:

[always] defer defer+madvise madvise never

Wiederum gibt [always] die aktuelle Einstellung für die Speicherdefragmentierung im Zusammenhang mit THP an.

Das /sys-Dateisystem ist eine wertvolle Ressource, um den internen Zustand und die Konfiguration des Kernels zu verstehen. Das Erkunden von Verzeichnissen wie /sys/kernel/mm kann tiefe Einblicke in die Speicherverwaltung geben.

Sie haben nun erfolgreich Hugepage-Informationen mit drei verschiedenen Methoden untersucht: /proc/meminfo, sysctl und dem /sys-Dateisystem.

Klicken Sie auf Weiter, um das Lab abzuschließen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob Kernel-Hugepages auf einem Linux-System aktiviert und konfiguriert sind. Wir haben drei Methoden zur Erreichung dieses Ziels untersucht. Zunächst haben wir die Datei /proc/meminfo mit cat und grep untersucht, um wichtige Hugepage-Statistiken wie HugePages_Total, HugePages_Free und Hugepagesize anzuzeigen.

Als Nächstes würden wir normalerweise die Hugepage-Einstellungen mit sysctl vm.nr_hugepages überprüfen und die Hugepage-Konfiguration im Verzeichnis /sys/kernel/mm untersuchen, obwohl die detaillierten Schritte für diese Methoden im bereitgestellten Inhalt nicht vollständig angegeben wurden. Diese Schritte zeigen insgesamt, wie man den aktuellen Zustand und die Konfiguration von Hugepages auf einem Linux-System feststellen kann.