Facebook hat den TMO-Mechanismus eingeführt, mit dem Sie 20–32 % des Speichers auf Servern einsparen können

Ingenieure von Facebook (in der Russischen Föderation verboten) haben letztes Jahr einen Bericht über die Implementierung der TMO-Technologie (Transparent Memory Offloading) veröffentlicht, die erhebliche Einsparungen beim RAM auf Servern ermöglicht, indem für die Arbeit nicht benötigte Sekundärdaten auf billigere Laufwerke wie NVMe verlagert werden SSD-Festplatten. Facebook schätzt, dass durch den Einsatz von TMO 20 bis 32 % RAM auf jedem Server eingespart werden können. Die Lösung ist für den Einsatz in Infrastrukturen konzipiert, in denen Anwendungen in isolierten Containern ausgeführt werden. Kernelseitige Komponenten von TMO sind bereits im Linux-Kernel enthalten.

Auf der Seite des Linux-Kernels wird die Technologie durch das PSI-Subsystem (Pressure Stall Information) unterstützt, das ab Version 4.20 verfügbar ist. PSI wird bereits in verschiedenen Low-Memory-Handlern verwendet und ermöglicht die Analyse von Informationen über die Wartezeit für den Erhalt verschiedener Ressourcen (CPU, Speicher, I/O). Mit PSI können User-Space-Prozessoren die Systemauslastung und Verlangsamungsmuster genauer einschätzen, sodass Anomalien frühzeitig erkannt werden können, bevor sie spürbare Auswirkungen auf die Leistung haben.

Im Benutzerbereich wird TMO von der Senpai-Komponente bereitgestellt, die über cgroup2 das Speicherlimit für Anwendungscontainer basierend auf den von PSI empfangenen Daten dynamisch anpasst. Senpai analysiert über PSI die Anzeichen beginnender Ressourcenknappheit, beurteilt die Anfälligkeit von Anwendungen gegenüber Verlangsamungen des Speicherzugriffs und versucht, die vom Container benötigte Mindestspeichergröße zu ermitteln, bei der die für den Betrieb erforderlichen Daten im RAM verbleiben, sowie die dazugehörigen Parameter Daten, die im Dateicache abgelegt sind oder gerade nicht direkt verwendet werden, werden zwangsweise auf die Swap-Partition verschoben.

Facebook hat den TMO-Mechanismus eingeführt, mit dem Sie 20–32 % des Speichers auf Servern einsparen können

Der Kern von TMO besteht also darin, Prozesse in Bezug auf den Speicherverbrauch strikt einzuhalten und den Austausch ungenutzter Speicherseiten zu erzwingen, deren Räumung die Leistung nicht wesentlich beeinträchtigt (z. B. Seiten mit Code, der nur während der Initialisierung verwendet wird, und Seiten zur einmaligen Verwendung). Daten im Festplattencache). Im Gegensatz zur Entfernung von Informationen in die Swap-Partition als Reaktion auf Speicherauslastung werden Daten bei TMO auf der Grundlage einer proaktiven Vorhersage entfernt.

Eines der Kriterien für die Räumung ist das Fehlen eines Zugriffs auf die Speicherseite für 5 Minuten. Solche Seiten werden als Cold-Memory-Seiten bezeichnet und machen im Durchschnitt etwa 35 % des Anwendungsspeichers aus (je nach Art der Anwendung liegt die Spanne zwischen 19 % und 65 %). Bei der Vorbelegung werden Aktivitäten im Zusammenhang mit anonymen Speicherseiten (von der Anwendung zugewiesener Speicher) und Speicher für die Dateizwischenspeicherung (vom Kernel zugewiesen) berücksichtigt. In einigen Anwendungen ist der Hauptverbrauch anonymer Speicher, in anderen ist jedoch auch der Dateicache wichtig. Um Ungleichgewichte bei der Cache-Bereinigung zu vermeiden, verwendet TMO einen neuen Paging-Algorithmus, der anonyme Seiten und Seiten, die mit dem Datei-Cache verknüpft sind, proportional entfernt.

Das Verschieben selten verwendeter Seiten in einen langsameren Speicher hat keinen wesentlichen Einfluss auf die Leistung, kann jedoch die Hardwarekosten erheblich senken. Die Daten werden auf SSD-Laufwerke oder in einen komprimierten Auslagerungsbereich im RAM übertragen. Bezogen auf die Kosten für die Speicherung eines Datenbytes ist die Verwendung einer NVMe-SSD bis zu zehnmal günstiger als die Verwendung der Komprimierung im RAM.

Facebook hat den TMO-Mechanismus eingeführt, mit dem Sie 20–32 % des Speichers auf Servern einsparen können


Source: opennet.ru

Kommentar hinzufügen