Neue Methode zur Speichermanagement von Facebook

Ein Mitglied des Entwicklungsteams des sozialen Netzwerks Facebook, Roman Guschin, schlug in der Entwickler-Mail eine Sammlung von Patches fĂŒr den Linux-Kernel, die darauf abzielen, die Speicherverwaltung zu verbessern, durch die Implementierung eines neuen Speichermanagementcontrollers — slab (slab memory controller).

Slab-Verteilung –– ist ein Speicherverwaltungssystem, das fĂŒr eine effizientere Verteilung von Speicher und zur Beseitigung erheblicher Fragmentierung entwickelt wurde. Das Grundprinzip dieses Algorithmus besteht darin, dass der reservierte Speicher, der ein Objekt eines bestimmten Typs enthĂ€lt, erhalten bleibt und dieser Speicher bei der nĂ€chsten Reservierung fĂŒr ein Objekt desselben Typs wiederverwendet wird. Diese Methode wurde erstmals von Jeff Bonwick in SunOS eingefĂŒhrt und wird derzeit in den Kernen vieler Unix-Betriebssysteme, einschließlich FreeBSD und Linux, weit verbreitet.

Die Grundlage des neuen Controllers ist der Transfer der slab-Verwaltung von der Seite des Speichers zur Ebene der Kernelobjekte, was die gemeinsame Nutzung einer slab-Seite in verschiedenen cgroups ermöglicht, anstatt einen separaten Cache fĂŒr jede cgroup bereitzustellen.

Die Testergebnisse zeigen, dass die vorgeschlagene Methode zur Speicherverwaltung die Effizienz der slab-Nutzung um bis zu 45%, sowie den Gesamtverbrauch des Betriebssystems Kernspeichers reduziert. Zudem fĂŒhrt die Verringerung der Anzahl an fĂŒr slab reservierten Seiten zu einer allgemeinen Reduzierung der Speicherfragmentierung, was sich positiv auf die Systemgeschwindigkeit auswirkt.

Der neue Controller wird seit mehreren Monaten auf den Produktionsservern von Facebook getestet, und bisher kann man das Testen als erfolgreich bezeichnen: Bei gleichbleibender Geschwindigkeit und ohne Erhöhung der Fehleranzahl wurde eine deutliche Einsparung des Speicherverbrauchs festgestellt — auf einigen Servern bis zu 1 GB. Diese Zahl ist eher subjektiv, so zeigten frĂŒhere Tests etwas geringere Ergebnisse:

  • 650-700 MB im Web-Frontend
  • 750-800 MB auf dem Datenbank-Cache-Server
  • 700 MB auf dem DNS-Server

>>> Seite des Autors auf GitHub


>>> Ergebnisse frĂŒherer Tests

Quelle: linux.org.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster