CCoW: Optimieren von Copy-on-Write unter Berücksichtigung der räumlichen Lokalität in Workloads Teil 5
Apr 03, 2024
4. Bewertung
In diesem Abschnitt werden die Bewertungsergebnisse des vorgeschlagenen CCoW-Systems vorgestellt. Wir haben CCoW im Linux-Kernel v5.7.7 implementiert und dafür etwa 400 Zeilen Code benötigt. Die Bewertung wurde auf einem Server mit einer Intel Xeon Gold 5215 CPU und 128 GB Arbeitsspeicher durchgeführt.
Der Zusammenhang zwischen Beurteilungsergebnissen und Gedächtnis hat schon immer große Aufmerksamkeit erregt. Untersuchungen zeigen, dass gute Beurteilungsergebnisse eng mit einem hervorragenden Gedächtnis verbunden sind.
Einerseits erfordern gute Bewertungsergebnisse wiederholtes Lernen und Beherrschen von Wissenspunkten sowie ein hohes Maß an Verständnis und vertiefter Beherrschung. Diese erfordern eine gute Speicherunterstützung. Insbesondere bei Prüfungen müssen Kandidaten schnell reagieren und Fragen in kurzer Zeit richtig und schnell beantworten, was ein hervorragendes Gedächtnis als Grundvoraussetzung erfordert. Nur mit einem hervorragenden Gedächtnis können Sie unter Druck Ihr Bestes geben.
Andererseits können gute Beurteilungsergebnisse auch die Verbesserung des Gedächtnisses fördern. Wenn wir hervorragende Prüfungsergebnisse erhalten, verspüren wir ein Erfolgserlebnis und eine Zufriedenheit. Diese positiven Emotionen wirken sich positiv auf unser Gedächtnis und Lernen aus. Ein guter emotionaler Zustand kann die Verbindung und Informationsübertragung von Nervenzellen im Gehirn fördern und dadurch das Gedächtnis verbessern.
Zusammenfassend lässt sich sagen, dass zwischen Beurteilungsergebnissen und dem Gedächtnis ein sich gegenseitig verstärkender Zusammenhang besteht. Um bessere Bewertungsergebnisse zu erhalten, müssen wir unser Gedächtnis kontinuierlich verbessern, und das Erhalten guter Bewertungsergebnisse kann unser Gedächtnis weiter verbessern. Wir sollten negative Emotionen beiseite legen, die Bewertungsergebnisse und den Lernprozess mit einer positiven Einstellung behandeln, hart und beharrlich arbeiten und daran glauben, dass wir Erfolg haben werden! Es ist ersichtlich, dass wir das Gedächtnis verbessern müssen, und Cistanche deserticola kann das Gedächtnis erheblich verbessern, da Cistanche deserticola antioxidative, entzündungshemmende und Anti-Aging-Wirkungen hat, die dazu beitragen können, Oxidations- und Entzündungsreaktionen im Gehirn zu reduzieren und so das Gehirn zu schützen Gesundheit des Nervensystems. Darüber hinaus kann Cistanche deserticola auch das Wachstum und die Reparatur von Nervenzellen fördern und so die Konnektivität und Funktion neuronaler Netzwerke verbessern. Diese Effekte können dazu beitragen, das Gedächtnis, das Lernen und die Denkgeschwindigkeit zu verbessern und können auch die Entwicklung kognitiver Dysfunktionen und neurodegenerativer Erkrankungen verhindern.

Klicken Sie auf „Wissen“, um das Kurzzeitgedächtnis zu verbessern
Zur Analyse verschiedener Leistungsmerkmale nutzten wir einen hauseigenen Mikrobenchmark. Um realistische Arbeitslasten zu bewerten, haben wir den Yahoo Cloud Servicebenchmark (YCSB) [30,31] für Redis [4] verwendet. Diese Programme werden mit den Standardparametern konfiguriert, sofern nicht anders angegeben. Da CCoW auf Kernel-Ebene implementiert wird, waren für Benutzeranwendungen keine Änderungen erforderlich.
4.1. Charakterisierung der CCoW-Leistung
Da CCoW durch zwei Parameter gesteuert wird, nämlich die Regionsgröße und den Abdeckungsschwellenwert, bestimmen diese Parameter die Leistung und das Ausführungsverhalten von CCoW.
In diesem Sinne haben wir zunächst den Einfluss der Regionsgröße auf die Leistung und den Overhead von CCoW bewertet. Wir haben ein Mikrobenchmark-Programm entwickelt, um die Effizienz von Copy-on-Write zu bewerten. Das Programm ist dem Ausführungsverhalten von Redis nachempfunden. Zunächst werden die 16 GB Speicherplatz, aufgeteilt in 1-KB-Blöcke, gefüllt. Anschließend wird ein Block ausgewählt und wiederholt mit den vordefinierten Daten aktualisiert.
Der Benchmark iteriert die Vorgänge, bis 160 GB Daten geschrieben sind. Die Zielblöcke werden gemäß der Zipfiand-Verteilung mit dem Parameter=1.0 ausgewählt, um einen angemessenen Grad an Lokalität in den Zugriffen bereitzustellen.
Diese Vorgänge simulieren die Aktualisierungsvorgänge von Redis mit YCSB-Workloads. Um die Snapshot-Funktion von Redis zu imitieren, wird der Benchmark regelmäßig forkchild'shildprocess. Nach der Erstellung des untergeordneten Prozesses sinkt die Leistung des Haupt-Benchmark-Prozesses aufgrund des erhöhten Aufwands für die Seitenfehlerbehandlung stark.
Die Leistung wird im Laufe der Zeit wiederhergestellt und stabilisiert, da weniger Seiten für die Copy-on-Writ-Maßnahme übrig bleiben. Die Zeit vom Leistungsabfall bis zur Wiederherstellung beträgt 99 % der normalen Leistung unter Verwendung der ursprünglichen CoW-Konfiguration und unter Verwendung dieser Zeit als Intervall für die Forks.
Der untergeordnete Prozess wurde vor dem Beenden zwei Fork-Intervalle lang im Leerlauf gehalten. Wir messen den durchschnittlichen Durchsatz des Benchmarks und den Speicherbedarf des Prozesses, während wir die Größe der Region von 32 KB auf 2 MB variieren. Der Durchsatz gibt den Leistungsgewinn mit CCoW an, je höher desto besser.

