ITEC -  Operating Systems Group

Generalizing Memory Deduplication for Native Applications, Sandboxes and Virtual Machines

  • Type:Diploma Thesis
  • Date:30.04.2013
  • Supervisor:

    Prof. Dr. Frank Bellosa, Konrad Miller

  • Graduand:Philipp Kern
  • Links:PDF
  • Abstract (In German):

    Die vorliegende Arbeit beschäftigt sich mit Speicherdeduplikation von Speicherseiten unter Linux laufender Programme. Bei der Deuplikation von Speicher wird versucht, möglichst viele Speicherseiten mit gleichem Inhalt zu finden und zusammenzulegen, sodass dieselbe Seite von mehreren Programmen gleichzeitig genutzt werden kann und insgesamt weniger Speicher für die Anwendungen benötigt wird.

    Im Arbeitsspeicher vorhandene Redundanzen können auf aktuellen Plattformen durch zwei Ansätze erkannt und ausgenutzt werden: durch inhaltsbewusste Deduplikation und die periodische Überprüfung von Speicherinhalten auf Redundanzen. Die inhaltsbewusste Deduplikation nutzt Eigenschaften der Daten, z.B. deren Quelle, um gleiche Speicherseiten möglichst ohne aufwendige Analysen zu identifizieren. Die periodische Überprüfung liest
    die Speicherinhalte in regelmäßigen Abständen aus und sucht mit Hilfe von Hashwerten
    nach Duplikaten.

    Den Hauptteil dieser Arbeit bildet die Offline-Analyse von vier Lastszenarien. Diese beeinhalten Desktopumgebungen mit in diesem Umfeld üblichen Programmen (Benutzeroberfläche, Webbrowser und Office-Programme) und ein Serverszenario mit einem dedizierten Server eines Computerspiels. Die Szenarien wurden insbesondere in Hinblick auf Redundanzen in Mehrbenutzerkonfigurationen untersucht, wie sie in Cloud-Umgebungen üblich sind. Die Offline-Analyse basiert auf Momentaufnahmen des Speicherinhalts, welcher mittels Schnittstellen ausgelesen und archiviert wird. Diese Speicherauszüge werden dann ausgewertet, um Redundanzen gemäß unterschiedlicher Vorgehensweisen zu finden.

    Die Evaluation der Lastszenarien zeigt, dass Redundanzen im Speicherinhalt der untersuchten Anwendungen ausschließlich zwischen Dateien bzw. innerhalb von dynamisch allokiertem Speicher auftreten, nicht aber zwischen diesen beiden Domänen. Es bietet sich daher an, diese Speicherbereiche getrennt voneinander zu behandeln, um eine effizientere Deduplikation zu erreichen. Insbesondere wäre auch die Deduplikation von Dateien vorteilhaft, da diese bisher in Linux noch nicht implementiert ist.

    Systemprimitive wie mmap sollten erweitert werden, um die Wiederverwendbarkeit von Speicherkacheln basierend auf deren Inhalt zu ermöglichen. Unterschiedliche Dateien mit gleichem Inhalt könnten so im Speicher durch die gleichen Kacheln dargestellt werden. Linux unterscheidet dateibasierten und anonymen Speicher. Die Analyse hat gezeigt, dass nicht nur die bereits implementierte Deduplikation von anonymen Speicher verfügbar sein sollte, sondern auch diejenige von dateibasiertem Speicher.

    BibTex:

    @mastersthesis{kern13memorydeduplication,
     author = {Philipp Kern},
     title = {Generalizing Memory Deduplication for Native Applications, Sandboxes and Virtual Machines},
     type = {Diploma Thesis},
     school = {System Architecture Group, Karlsruhe Institute of Technology (KIT), Germany},
     month = apr # "30",
     year = 2013,
     note = {\url{http://os.ibds.kit.edu/}}
     }