Überwachen der CPU-Auslastung
Wichtig:
Citrix Hypervisor 8.2 Kumulatives Update 1 wird am 25. Juni 2025 End of Life. Planen Sie jetzt Ihr Upgrade auf XenServer 8, um einen reibungslosen Übergang und kontinuierlichen Support zu gewährleisten. Weitere Informationen finden Sie unter Upgrade.
Wenn Sie Ihre Citrix Virtual Apps and Desktops-Lizenzdateien verwenden, um Ihre Citrix Hypervisor 8.2 Cumulative Update 1-Hosts zu lizenzieren, sind diese Lizenzdateien nicht mit XenServer 8 kompatibel. Vor dem Upgrade müssen Sie XenServer Premium Edition-Socket-Lizenzdateien für die Verwendung mit XenServer 8 erwerben. Diese Socket-Lizenzdateien sind als Berechtigung für die Abonnements Citrix für Private Cloud, Citrix Universal Hybrid Multi-Cloud, Citrix Universal MSP und Citrix Platform License für die Ausführung Ihrer Citrix-Workloads verfügbar. Citrix-Kunden, die noch nicht auf diese neuen Abonnements umgestiegen sind, können die Teilnahme an einer kostenlosen Aktion für 10.000 XenServer Premium Edition-Socket-Lizenzen anfordern. Weitere Informationen finden Sie unter XenServer (Englisch).
Wenn Sie vor dem Upgrade keine kompatible Lizenz für XenServer 8 erhalten, werden Ihre Hosts beim Upgrade auf die 90-Tage-Testversion zurückgesetzt. Die Testversion bietet die gleichen Funktionen wie die Premium Edition, jedoch mit einigen Einschränkungen. Weitere Informationen finden Sie unter Übersicht über die XenServer 8-Lizenzierung.
Die optimale Anzahl von vCPUs pro pCPU auf einem Host hängt von Ihrem Anwendungsfall ab. Stellen Sie während des Betriebs sicher, dass Sie die Leistung Ihrer Citrix Hypervisor-Umgebung überwachen und Ihre Konfiguration entsprechend anpassen.
Bedingungen
In diesem Bereich gibt es verschiedene Begriffe, die teilweise synonym verwendet werden. In diesem Artikel verwenden wir die folgenden Begriffe und Bedeutungen:
- CPU (physische CPU): Die physische Hardware, die an einen Prozessorsockel angeschlossen ist.
- Kern: Eine physikalische Verarbeitungseinheit, die über einen unabhängigen Ausführungsthread verfügen kann und alle Funktionseinheiten enthält, die zur Unterstützung dieser Ausführung erforderlich sind.
- Hyperthread: Eine physische Verarbeitungseinheit, die über einen unabhängigen Ausführungsthread verfügen kann, der einige Funktionseinheiten mit einem anderen Hyperthread (auch als “gleichgeordneter Thread” bezeichnet) teilt.
- Logische CPU (pCPU): Eine Unit, die in der Lage ist, einen unabhängigen Ausführungsthread zu betreiben, der einen Satz von Registern und einen Anweisungszeiger enthält. In einem System mit aktivierten Hyperthreads handelt es sich um einen Hyperthread. In anderen Fällen ist es ein Kern.
- Host-pCPUs: Die Gesamtzahl der logischen CPUs auf dem Host.
- vCPU (Virtuelle CPU): Eine virtualisierte logische CPU. Dabei handelt es sich um eine logische Einheit, die über einen unabhängigen Ausführungsthread verfügen kann, der VMs zur Verfügung gestellt wird. In Citrix Hypervisor können vCPUs pCPUs “time-sharing”, indem sie einen Scheduler verwenden, um zu bestimmen, welche vCPU zu einem bestimmten Zeitpunkt auf welcher pCPU ausgeführt wird.
- Gast-vCPUs: Die vCPUs, die einem Gastbetriebssystem innerhalb einer VM präsentiert werden.
- Dom0 vCPUs: Die vCPUs, die für die Citrix Hypervisor-Steuerdomäne (dom0) sichtbar sind.
- Hosts gesamt vCPUs: Die Summe der dom0-vCPUs und aller Gast-vCPUs auf dem Host.
Allgemeines Verhalten
Die Gesamtzahl der vCPUs auf einem Host ist die Anzahl der von dom0 verwendeten vCPUs, die zur Gesamtzahl der vCPUs addiert wird, die allen VMs auf dem Host zugewiesen sind. Wenn Sie die Anzahl der vCPUs auf einem Host erhöhen, können die folgenden Arten von Verhalten auftreten:
-
Wenn die Gesamtzahl der vCPUs auf dem Host kleiner oder gleich die Anzahl der pCPUs auf dem Host, stellt der Host immer so viel CPU zur Verfügung, wie von den VMs angefordert wird.
-
Wenn die Gesamtzahl der vCPUs auf dem Host größer als die Anzahl der pCPUs auf dem Host, teilt der Host die Zeit der Host-pCPUs mit den VMs. Dieses Verhalten wirkt sich in der Regel nicht auf die VMs aus, da sich ihre vCPUs in der Regel für einen Teil der Zeit im Leerlauf befinden und der Host in den meisten Fällen nicht 100 % pCPU-Auslastung erreicht.
-
Wenn die Gesamtzahl der vCPUs auf dem Host größer als die Anzahl der pCPUs auf dem Host und der Host manchmal Wenn eine Host-pCPU-Auslastung von 100 % erreicht ist, erhalten die vCPUs der VMs nicht so viel pCPU, wie sie während der Spitzen anfordern. Stattdessen werden die VMs während dieser Spitzen langsamer, um einen Anteil der verfügbaren pCPU auf dem Host zu erhalten.
-
Wenn die Gesamtzahl der vCPUs auf dem Host größer als die Anzahl der pCPUs auf dem Host und der Host oft Bei Erreichen einer Host-pCPU-Auslastung von 100 % werden die vCPUs der VMs kontinuierlich verlangsamt, um einen Anteil der verfügbaren CPUs auf dem Host zu erhalten. Wenn die VMs Echtzeitanforderungen haben, ist diese Situation nicht ideal, und Sie können sie beheben, indem Sie die Anzahl der vCPUs auf dem Host reduzieren.
Die optimale Anzahl von vCPUs auf einem Host kann davon abhängen, wie die VM-Benutzer die Geschwindigkeit ihrer VMs wahrnehmen, insbesondere wenn die VMs Echtzeitanforderungen haben.
Abrufen von Informationen über Ihre CPUs
Um die Gesamtzahl der pCPUs auf Ihrem Host zu ermitteln, führen Sie den folgenden Befehl aus:
xe host-cpu-info --minimal
Führen Sie den folgenden Befehl aus, um die Gesamtzahl der vCPUs (guest und dom0) zu ermitteln, die sich derzeit auf Ihrem Host befinden:
xl vcpu-list | grep -v VCPU | wc -l
Überwachen der CPU-Auslastung mit RRD-Metriken
Citrix Hypervisor bietet RRD-Metriken, die beschreiben, wie die vCPUs auf Ihren VMs funktionieren.
Wenn die pCPU-Auslastung des Hosts 100 % beträgt
Wenn ein Host 100 % der pCPU-Auslastung des Hosts erreicht, verwenden Sie diese VM-Metriken, um zu entscheiden, ob die VM auf einen anderen Host verschoben werden soll:
Runstate_Parallelitätsgefahr
-
runstate_concurrency_hazard > 0% Gibt an, dass manchmal mindestens eine vCPU ausgeführt wird, während mindestens eine andere vCPU ausgeführt werden möchte, aber keine pCPU-Zeit abrufen kann. Wenn sich die vCPUs koordinieren müssen, führt dieses Verhalten zu Leistungsproblemen.
-
runstate_concurrency_hazard nähern sich 100 % ist eine Situation, die es zu vermeiden gilt.
Vorgeschlagene Maßnahmen:
Wenn Leistungsprobleme auftreten, führen Sie eine der folgenden Aktionen aus:
- Verringern Sie die Anzahl der vCPUs in der VM.
- Verschieben Sie die VM auf einen anderen Host.
- Verringern Sie die Gesamtzahl der vCPUs auf dem Host, indem Sie andere VMs migrieren oder deren Anzahl von vCPUs verringern.
Runstate_Partial_Contention
-
runstate_partial_contention > 0% Gibt sowohl an, dass mindestens eine vCPU ausgeführt werden möchte, aber keine pCPU-Zeit abrufen kann, als auch, dass mindestens eine andere vCPU blockiert ist (entweder weil es nichts zu tun gibt oder sie auf den Abschluss der E/A-Vorgänge wartet).
-
runstate_concurrency_hazard nähern sich 100 % ist eine Situation, die es zu vermeiden gilt.
Vorgeschlagene Maßnahme:
Überprüfen Sie, ob die Back-End-E/A-Speicherserver überlastet sind, indem Sie sich die Back-End-Metriken ansehen, die von Ihrem Speicheranbieter bereitgestellt werden. Wenn die Speicherserver nicht überlastet sind und Leistungsprobleme auftreten, führen Sie eine der folgenden Aktionen aus:
- Verringern Sie die Anzahl der vCPUs in der VM.
- Verschieben Sie die VM auf einen anderen Host.
- Verringern Sie die Gesamtzahl der vCPUs auf dem Host, indem Sie andere VMs migrieren oder deren Anzahl von vCPUs verringern.
runstate_full_contention
-
runstate_full_contention > 0% Gibt an, dass manchmal alle vCPUs gleichzeitig ausgeführt werden sollen, aber keine pCPU-Zeit abrufen kann.
-
runstate_full_contention nähern sich 100 % ist eine Situation, die es zu vermeiden gilt.
Vorgeschlagene Maßnahmen:
Wenn Leistungsprobleme auftreten, führen Sie eine der folgenden Aktionen aus:
- Verringern Sie die Anzahl der vCPUs in der VM.
- Verschieben Sie die VM auf einen anderen Host.
- Verringern Sie die Gesamtzahl der vCPUs auf dem Host, indem Sie andere VMs migrieren oder deren Anzahl von vCPUs verringern.
Wenn die pCPU-Auslastung des Hosts weniger als 100 % beträgt
Wenn ein Host nicht 100 % der pCPU-Auslastung des Hosts erreicht, verwenden Sie diese VM-Metriken, um zu entscheiden, ob eine VM über die richtige Anzahl von vCPUs verfügt:
runstate_fullrun
-
runstate_fullrun = 0 % Gibt an, dass die vCPUs nie alle gleichzeitig verwendet werden.
Vorgeschlagene Maßnahme:
Verringern Sie die Anzahl der vCPUs in dieser VM.
-
0% < runstate_fullrun < 100% zeigt an, dass die vCPUs manchmal alle gleichzeitig verwendet werden.
-
runstate_fullrun = 100 % Gibt an, dass die vCPUs immer alle gleichzeitig verwendet werden.
Vorgeschlagene Maßnahme:
Sie können die Anzahl der vCPUs in dieser VM erhöhen, bis runstate_fullrun < 100%. Erhöhen Sie die Anzahl der vCPUs nicht weiter, da dies sonst die Wahrscheinlichkeit einer Parallelitätsgefahr erhöhen kann, wenn der Host 100 % der pCPU-Auslastung erreicht.
runstate_partial_run
-
runstate_partial_run = 0 % gibt an, dass entweder immer alle vCPUs verwendet werden (Full-Run = 100 %) oder keine vCPUs verwendet werden (idle = 100 %).
-
0% < runstate_partial_run < 100% Gibt an, dass manchmal mindestens eine vCPU blockiert ist, entweder weil sie nichts zu tun haben oder weil sie auf den Abschluss der E/A warten.
-
runstate_partial_run = 100 % Gibt an, dass immer mindestens eine vCPU blockiert ist.
Vorgeschlagene Maßnahme:
Überprüfen Sie, ob die Back-End-E/A-Speicherserver überlastet sind. Wenn dies nicht der Fall ist, verfügt die VM wahrscheinlich über zu viele vCPUs, und Sie können die Anzahl der vCPUs in dieser VM verringern. Zu viele vCPUs in einer VM können das Risiko erhöhen, dass die VM in den Status der Parallelitätsgefahr wechselt, wenn die CPU-Auslastung des Hosts 100 % erreicht.