Runtime Effects of Memory Sharing and Deduplication

  • Type:Bachelor Thesis
  • Date:15.09.2012
  • Supervisor:

    Prof. Dr. Frank Bellosa, Marc Rittinghaus

  • Graduand:Michael Skinder
  • Links:PDF
  • Abstract:

    Hauptspeicher ist eine knappe Ressource. Vor allem im Serverbereich ist die Anzahl laufender Applikationen durch die Menge an Hauptspeicher beschränkt. Dort werden auf einem physischen Server meist viele virtuelle Server betrieben. Da hierbei meist eine schnelle Antwortzeit, aber keine große Rechenleistung nötig ist, limitiert der Hauptspeicher, in dem die Anwendungen gehalten werden müssen.

    Um den Hauptspeicher effizienter nutzen zu können sind verschiedene Techniken entwickelt worden, welche den Hauptspeicherverbrauch senken sollen. Hierbei sind die klassischen Techniken wie "shared libraries" oder der "buffer cache" zu nennen. Außerdem gibt es noch aktive Deduplizierungs-Techniken, welche den Hauptspeicher nach redundanten Inhalten durchsuchen und diese entfernen. Ohne diese Techniken kann sich, je nach Umgebung und Aufgabe des Systems, bis zu 86% redundanter Inhalt im Hauptspeicher befinden.

    Bisher wurden jedoch nur die Hauptspeicher Einsparungsmöglichkeiten dieser Techniken untersucht. Diese Arbeit soll die Laufzeiteffekte der oben genannten Techniken untersuchen. Hierfür werden auf einem NUMA System verschiedene Benchmarks so ausgeführt, dass sich diese mal Inhalte im Hauptspeicher teilen können und in einem weiteren Durchlauf das "Sharing" unterbunden wird. Dies kann auf einen einzelnen NUMA Knoten beschränkt, oder so gesteuert werden, dass der Benchmark den entfernten Speicher nutzen muss. Dadurch kann sowohl "Sharing" auf einem UMA als auch auf einem NUMA System betrachtet werden.

    Diese Arbeit zeigt, dass "Sharing" kaum Einfluss auf die Laufzeit von Programmen auf UMA Systemen hat. Im Idealfall wird zwar die Performanz gesteigert aber dies ist bei den meisten Applikationen kaum wahrnehmbar. Anders sieht es jedoch auf NUMA Systemen mit ihrem entfernten Speicher aus. Hier kann es zu einem Einbruch der Leistung um den Faktor zwei kommen. Eine Deduplizierung von Speicherseiten über die Grenzen einzelner NUMA Knoten hinweg, erweist sich daher in den meisten Fällen als kritisch.

    BibTex:

    @bachelorthesis{skinder12memorysharing,
     author = {Michael Skinder},
     title = {Runtime Effects of Memory Sharing and Deduplication},
     type = {Bachelor Thesis},
     address = {System Architecture Group, Karlsruhe Institute of Technology (KIT), Germany},
     month = sep # "15",
     year = 2012,
     url = {http://os.ibds.kit.edu/}
     }