Verwenden des CSV-Speicherlesecaches
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 Systemspeicher verwenden, um die Leistung von Azure Stack HCI und Windows Server zu steigern, indem häufig gelesene Lesevorgänge zwischengespeichert werden. Schreibvorgänge können nicht im Arbeitsspeicher zwischengespeichert werden.
Azure Stack HCI und Windows Server sind mit dem Cluster Shared Volume (CSV) In-Memory-Lesecache kompatibel. Die Verwendung des Systemspeichers zum Zwischenspeichern von Lesevorgängen kann die Leistung für Anwendungen wie Hyper-V verbessern, die nicht gebufferte E/A verwendet, um auf VHD- oder VHDX-Dateien zuzugreifen. (Nicht gepufferte E/A-Vorgänge sind alle Vorgänge, die nicht vom Windows-Cache-Manager zwischengespeichert werden.)
Da der Cache im Arbeitsspeicher server-lokal ist, wird die Datenlokalität verbessert. Zuletzt verwendete Lesevorgänge werden im Arbeitsspeicher auf demselben Host zwischengespeichert, auf dem der virtuelle Computer (VM) ausgeführt wird, wodurch die Häufigkeit der Lesevorgänge über das Netzwerk reduziert wird. Dies führt zu einer geringeren Latenz und einer besseren Speicherleistung.
Beachten Sie, dass sich der CSV-Speicherlesecache vom Speicherpoolcacheunterscheidet.
Überlegungen zur Planung
Der Speicherlesecache ist für leseintensive Workloads wie Virtual Desktop Infrastructure (VDI) am effektivsten. Wenn die Workload jedoch äußerst schreibintensiv ist, kann der Cache mehr Mehraufwand als Wert verursachen und deaktiviert werden.
Sie können bis zu 80% des gesamten physischen Speichers für den CSV-In-Memory-Lese-Cache verwenden. Achten Sie darauf, genügend Arbeitsspeicher für Ihre virtuellen Computer zu hinterlassen!
Anmerkung
Bestimmte Microbenchmarking-Tools wie DISKSPD und VM Fleet können schlechtere Ergebnisse erzielen, wenn der CSV-Speicherlesecache aktiviert ist, als ohne ihn. Standardmäßig erstellt VM Fleet eine 10 GiB VHDX pro VM – ca. 1 TiB gesamt für 100 VMs – und führt dann gleichmäßig zufällige Lese- und Schreibvorgänge aus. Im Gegensatz zu echten Workloads folgen die Lesevorgänge keine vorhersagbaren oder sich wiederholenden Muster, sodass der Speichercache nicht effektiv ist und nur Mehraufwand verursacht.
Konfigurieren des Speicherlesecaches
Der CSV-Speicherlesecache ist in Azure Stack HCI, Windows Server 2019 und Windows Server 2016 mit derselben Funktionalität verfügbar. In Azure Stack HCI und Windows Server 2019 ist es standardmäßig aktiviert, wobei 1 gibibyte (GiB) zugewiesen ist. In Windows Server 2016 ist sie 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 mithilfe von Windows Admin Center
Gehen Sie wie folgt vor, um den Cache mit Windows Admin Center zu konfigurieren:
- Stellen Sie in Windows Admin Center eine Verbindung mit einem Cluster her, und wählen Sie dann Einstellungen im Bereich Tools auf der linken Seite aus.
- Wählen Sie In-Memory-Cache unter Speicher im Bereich Einstellungen aus.
- 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 zugewiesen werden soll.
- Wenn Sie fertig sind, wählen Sie Speichernaus.
Konfigurieren des Caches mithilfe von PowerShell
Um zu sehen, wie viel Arbeitsspeicher mithilfe von PowerShell zugewiesen wird, führen Sie folgendes als Administrator aus:
(Get-Cluster).BlockCacheSize
Der zurückgegebene Wert liegt in mebibytes (MiB) pro Server. Beispielsweise stellt 1024
1 GiB dar.
Um zu ändern, wie viel Arbeitsspeicher zugewiesen wird, ändern Sie diesen Wert mithilfe von PowerShell. Um beispielsweise 2 GiB pro Server zuzuweisen, führen Sie Folgendes aus:
(Get-Cluster).BlockCacheSize = 2048
Pausieren Sie Ihre CSV-Volumes und setzen Sie sie dann fort, oder verschieben Sie sie zwischen Servern, damit Änderungen sofort wirksam werden. Verwenden Sie z. B. dieses PowerShell-Fragment, um die einzelnen CSV-Dateien in einen anderen Serverknoten und wieder zurück zu verschieben:
Get-ClusterSharedVolume | ForEach {
$Owner = $_.OwnerNode
$_ | Move-ClusterSharedVolume
$_ | Move-ClusterSharedVolume -Node $Owner
}
Nächste Schritte
Verwandte Informationen finden Sie auch unter: