Teil 1: Workload kennen, Image optimieren
Natürlich ist Geduld eine sehr subjektive Größe. Aber jede und jeder von uns hat einen Punkt, an dem unser persönlicher Geduldsfaden reißt. Bei mir das nach maximal 50 Millisekunden der Fall, danach muss eine Anwendung auf meinem Rechner genau das machen, was ich will. Wenn nicht, steigt die Frustration und sinkt die Motivation. Ein echtes Produktivitätsproblem, das in Zeiten des Corona-Virus noch erheblich an Brisanz gewonnen hat. Soll das Arbeiten von zu Hause aus auch nach der gegenwärtigen Krise fester Bestandteil betrieblicher Organisationsformen werden, so ist das Anwendererlebnis der wichtigste Faktor, der über den langfristigen Erfolg von digitalen Arbeitsplätzen, die zeit- und ortsunabhängiges Arbeiten ermöglichen, entscheidet.
Die Liste der Einflussfaktoren auf das Anwendererlebnis ist lang. Die Wahl des richtigen Übertragungsprotokolls, die verfügbare Bandbreite, die Komplexität des Anmeldeprozesses, die Workloads verschiedener Anwendergruppen, Konfiguration des Windows-10-Images usw. stehen ebenso auf dieser Liste, wie die Wahl der richtigen CPUs und der passenden Anzahl von vCPUs. Dabei wird diese Wahl wiederum von Tools und Sicherheitspatches beeinflusst, da sie sich leistungsmindernd auswirken können.
Zum Glück lassen sich bei dieser Frage einige generelle Aussagen treffen, die Orientierung geben und insbesondere auf Tests meines Kollegen Sven Huismann zurückgehen. Er und unser gemeinsamer Kollege Kees Baggermann haben ihre Empfehlungen im Übrigen vor wenigen Tagen auf dem VDI Performance Summit 2020 einem größeren Publikum vorgestellt (hier geht es zu ihrer Präsentation auf Brighttalk: Tales from the Dark - Avoiding performance issues in your EUC environment).
Workload kennen
Um die Ressourcenausstattung virtueller Arbeitsplätze optimal zu dimensionieren, gilt es vor allem anderen, zu verstehen, wie die Anwender arbeiten. Erst dann lässt sich bestimmen, wie viele CPUs mit welchen Taktraten nötig sind oder welche Größe der Hauptspeicher haben muss etc. Die Antwort auf die Frage, wie der Workload konkret aussieht, ist übrigens unabhängig davon, ob er in der Cloud oder im eigenen Rechenzentrum implementiert und bereitgestellt wird. Denn in beiden Umgebungen ist die Frage gleich relevant. Um dieses „Wie“ aber im Einzelfall zu klären, helfen Antworten auf die folgenden Fragen:
- Welche Mitarbeiter benötigen überhaupt einen virtuellen Arbeitsplatz?
- Zu welchen Uhrzeiten arbeiten die Mitarbeiter?
- Welche Applikationen nutzen sie?
- Wie oft, lang und intensiv arbeiten sie mit den Anwendungen?
- Auf welchem Endgerät nutzen sie die Applikationen?
- Welche Ressourcen benötigen die Applikationen?
Die Frage nach den von den Applikationen benötigten Ressourcen hat mehrere Aspekte:
- Arbeiten die Applikationen mit einem (single-threaded app) oder mehreren (multi-threated app) Ausführungssträngen gleichzeitig?
- Wie viel Arbeitsspeicher benötigen sie?
- Welche Netzwerklast erzeugen sie?
- Benötigen sie zusätzlich GPUs?
- Greifen sie auf gemeinsam genutzte Dateilaufwerke zu?
- Müssen sie auf andere Applikationen zugreifen, eventuell sogar im Backend?
- Benötigen sie den Zugriff auf Webcams oder Mikrofone?
Natürlich lassen sich die Antworten auf diese Fragen nicht in allen Unternehmen einfach und schnell ermitteln. Zudem müssen die Verantwortlichen in ihren Überlegungen zur optimalen Ressourcenausstattung die Auswirkungen weiterer Technologien berücksichtigen, die sie unter Umständen benötigen, um ihre Umgebung effizient abzubilden. Dazu zählen zum Beispiel Profile Container, Applikationslayering, Single Sign On und andere.
Dennoch leisten schon allein die Beschäftigung mit diesen Fragen und der Versuch, sie zumindest teilweise zu beantworten, einen wertvollen Beitrag zur Bestimmung einer optimalen Ressourcenausstattung für virtuelle Arbeitsplätze. Weitere Orientierungshilfen bieten Leitfäden der Hersteller zu Best Practices oder Referenzarchitekturen, die zum Beispiel das Zusammenspiel zwischen Nutanix und den Lösungen für virtuelle Arbeitsplätze von Citrix und VMware aufzeigen:
Nutanix Horizon View https://www.nutanix.com/de/go/vmware-horizon
Citrix Apps and Desktops https://www.nutanix.com/de/go/citrix-virtual-desktops-on-ahv
Image optimieren
Einer der wichtigsten Stellschrauben, wenn nicht DIE wichtigste ist die Optimierung des Windows-10-Images. Mit jedem Release benötigt das Betriebssystem mehr Ressourcen. Sicherlich ist vieles davon sinnvoll und unerlässlich, auf andere Dienste kann man in einer virtualisierten Arbeitsumgebung jedoch getrost verzichten – zum Beispiel, weil sie sich wie die Xbox Services an Privatanwender richten. Citrix liefert hier bei der Installation des VDA (Virtual Desktop Agent) gleich einige Optimierungen mit.
Abb. 1: Citrix Virtual Desktop: Leistungsoptimierung des Betriebssystems als Installationsoption
Die Optimierung während der Installation des Agenten reicht allein jedoch nicht aus, um optimale Leistungswerte zu erreichen. Deswegen haben sowohl Citrix als auch VMware Tools veröffentlicht, welche die meisten der nicht benötigten Services deaktivieren oder deinstallieren. Diese Werkzeuge haben den Vorteil, dass sich die Änderungen wieder rückgängig machen oder einzelne Optimierungen gezielt ausnehmen lassen.
So bietet der Citrix Optimizer zum Beispiel für Windows 10 in der Version 1903 folgende zusätzliche Optimierungen:
- Remove Windows Mail and Calendar
- Turn off Cortana
- Disable CEIP
- Disable Hibernation
- Disable Distributed Link Tracking
- Disable Windows Storage Sense
- Disable CSC (offline files driver)
Hier die Links zu den Tools verschiedener Hersteller:
Citrix: https://support.citrix.com/article/CTX224676
VMware: https://flings.vmware.com/vmware-os-optimization-tool
Microsoft: https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/rds-vdi-recommendations-1803
Herstellerunabhängiges Tool: http://www.bpanalyzer.com/
Die einzelnen Werkzeuge lassen sich übrigens miteinander kombiniert nutzen. Damit sich aber keine unerwünschten Nebeneffekte einstellen, sollten Administratoren die Funktionalität der virtualisierten Anwendungen testen, nachdem sie mithilfe der Tools Optimierungen vorgenommen haben.
Die Leistungssteigerungen, die sich durch dieses Vorgehen erzielen lassen, sind beeindruckend.
Abbildung 2 zeigt die Dichte virtueller Maschinen (VM) pro Host
a) ohne Optimierungen (vgl. „No Optimizations“),
b) mittels Standard-Optimierungen – im dargestellten Fall (vgl. „Optimized V1“) des Citrix VDA-Installationsprogramms – und
c) bei einem kombinierten Einsatz der oben vorgestellten Tools (vgl. “Optimized V2“):
Abb. 2 Optimierungstools steigern die maximale Anzahl von VMs auf einem Host, die Werte für die VM-Dichte gehen nach oben
Die Optimierungen wirken sich zudem positiv auf die Antwortzeiten der Applikationen aus:
Abb. 3 Optimierungen verkürzen die Antwortzeiten der Applikationen, ihre „Responsiveness“ steigt
Mit der Optimierung der VM-Dichte pro Host und der Konfiguration des Betriebssystem-Images sind wichtige Schritte zum passenden CPU-Sizing getan. Weitere betreffen die Anzahl der virtuellen CPUs pro VM, die Eignung verschiedener CPU-Generationen und die Auswirkungen von Sicherheits-Patches, die Teil 2 dieses Blogbeitrags behandeln wird.