Facebook hat einen TMO-Mechanismus vorgestellt, der 20-32 % Speicher auf Servern spart.

Ingenieure von Facebook (in Russland verboten) haben einen Bericht über die Implementierung der TMO-Technologie (Transparent Memory Offloading) im vergangenen Jahr veröffentlicht. Diese Technologie ermöglicht eine erhebliche Einsparung von Arbeitsspeicher auf Servern, indem unnötige sekundäre Daten auf kostengünstigere Speicher wie NVMe-SSDs ausgelagert werden. Laut Facebook ermöglicht der Einsatz von TMO eine Einsparung von 20 bis 32 % RAM auf jedem Server. Die Lösung ist für Infrastrukturen konzipiert, in denen Anwendungen in isolierten Containern ausgeführt werden. Die TMO-Komponenten, die im Kernel arbeiten, sind bereits Teil des Linux-Kernels.

Die Technologie auf der Linux-Kernel-Seite wird von der PSI (Pressure Stall Information) bereitgestellt, die seit der Version 4.20 verfügbar ist. PSI wird bereits in verschiedenen Out-of-Memory-Handlern verwendet und ermöglicht die Analyse von Wartezeiten für verschiedene Ressourcen (CPU, Arbeitsspeicher, Ein-/Ausgabe). Mit PSI können Benutzerraum-Handler die Systemauslastung und die Art der Leistungsverschlechterung genauer einschätzen, was es ermöglicht, Abweichungen frühzeitig zu erkennen, bevor sie sich signifikant auf die Leistung auswirken.

Im Benutzerraum sorgt das TMO für die Funktionalität des Senpai-Moduls, das über cgroup2 die Speicherkapazität für Anwendungscontainer dynamisch anpasst, basierend auf den aus PSI gewonnenen Daten. Senpai analysiert Anzeichen für einen bevorstehenden Ressourcenmangel über PSI, bewertet die Empfindlichkeit der Anwendungen gegenüber einer Verlangsamung des Zugriffs auf den Speicher und versucht, die minimal benötigte Speicherkapazität für den Container zu bestimmen. Dabei bleibt sichergestellt, dass die erforderlichen Daten im RAM verbleiben, während begleitende Daten, die im Dateicache abgelegt oder aktuell nicht verwendet werden, in den Swap-Bereich verschoben werden.

Facebook hat einen TMO-Mechanismus vorgestellt, der 20-32 % Speicher auf Servern spart.

Die Kernidee von TMO besteht darin, Prozesse in Bezug auf den Speicherverbrauch strengen Vorgaben zu unterziehen. Dadurch wird erreicht, dass nicht genutzte Seiten in den Auslagerungsbereich verschoben werden. Dieses Auslagern hat keinen signifikanten Einfluss auf die Leistung, beispielsweise bei Seiten mit Code, der nur während der Initialisierung verwendet wird, oder bei einzelnen Daten, die im Festplattencache gespeichert sind. Im Gegensatz zur Auslagerung von Informationen bei speicherbedingtem Druck erfolgt die Datenverlagerung im TMO auf Grundlage von proaktiven Vorhersagen.

Ein Kriterium für die Speicherverdrängung ist die Abwesenheit eines Zugriffs auf eine Speicherseite für 5 Minuten. Solche Seiten werden als kalt (cold memory page) bezeichnet und machen durchschnittlich etwa 35 % des Anwendungsbodens aus (je nach Art der Anwendungen variiert dies zwischen 19 % und 65 %). Bei der Verdrängung wird die Aktivität berücksichtigt, die mit anonymen Speicherseiten (Speicher, der von der Anwendung zugewiesen wird) und der beim Caching von Dateien verwendeten Speicher (von dem Kern zugewiesen) verbunden ist. In einigen Anwendungen ist der Hauptverbrauch mit anonymem Speicher verbunden, in anderen ist der Dateicache von großem Bedeutung. Um Ungleichgewichte bei der Verdrängung von Speicher in den Cache zu vermeiden, kommt im TMO ein neuer Seitenauslagerungsalgorithmus zum Einsatz, der anonyme Seiten und Seiten, die mit dem Dateicache verbunden sind, proportional verdrängt.

Die Auslagerung selten genutzter Seiten in einen langsameren Speicher hat zwar keinen großen Einfluss auf die Leistung, ermöglicht jedoch eine deutliche Reduzierung der Hardwarekosten. Daten werden auf SSD-Laufwerke oder in einen komprimierten Bereich des Arbeitsspeichers ausgelagert. In Bezug auf die Kosten für die Speicherung eines Bytes sind NVMe SSDs bis zu 10 Mal günstiger als die Verwendung von Kompression im Arbeitsspeicher.

Facebook hat einen TMO-Mechanismus vorgestellt, der 20-32 % Speicher auf Servern spart.


Quelle: opennet.ru
Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster