Speicher-Lese-Caching
Das Lesecaching verbessert die Datenträgerleistung einer VM, da die Daten nach dem ersten Lesen von einem externen Datenträger 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 dem Datenträger gelesenen Blöcke drastisch reduziert. Zum Beispiel in der Citrix Virtual Desktops-Umgebung Machine Creation Services (MCS)-Umgebungen.
Die Leistungsverbesserung kann immer dann beobachtet werden, wenn Daten mehr als einmal von dem Datenträger gelesen werden, da sie im Speicher zwischengespeichert werden. Diese Änderung macht sich am deutlichsten in der Verschlechterung des Dienstes bemerkbar, die in schweren E/A-Situationen auftritt Zum Beispiel in den folgenden Situationen:
- Wenn eine beträchtliche Anzahl von Endbenutzern innerhalb eines sehr engen Zeitrahmens hochfährt (Boot-Storm)
- Wenn eine erhebliche Anzahl von VMs zur gleichen Zeit Malware-Scans ausführen soll (Antivirenstürme).
Das Lesecaching ist standardmäßig aktiviert, wenn Sie über den entsprechenden Lizenztyp verfügen.
Hinweis:
Storage Read Caching ist für Kunden der XenServer Premium Edition verfügbar.
Lesecache aktivieren und deaktivieren
Für dateibasierte SR-Typen wie NFS-, EXT3/EXT4-, SMB- und GFS2-SR-Typen ist Lese-Caching standardmäßig aktiviert. Die Lese-Zwischenspeicherung ist für alle anderen SRs deaktiviert.
Führen Sie den folgenden Befehl aus, um das Lesecaching für ein bestimmtes SR über die xe-CLI zu deaktivieren:
xe sr-param-set uuid=sr-uuid other-config:o_direct=true
<!--NeedCopy-->
Um den Lesecache für ein bestimmtes SR über XenCenter zu deaktivieren, rufen Sie das Eigenschaftendialogfeld für das SR auf. Auf der Registerkarte Lesezwischenspeicherung können Sie das Lesezwischenspeichern aktivieren oder deaktivieren.
Weitere Informationen finden Sie unter SR-Eigenschaften ändern.
Einschränkungen
-
Lese-Caching ist nur für NFS-, EXT3/EXT4-, SMB- und GFS2-SRs verfügbar. Es ist nicht für andere SR-Typen verfügbar.
-
Der Lesecache gilt nur für schreibgeschützte VDIs und VDI-Eltern. Diese VDIs sind dort vorhanden, wo VMs aus “Fast Clone” oder Datenträger-Snapshots erstellt werden. Die größten Leistungsverbesserungen können erzielt werden, wenn viele VMs aus einem einzigen “goldenen” Image geklont werden.
-
Leistungsverbesserungen hängen von der Menge an freiem Speicher ab, die in der Control Domain (dom0) des Hosts verfügbar ist. Durch Erhöhen der Größe des dom0-Speichers kann dem Lese-Cache mehr Speicher zugewiesen werden. Informationen zum Konfigurieren des dom0-Speichers finden Sie unter CTX134951.
-
Wenn das Speicherlese-Caching aktiviert ist, führt ein Cache-Fehler dazu, dass I/O serialisiert wird. Dies kann manchmal teurer sein als das Ausschalten des Lesecachings, da bei ausgeschaltetem Lese-Caching I/O parallelisiert werden kann. Um die Auswirkungen von Cache-Fehlern zu reduzieren, erhöhen Sie den verfügbaren dom0-Speicher oder deaktivieren Sie das Lesecaching für den SR.
Vergleich mit IntelliCache
IntelliCache und speicherbasiertes Lese-Caching ergänzen sich in gewisser Hinsicht. IntelliCache speichert nicht nur auf einer anderen Ebene, sondern speichert auch Schreibvorgänge zusätzlich zu Lesevorgängen. IntelliCache speichert Lesevorgänge aus dem Netzwerk auf einem lokalen Datenträger. Im Speicherlesecaching werden die Lesevorgänge aus dem Netzwerk oder dem Datenträger in den Hostspeicher zwischengespeichert. Der Vorteil des speicherinternen Lesecachings besteht darin, dass der Speicher immer noch eine Größenordnung schneller ist als eine Solid-State-Disk (SSD). Die Leistung bei Boot-Storms und anderen schweren I/O-Situationen verbessert sich
Sowohl Read-Caching als auch IntelliCache können gleichzeitig aktiviert werden. In diesem Fall speichert IntelliCache die Lesevorgänge aus dem Netzwerk auf einen lokalen Datenträger. Lesevorgänge von diesem lokalen Datenträger werden im Speicher mit Lese-Caching zwischengespeichert.
Stellen Sie die Lese-Cache-Größe
Die Lesecacheleistung kann optimiert werden, indem der Steuerdomäne von XenServer (dom0) mehr Speicher zur Verfügung gestellt wird.
Wichtig:
Stellen Sie die Lesecachegröße auf ALLEN Hosts im Pool zur Optimierung einzeln ein. Alle nachfolgenden Änderungen an der Größe des Lesecaches müssen auch auf allen Hosts im Pool festgelegt werden.
Öffnen Sie auf dem XenServer-Host eine lokale Shell und melden Sie sich als Root an.
Führen Sie den folgenden Befehl aus, um die Größe des Lesecaches festzulegen:
/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=nnM,max:nnM
<!--NeedCopy-->
Stellen Sie sowohl den Anfangs- als auch den Maximalwert auf denselben Wert ein. Um beispielsweise den dom0-Speicher auf 20.480 MiB zu setzen:
/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
Wie kann ich die aktuelle dom0-Speicherzuweisung anzeigen?
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 Gemeinkosten geringer sein als erwartet. Die folgende Beispieltabelle zeigt die Ausgabe von einem Host, 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, beispielsweise 32.768 MiB. Wir empfehlen jedoch, den dom0-Speicher nicht unter 1 GiB zu reduzieren.
XenCenter Displaynotizen
Der gesamte Arbeitsspeicher des Hosts kann als Xen-Hypervisor, dom0, VMs und freien Speicher betrachtet werden. Obwohl dom0 und VM-Speicher normalerweise eine feste Größe haben, verwendet der Xen-Hypervisor eine variable Speichermenge. Die Menge des verwendeten Speichers hängt von verschiedenen Faktoren ab. Zu diesen Faktoren gehören die Anzahl der virtuellen Maschinen, die zu einem beliebigen Zeitpunkt auf dem Host ausgeführt werden, und wie diese VMs konfiguriert sind. Es ist nicht möglich, die Menge an Speicher zu begrenzen, die Xen verwendet. Durch die Begrenzung des Arbeitsspeichers kann Xen nicht mehr genügend Arbeitsspeicher haben und verhindert, dass neue VMs gestartet werden, selbst wenn der Host über freien Speicher verfügt.
Um den einem Host zugewiesenen Speicher anzuzeigen, wählen Sie in XenCenter den Host aus, und klicken Sie dann auf die Registerkarte Speicher .
Das Feld XenServer zeigt die Summe des Speichers an, der dom0 - und Xen-Speicher zugewiesen ist. Daher kann die angezeigte Speichermenge höher sein als vom Administrator angegeben. Die Speichergröße kann beim Starten und Stoppen von VMs variieren, auch wenn der Administrator eine feste Größe für dom0 festgelegt hat.