Verwenden des CSV-In-Memory-Lesecache

Gilt für: Azure Stack HCI, Versionen 22H2 und 21H2, Windows Server 2022, Windows Server 2019, Windows Server 2016

In diesem Thema wird beschrieben, wie Sie den Arbeitsspeicher des Systems einsetzen, um die Leistung von Azure Stack HCI und Windows Server durch das Zwischenspeichern häufiger Lesevorgänge zu steigern. Schreibvorgänge können nicht im Arbeitsspeicher zwischengespeichert werden.

Azure Stack HCI und Windows Server sind mit dem CSV-In-Memory-Lesecache (Cluster Shared Volume, Freigegebenes Clustervolume) kompatibel. Der Einsatz des Arbeitsspeichers des Systems zum Zwischenspeichern von Lesevorgängen kann die Leistung von Anwendungen wie Hyper-V verbessern, die ungepufferte E/A-Vorgänge für den Zugriff auf VHD- oder VHDX-Dateien verwenden. (Nicht gepufferte E/A-Vorgänge sind Vorgänge, die nicht vom Windows-Cache-Manager zwischengespeichert werden.)

Da der Speichercache serverlokal ist, verbessert er die Datenlokalität. Zuletzt verwendete Lesevorgänge werden im Arbeitsspeicher auf demselben Host zwischengespeichert, auf dem der virtuelle Computer (VM) ausgeführt wird, wodurch die Häufigkeit von Lesevorgängen über das Netzwerk verringert wird. Dies führt zu einer geringeren Latenz und einer besseren Arbeitsspeicherleistung.

Beachten Sie, dass sich der CSV-In-Memory-Lesecache im Arbeitsspeicher vom Speicherpoolcache unterscheidet.

Überlegungen zur Planung

Der In-Memory-Lesecache ist am effektivsten für Workloads mit vielen Lesevorgängen, wie z. B. Virtual Desktop Infrastructure (VDI). Bei Workloads mit extrem vielen Schreibvorgängen kann der Cache hingegen mehr Aufwand als Nutzen bringen und sollte deshalb deaktiviert werden.

Sie können bis zu 80 % des gesamten physischen Arbeitsspeichers für den CSV-In-Memory-Lesecache verwenden. Achten Sie darauf, ausreichend Arbeitsspeicher für Ihre VMs zur Verfügung zu stellen!

Hinweis

Bestimmte Tools für das Microbenchmarking wie DISKSPD und VM Fleet erzielen mit aktiviertem CSV-In-Memory-Read-Cache ggf. schlechtere Ergebnisse als ohne. VM Fleet erstellt standardmäßig eine 10 GiB große VHDX pro VM (insgesamt etwa 1 TiB für 100 VMs) und führt dann gleichmäßig zufällige Lese- und Schreibvorgänge auf diesen VMs durch. Im Gegensatz zu realen Workloads folgen die Lesevorgänge keinem vorhersehbaren oder sich wiederholenden Muster. Daher ist der In-Memory-Cache nicht effektiv, sondern verursacht nur zusätzlichen Verarbeitungsaufwand.

Konfigurieren des In-Memory-Lesecaches

Der CSV-In-Memory-Lesecache ist in Azure Stack HCI, Windows Server 2019 und Windows Server 2016 mit gleicher Funktionalität verfügbar. Unter Azure Stack HCI und Windows Server 2019 ist dieser Cache mit zugeteilter Größe von 1 GiB (Gibibyte) standardmäßig aktiviert. Unter Windows Server 2016 ist er standardmäßig deaktiviert.

Betriebssystemversion Standardgröße des CSV-Caches
Azure Stack HCI 1 GiB
Windows Server 2019 1 GiB
Windows Server 2016 0 (deaktiviert)

Konfigurieren des Caches mit Windows Admin Center

Gehen Sie wie folgt vor, um den Cache mit Windows Admin Center zu konfigurieren:

  1. Stellen Sie in Windows Admin Center eine Verbindung mit einem Cluster her, und wählen Sie dann links im Bereich Extras die Option Einstellungen aus.
  2. Wählen Sie im Bereich Einstellungen unter Speicher die Option In-Memory-Cache aus.
  3. Im rechten Bereich aktiviert oder deaktiviert ein Kontrollkästchen den Cache, und Sie können auch den maximalen Arbeitsspeicher pro Server angeben, der dem Cache zugeordnet werden soll.
  4. Wählen Sie dann die Option Schließen.

In Windows Admin Center aktivieren bzw. deaktivieren Sie den Cache über ein Kontrollkästchen. Außerdem können Sie den maximalen Arbeitsspeicher pro Server angeben, der dem Cache zugeordnet werden soll.

Konfigurieren des Caches mit PowerShell

Führen Sie folgendes als Administrator aus, um zu ermitteln, wie viel Arbeitsspeicher mithilfe von PowerShell zugewiesen wird:

(Get-Cluster).BlockCacheSize

Der zurückgegebene Wert entspricht Mebibytes (MiB) pro Server. 1024 stellt z. B. 1 GiB dar.

Um die Größe des zugeteilten Arbeitsspeichers zu ändern, bearbeiten Sie diesen Wert mit PowerShell. Um z. B. 2 GiB pro Server zuzuteilen, führen Sie Folgendes aus:

(Get-Cluster).BlockCacheSize = 2048

Damit Änderungen sofort wirksam werden, müssen Sie Ihre CSV-Volumes anhalten und dann fortsetzen oder auf andere Server verschieben. Verschieben Sie z. B. mit diesem PowerShell-Fragment jedes CSV auf einen anderen Serverknoten und wieder zurück:

Get-ClusterSharedVolume | ForEach {
    $Owner = $_.OwnerNode
    $_ | Move-ClusterSharedVolume
    $_ | Move-ClusterSharedVolume -Node $Owner
}

Nächste Schritte

Verwandte Informationen: