Facebook hat einen TMO-Mechanismus vorgestellt, der 20-32 % RAM auf Servern einsparen kann.

Ingenieure von Facebook (in Russland verboten) haben einen Bericht über die Einführung der Technologie TMO (Transparent Memory Offloading) im vergangenen Jahr veröffentlicht. Diese Technologie ermöglicht eine signifikante Reduzierung des Arbeitsspeichers auf Servern, indem nicht benötigte sekundäre Daten auf kostengünstigere Speicherlösungen wie NVMe SSDs ausgelagert werden. Schätzungen zufolge ermöglicht TMO eine Einsparung von 20 bis 32 % RAM auf jedem Server. Die Lösung ist für Infrastrukturen ausgelegt, in denen Anwendungen in isolierten Containern betrieben werden. Die TMO-Komponenten, die im Kern arbeiten, sind bereits Teil des Linux-Kernels.

Im Linux-Kernel wird die Funktionsweise der Technologie durch das PSI (Pressure Stall Information) -Subsystem unterstützt, das seit der Version 4.20 verfügbar ist. PSI wird bereits in verschiedenen Handlungen bei Speichermangel eingesetzt und ermöglicht die Analyse von Wartezeiten für verschiedene Ressourcen (CPU, Speicher, Ein-/Ausgabe). Mithilfe von PSI können die Prozessoren im Benutzerspeicher die Systemlast und die Art der Leistungsbeeinträchtigung genauer beurteilen, was es ermöglicht, Abweichungen in einem sehr frühen Stadium zu erkennen, wenn sie sich noch nicht merklich auf die Performance auswirken.

Im Benutzerspeicher wird die TMO-Funktion durch die Komponente Senpai bereitgestellt, die über cgroup2 dynamisch die Speicherkapazitätsgrenzen für die Anwendungscontainer basierend auf den von PSI erhaltenen Daten anpasst. Senpai analysiert Anzeichen für einen beginnenden Ressourcenmangel über PSI, bewertet die Sensibilität der Anwendungen hinsichtlich der Verlangsamung des Speicherzugriffs und versucht, die minimale notwendige Speicherkapazität für den Container zu bestimmen, bei der die benötigten Daten im RAM bleiben und begleitende Daten, die im Dateicache gespeichert sind oder derzeit nicht verwendet werden, in den Swap-Bereich ausgelagert werden.

Facebook hat einen TMO-Mechanismus vorgestellt, der 20-32 % RAM auf Servern einsparen kann.

Damit besteht die Essenz von TMO darin, die Prozesse einer strengen Diät hinsichtlich des Speicherverbrauchs zu unterwerfen, indem ungenutzte Seiten des Speichers proaktiv in den Paging-Bereich verschoben werden, deren Austritt die Leistung nicht merklich beeinflusst (zum Beispiel Seiten mit Code, die nur bei der Initialisierung verwendet werden, und einzeln verwendete Daten im Festplattencache). Im Gegensatz zur Informationseinlagerung in den Paging-Bereich als Reaktion auf Speicherknappheit werden die Daten bei TMO auf der Grundlage proaktiver Prognosen verschoben.

Als eines der Kriterien für das Auslagern wird die Nichtzugänglichkeit einer Speicherseite über einen Zeitraum von 5 Minuten verwendet. Solche Seiten werden als kalte Speicherseiten (cold memory page) bezeichnet und machen im Durchschnitt etwa 35% des Speichers von Anwendungen aus (je nach Art der Anwendungen liegt der Bereich zwischen 19% und 65%). Bei der Auslagerung wird die Aktivität in Bezug auf anonyme Speicherseiten (Speicher, der vom Programm zugewiesen wird) und den Speicher, der zur Datei-Caching verwendet wird (vom Kernel zugewiesen), berücksichtigt. In einigen Anwendungen ist der Hauptspeicherverbrauch mit anonymer Speicherbelegung verbunden, während in anderen der Datei-Cache von großer Bedeutung ist. Um eine Ungleichheit beim Auslagern des Speichers in den Cache zu vermeiden, wird in TMO ein neuer Paging-Algorithmus verwendet, der anonyme Seiten und Seiten, die mit Datei-Caching verbunden sind, proportional auslagert.

Das Auslagern selten genutzter Seiten in einen langsameren Speicher hat nur geringe Auswirkungen auf die Leistung, ermöglicht jedoch eine erhebliche Reduzierung der Hardwarekosten. Daten werden auf SSD-Speicher oder in einen komprimierten Paging-Bereich im RAM verschoben. In Bezug auf die Kosten für die Speicherung eines Bytes von Daten ist die Verwendung von NVMe SSD bis zu 10 Mal günstiger als die Verwendung von Kompression im RAM.

Facebook hat einen TMO-Mechanismus vorgestellt, der 20-32 % RAM auf Servern einsparen kann.


Quelle: opennet.ru
60GB SSD 8Gb DDR4