Direkt zum Inhalt

Wie konfiguriere ich HugePages auf meiner Amazon-EC2-Linux-Instance?

Lesedauer: 3 Minute
0

Ich möchte HugePages auf meiner Amazon Elastic Compute Cloud (Amazon EC2)-Linux-Instance konfigurieren.

Lösung

Hinweis: Es hat sich bewährt, HugePages in einer Testumgebung zu konfigurieren und einen Vergleichstest der Leistung durchzuführen, bevor du HugePages in der Produktion einsetzt. Die HugePage-Größe kann auf x86_64-Systemen nur 2 MB oder 1 GB betragen. Weitere Informationen zu HugePages findest du unter Configuring HugePages on Linux (Konfigurieren von HugePages unter Linux) auf der Oracle-Website.

Voraussetzungen: Erkundige dich bei deinem Anbieter, ob deine Anwendung oder Datenbank HugePages unterstützt. Um die Menge des verfügbaren Speichers zu ermitteln, führe außerdem den folgenden Befehl aus, um den Gesamtspeicher der EC2-Instance zu überprüfen:

free -m

Gehe wie folgt vor, um HugePages auf der Linux-Instance zu konfigurieren:

  1. Führe den folgenden Befehl aus, um sicherzustellen, dass HugePages im Kernel nicht aktiviert ist:

    sudo cat /proc/sys/vm/nr_hugepages

    Wenn die Befehlsausgabe 0 ist, ist HugePages nicht aktiviert.

  2. Verwende die folgende Formel, um die Anzahl der benötigten HugePages zu berechnen:<br id=hardline_break/> Anzahl von HugePages = Erforderlicher Speicher / HugePage-Größe<br id=hardline_break/> Hinweis: Runde das Ergebnis auf, um sicherzustellen, dass du genügend Seiten erstellst.

  3. Führe den folgenden Befehl aus, um HugePages zu aktivieren und den Kernel-Parameterwert festzulegen:

    sudo sysctl -w vm.nr_hugepages=2048

    Hinweis: Ersetze 2048 durch die Anzahl der HugePages, die du berechnet hast.<br id=hardline_break/> Beispielausgabe:

    vm.nr_hugepages = 2048
  4. Um zu überprüfen, ob das System nach dem Neustart HugePages zuweist, füge der Datei /etc/sysctl.conf den folgenden Eintrag hinzu:

    sudo echo "vm.nr_hugepages=2048" >> /etc/sysctl.conf

    Hinweis: Ersetze 2048 durch die Anzahl der HugePages, die du berechnet hast.

  5. Führe den folgenden Befehl aus, um deine Änderungen zu überprüfen:

    sudo cat /etc/sysctl.conf

    Überprüfe in der Befehlsausgabe, ob ein Wert für vm.nr_hugepages vorhanden ist.<br id=hardline_break/> Beispielausgabe:

    # sudo cat /etc/sysctl.conf
    # sysctl settings are defined through files in
    # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
    #
    # Vendors settings live in /usr/lib/sysctl.d/.
    # To override a whole file, create a new file with the same in
    # /etc/sysctl.d/ and put new settings there. To override
    # only specific settings, add a file with a lexically later
    # name in /etc/sysctl.d/ and put new settings there.
    #
    # For more information, see sysctl.conf(5) and sysctl.d(5).
    vm.zone_reclaim_mode=1
    vm.nr_hugepages=2048
  6. Starte die Instance neu.

  7. Führe den folgenden Befehl erneut aus, um den HugePages-Wert und die -Konfiguration zu überprüfen:

    sudo cat /proc/sys/vm/nr_hugepages

    Wenn die Ausgabe der Anzahl von HugePages entspricht, die du berechnet hast, ist HugePages aktiviert.<br id=hardline_break/> Beispielausgabe:

    # sudo cat /proc/sys/vm/nr_hugepages
    2048
  8. Um die verfügbaren HugePages in /proc/meminfo zu überprüfen, führe den folgenden Befehl aus:

    sudo grep Huge /proc/meminfo

    Beispielausgabe:

    # sudo grep Huge /proc/meminfo
    HugePages_Total:    2048
    HugePages_Free:     2048
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB

    Definitionen der einzelnen HugePages-Werte findest du unter HugePages auf kernel.org.

Gehe wie folgt vor, um HugePages zu deaktivieren:

  1. Führe den folgenden Befehl aus, um nr_hugepages auf 0 zurückzusetzen:

    sudo sysctl -w vm.nr_hugepages=0
  2. Entferne den folgenden Eintrag aus sysctl.conf:

    sudo echo "vm.nr_hugepages=2048" >> /etc/sysctl.conf
  3. Starte die Instance neu.

AWS OFFICIALAktualisiert vor 8 Monaten