Speicher-Lesecaching
Das Lese-Caching verbessert die Festplattenleistung einer VM, da die Daten nach dem ersten Lesen von der externen Festplatte 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 macht sich am deutlichsten bei der Dienstverschlechterung bemerkbar, 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-Storm)
- Wenn eine beträchtliche Anzahl von VMs gleichzeitig Malware-Scans durchführen soll (Antivirus-Stürme).
Das Lese-Caching ist standardmäßig aktiviert, wenn Sie den entsprechenden Lizenztyp besitzen.
Hinweis:
Speicher-Lese-Caching ist für Kunden der XenServer® Premium Edition verfügbar.
Lese-Caching aktivieren und deaktivieren
Für dateibasierte SRs, wie z. B. NFS-, EXT3/EXT4-, SMB- und GFS2-SR-Typen, ist das Lese-Caching standardmäßig aktiviert. Für alle anderen SRs ist das Lese-Caching deaktiviert.
Sie können das Lese-Caching auf NFS-, EXT3/EXT4- oder SMB-SRs deaktivieren. Für GFS2-SRs kann das Lese-Caching nicht deaktiviert werden.
Um das Lese-Caching für ein bestimmtes 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 das Lese-Caching für ein bestimmtes SR mithilfe von XenCenter® zu deaktivieren, gehen Sie zum Dialogfeld Eigenschaften für das SR. Auf der Registerkarte Lese-Caching können Sie das Lese-Caching aktivieren oder deaktivieren.
Weitere Informationen finden Sie unter Ändern der 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, wenn VMs aus „Fast Clone“ oder Disk-Snapshots erstellt werden. Die größten Leistungsverbesserungen sind zu beobachten, wenn viele VMs von einem einzigen „Golden Image“ geklont werden.
-
Leistungsverbesserungen hängen von der Menge des verfügbaren freien Speichers in der Kontrolldomäne (dom0) des Hosts ab. Eine Erhöhung des dom0-Speichers ermöglicht die Zuweisung von mehr Speicher für den Lesecache. Informationen zur Konfiguration des dom0-Speichers finden Sie unter (/de-de/xenserver/9/memory-usage#change-the-amount-of-memory-allocated-to-the-control-domain).
-
Wenn das Speicher-Lesecaching aktiviert ist, führt ein Cache-Fehler dazu, dass E/A-Vorgänge serialisiert werden. Dies kann manchmal teurer sein, als das Lesecaching deaktiviert zu lassen, da bei deaktiviertem Lesecaching E/A-Vorgänge parallelisiert werden können. 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 den SR.
Vergleich mit IntelliCache™
IntelliCache und speicherbasiertes Lesecaching ergänzen sich in gewisser Hinsicht. IntelliCache speichert nicht nur auf einer anderen Ebene, sondern speichert zusätzlich zu den Lesevorgängen auch Schreibvorgänge. IntelliCache speichert Lesevorgänge aus dem Netzwerk auf einer lokalen Festplatte. Das In-Memory-Lesecaching speichert die Lesevorgänge aus dem Netzwerk oder von der Festplatte im 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 speichert IntelliCache die Lesevorgänge aus dem Netzwerk auf einer lokalen Festplatte. Lesevorgänge von dieser lokalen Festplatte werden mit Lesecaching im Speicher zwischengespeichert.
Lesecache-Größe festlegen
Die Leistung des Lesecaches kann optimiert werden, indem der Kontrolldomäne (dom0) von XenServer 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 vorgenommen werden.
Öffnen Sie auf dem XenServer-Host 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. Zum Beispiel, um 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 als erwartet sein. Die folgende Beispiel-Tabelle 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 Control Domain (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-Anzeigehinweise
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 Speichermenge. Die verwendete Speichermenge hängt von verschiedenen Faktoren ab. Zu diesen Faktoren gehören die Anzahl der VMs, die jederzeit auf dem Host ausgeführt werden, und wie diese VMs konfiguriert sind. 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.