Der Speicherbedarf wird durch Summieren der Residential Set Size (RSS) der Prozesse gemessen und gibt den Speicheraufwand des CCoW-Schemas an. Die Ergebnisse sind in Abbildung 3 zusammengefasst. Die ursprüngliche Konfiguration ohne Vorkopie wird als „CoW“ bezeichnet und die Leistungswerte werden auf die der CoW-Konfiguration normalisiert.

Insgesamt verbesserte sich die Systemleistung in einer kleinen Region nicht wesentlich und verschlechterte sich bei 32-KB-Regionen. In größeren Regionskonfigurationen hingegen konnte eine deutliche Verbesserung beobachtet werden. Bis zu einer Regionsgröße von 512 KB war die Leistungsänderung jedoch geringfügig. Dies ist auf die begrenzten Ausbeutungsmöglichkeiten in kleinen Regionen zurückzuführen. Der Überwachungsaufwand war unabhängig von der Regionsgröße konsistent.
Wenn die Region 2 MB groß war, überwog der Nutzen den Mehraufwand, und wir können eine Leistungsverbesserung von etwa 0 % beobachten. Die Leistung wurde jedoch mit größeren Regionsgrößen weiter verbessert.
Der Speicherbedarf zeigte einen anderen Trend als die Leistung. Selbst bei einer kleinen Regionsgröße kam es zu einer erheblichen Speicheraufblähung, die mit zunehmender Regionsgröße zunahm. Selbst mit 2-MB-Regionen stieg der Wert jedoch nicht wesentlich an. Aus dieser Auswertung können wir schließen, dass 2-MB-Regionen den maximalen Leistungsvorteil bei einem angemessenen Speicheraufwand bieten.

Daher haben wir diese Regionsgröße für den Rest der Studie verwendet. Als nächstes messen wir den Durchsatz und den Speicherbedarf, um den besten Abdeckungsschwellenwert für die Vorkopie zu finden, während wir den CCoW-Schwellenwert von 70 % auf 95 % ändern. Abbildung 4 fasst dies zusammen die Messergebnisse.
Alle Metriken werden auf die der ursprünglichen „CoW“-Konfiguration normalisiert. Die Zahl neben „CCoW-“ ist der Schwellenwert für die Konfiguration. Die „CCoW-All“-Konfiguration ist eine extreme Konfiguration, bei der der Schwellenwert auf Null gesetzt ist, sodass jeder Seitenfehler einen 2-MB-Bereich kopiert. Diese Konfiguration ähnelt im Grunde dem System mit einer großen Seite.
Wenn der Schwellenwert hoch ist, führt das System nur dann Vorkopien durch, wenn es sehr sicher ist. Somit besteht eine geringere Ausnutzungsmöglichkeit, was zu einer leichten Leistungsverbesserung führt. Wenn der Schwellenwert dagegen zu klein ist, besteht eine hohe Wahrscheinlichkeit, dass das System Regionen mit niedriger Lokalität fälschlicherweise als Regionen mit hoher Lokalität vorhersagt. Für Precoplow-Lokalitätsregionen entsteht ein Overhead ohne Vorteile, der den Leistungsvorteil zunichte macht.
Somit erreicht die Leistung ihren Höhepunkt bei einem Schwellenwert von 80 % und nimmt bei niedrigeren Schwellenwerten ab. Der Speicherplatzaufwand ist umgekehrt proportional zum Schwellenwert. Je niedriger der Schwellenwert der Systemkonfiguration ist, desto mehr Seiten werden kopiert, wodurch sich der Speicherbedarf erhöht. Bei der „CCoW-All“-Konfiguration haben wir eine sehr hohe Speicheraufblähung festgestellt.
In dieser Konfiguration führt jeder Seitenfehler zu einer Kopie eines 2-MB-Bereichs, sodass der übergeordnete Prozess schließlich die Originaldaten nahezu vollständig kopiert.
Da der untergeordnete Prozess zwei Fork-Zeiträume lang laufen kann, existieren mehrere untergeordnete Instanzen gleichzeitig, wodurch der kumulierte Speicherbedarf sehr groß wird. Basierend auf dieser Auswertung verwendeten wir für den Rest der Studie einen Abdeckungsschwellenwert von 80 %.

For more information:1950477648nn@gmail.com






