Speicher-Lesecaching
Lese-Caching verbessert die Festplattenleistung einer VM, da nach dem ersten Lesen von der externen Festplatte Daten im freien Speicher des Hosts zwischengespeichert werden. Es verbessert die Leistung in Situationen, in denen viele VMs von einer einzigen Basis-VM geklont werden, da es die Anzahl der von der Festplatte gelesenen Blöcke drastisch reduziert. Zum Beispiel in Citrix Virtual Desktops Umgebungen mit Machine Creation Services™ (MCS).
Die Leistungsverbesserung ist immer dann sichtbar, wenn Daten mehr als einmal von der Festplatte gelesen werden, da sie im Speicher zwischengespeichert werden. Diese Änderung ist am deutlichsten bei der Dienstverschlechterung zu erkennen, die bei hohen E/A-Lasten auftritt. Zum Beispiel in den folgenden Situationen:
- Wenn eine beträchtliche Anzahl von Endbenutzern innerhalb eines sehr kurzen Zeitraums hochfährt (Boot-Sturm)
- Wenn eine beträchtliche Anzahl von VMs gleichzeitig Malware-Scans durchführen soll (Antivirus-Stürme).
Lese-Caching ist standardmäßig aktiviert, wenn Sie den entsprechenden Lizenztyp besitzen.
Hinweis:
Speicher-Lese-Caching ist für XenServer® Premium Edition Kunden verfügbar.
Lese-Caching aktivieren und deaktivieren
Für dateibasierte SRs, wie NFS-, EXT3/EXT4-, SMB- und GFS2-SR-Typen, ist Lese-Caching standardmäßig aktiviert. Für alle anderen SRs ist Lese-Caching deaktiviert.
Sie können Lese-Caching auf NFS-, EXT3/EXT4- oder SMB-SRs deaktivieren. Für GFS2-SRs kann Lese-Caching nicht deaktiviert werden.
Um Lese-Caching für eine bestimmte SR mithilfe der xe CLI zu deaktivieren, führen Sie den folgenden Befehl aus:
xe sr-param-set uuid=sr-uuid other-config:o_direct=true
<!--NeedCopy-->
Um Lese-Caching für eine bestimmte SR mithilfe von XenCenter® zu deaktivieren, gehen Sie zum Dialogfeld Eigenschaften für die SR. Im Tab Lese-Caching können Sie Lese-Caching aktivieren oder deaktivieren.
Weitere Informationen finden Sie unter Ändern von SR-Eigenschaften.
Einschränkungen
-
Lesecaching ist nur für NFS-, EXT3/EXT4-, SMB- und GFS2-SRs verfügbar. Es ist nicht für andere SR-Typen verfügbar.
-
Lesecaching gilt nur für schreibgeschützte VDIs und VDI-Eltern. Diese VDIs existieren, wo VMs aus „Fast Clone“ oder Festplatten-Snapshots erstellt werden. Die größten Leistungsverbesserungen sind zu sehen, wenn viele VMs von einem einzigen „Golden Image“ geklont werden.
-
Leistungsverbesserungen hängen von der Menge des freien Speichers ab, der in der Kontrolldomäne (dom0) des Hosts verfügbar ist. Das Erhöhen des dom0-Speichers ermöglicht, mehr Speicher für den Lesecache zuzuweisen. Informationen zur Konfiguration des dom0-Speichers finden Sie unter Ändern der dem Steuerungsbereich zugewiesenen Speichermenge.
-
Wenn das Speicher-Lesecaching aktiviert ist, führt ein Cache-Fehler dazu, dass E/A serialisiert wird. Dies kann manchmal teurer sein, als wenn das Lesecaching deaktiviert ist, da bei deaktiviertem Lesecaching E/A parallelisiert werden kann. Um die Auswirkungen von Cache-Fehlern zu reduzieren, erhöhen Sie die Menge des verfügbaren dom0-Speichers oder deaktivieren Sie das Lesecaching für das SR.
Vergleich mit IntelliCache™
IntelliCache und speicherbasiertes Lesecaching sind in gewisser Hinsicht komplementär. IntelliCache cached nicht nur auf einer anderen Ebene, sondern auch Schreibvorgänge zusätzlich zu Lesevorgängen. IntelliCache cached Lesevorgänge aus dem Netzwerk auf einer lokalen Festplatte. In-Memory-Lesecaching cached die Lesevorgänge aus dem Netzwerk oder von der Festplatte in den Host-Speicher. Der Vorteil des In-Memory-Lesecachings ist, dass der Speicher immer noch um eine Größenordnung schneller ist als eine Solid-State-Disk (SSD). Die Leistung bei Boot-Stürmen und anderen Situationen mit hoher E/A-Last verbessert sich.
Sowohl Lesecaching als auch IntelliCache können gleichzeitig aktiviert werden. In diesem Fall cached IntelliCache die Lesevorgänge aus dem Netzwerk auf einer lokalen Festplatte. Lesevorgänge von dieser lokalen Festplatte werden mit Lesecaching im Speicher gecached.
Lesecache-Größe festlegen
Die Lesecache-Leistung kann optimiert werden, indem XenServers Kontrolldomäne (dom0) mehr Speicher zugewiesen wird.
Wichtig:
Legen Sie die Lesecache-Größe auf ALLEN Hosts im Pool einzeln zur Optimierung fest. Alle nachfolgenden Änderungen an der Größe des Lesecaches müssen ebenfalls auf allen Hosts im Pool festgelegt werden.
Auf dem XenServer-Host öffnen Sie eine lokale Shell und melden Sie sich als Root an.
Um die Größe des Lesecaches festzulegen, führen Sie den folgenden Befehl aus:
/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=nnM,max:nnM
<!--NeedCopy-->
Setzen Sie sowohl den Anfangs- als auch den Maximalwert auf denselben Wert. Um beispielsweise den dom0-Speicher auf 20.480 MiB einzustellen:
/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=20480M,max:20480M
<!--NeedCopy-->
Wichtig:
Starten Sie alle Hosts neu, nachdem Sie die Größe des Lesecaches geändert haben.
Wie kann die aktuelle dom0-Speicherzuweisung angezeigt werden?
Um die aktuellen dom0-Speichereinstellungen anzuzeigen, geben Sie Folgendes ein:
free -m
<!--NeedCopy-->
Die Ausgabe von free -m zeigt die aktuellen dom0-Speichereinstellungen. Der Wert kann aufgrund verschiedener Overheads geringer sein als erwartet. Die folgende Beispieltabelle zeigt die Ausgabe eines Hosts, bei dem dom0 auf 2,6 GiB eingestellt ist.
| | Total | Used | Free | Shared | Buffer/cache | Available |
|---------------------|--------|------|-------|--------|--------------|-----------|
| Mem: | 2450 | 339 | 1556 | 9 | 554 | 2019 |
| Swap: | 1023 | 0 | 1023 | | | |
<!--NeedCopy-->
Welcher Wertebereich kann verwendet werden?
Da die XenServer-Kontrolldomäne (dom0) 64-Bit ist, können große Werte verwendet werden, zum Beispiel 32.768 MiB. Wir empfehlen jedoch, den dom0-Speicher nicht unter 1 GiB zu reduzieren.
XenCenter-Anzeigenhinweise
Der gesamte Speicher des Hosts kann als bestehend aus dem Xen®-Hypervisor, dom0, VMs und freiem Speicher betrachtet werden. Obwohl der dom0- und VM-Speicher normalerweise eine feste Größe hat, verwendet der Xen-Hypervisor eine variable Menge an Speicher. Die verwendete Speichermenge hängt von verschiedenen Faktoren ab. Zu diesen Faktoren gehören die Anzahl der jederzeit auf dem Host ausgeführten VMs und deren Konfiguration. Es ist nicht möglich, die von Xen verwendete Speichermenge zu begrenzen. Eine Begrenzung der Speichermenge kann dazu führen, dass Xen der Speicher ausgeht und neue VMs nicht gestartet werden können, selbst wenn der Host über freien Speicher verfügte.
Um den einem Host zugewiesenen Speicher anzuzeigen, wählen Sie in XenCenter den Host aus und klicken Sie dann auf die Registerkarte Memory.
Das XenServer-Feld zeigt die Summe des dom0 zugewiesenen Speichers und des Xen-Speichers an. Daher kann die angezeigte Speichermenge höher sein als vom Administrator angegeben. Die Speichergröße kann beim Starten und Stoppen von VMs variieren, selbst wenn der Administrator eine feste Größe für dom0 festgelegt hat.