Was sind die Nachteile der Deaktivierung von THP und warum ist es in vielen Distributionen standardmäßig aktiviert?

7

Ich und mein Team haben kürzlich festgestellt, dass das Starten von Redis auf unseren VMs die folgende Warnung ausgibt: "WARNUNG In Ihrem Kernel ist die THP-Unterstützung (Transparent Huge Pages) aktiviert. Dies führt zu Problemen mit der Latenz und der Speichernutzung bei Redis."

Ich habe das Thema ein wenig untersucht, um herauszufinden, dass die meisten DB-Anbieter Ihnen empfehlen (falls nicht erforderlich), THP zu deaktivieren. Nur ein paar Beispiele:

Mir ist auch aufgefallen, dass in vielen Distributionen diese Funktion standardmäßig aktiviert ist:

  • roter Hut
  • CentOS
  • Ubuntu
  • CoreOS

Die Fragen sind also:

  • Warum ist es standardmäßig aktiviert?
  • Was könnten die Nachteile / Risiken der Deaktivierung von THP auf unseren Cluster-VMs sein (ein Kubernetes-Cluster auf CoreOS-Basis, auf dem viele verschiedene Docker-Container ausgeführt werden)?
Mettjus
quelle

Antworten:

6

Das THP ist eine Linux-Funktion. Es ist in einigen Linux-Distributionen standardmäßig aktiviert, um die Anwendungsleistung zu erhöhen. Einige Anbieter von Betriebssystemdatenbanken empfehlen dies jedoch nicht, da dies die Leistung ihrer Produkte beeinträchtigt.

Aus den Red-HAT-Dokumenten (Warum das THP aktiviert ist):

Da das Ziel von THP darin besteht, die Leistung zu verbessern, haben seine Entwickler (sowohl aus der Community als auch aus Red Hat) THP für eine Vielzahl von Systemen, Konfigurationen, Anwendungen und Workloads getestet und optimiert. Dadurch können die Standardeinstellungen von THP die Leistung der meisten Systemkonfigurationen verbessern. THP wird jedoch nicht für Datenbank-Workloads empfohlen.

Von: Oracle Docs (Warum sollten Sie das THP deaktivieren?)

Leider funktionieren transparente HugePages nicht gut mit Oracle-Datenbanken und sind mit Neustarts von Knoten in RAC-Installationen und Leistungsproblemen sowohl bei Einzelinstanz- als auch bei RAC-Installationen verbunden. Aus diesem Grund empfiehlt Oracle, Transparent HugePages auf allen Servern zu deaktivieren, auf denen Oracle-Datenbanken ausgeführt werden

Was könnten die Nachteile / Risiken der Deaktivierung von THP auf unseren Cluster-VMs sein?

Das Aktivieren von THP ist eine Sicherheitsfunktion, um den mmapFlutangriff zu verhindern .

Anwendungen können jedoch weiter optimiert werden, um diese Funktion zu nutzen, beispielsweise wurden sie zuvor optimiert, um eine Flut von mmapSystemaufrufen für jedes Malloc (4k) zu vermeiden . Die Optimierung des Benutzerlandes ist bei weitem nicht obligatorisch und khugepaged kann bereits für langlebige Seitenzuweisungen sorgen, selbst für Anwendungen, die keine großen Seiten kennen und große Speichermengen verarbeiten.

GAD3R
quelle