GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum ist die Windows10-VM auf OpenStack langsam?

Bevor wir fortfahren, lesen Sie bitte Warum zeigt die Windows 10-VM auf QEMU-KVM immer eine CPU-Auslastung von 100 % an? Das gleiche Problem gilt für Windows10 VM auf OpenStack, wodurch es langsam wird und immer 100 % CPU-Auslastung verwendet. Dieser Artikel zeigt, wie OpenStack konfiguriert wird, um eine Windows10-VM auf einem Multicore-Prozessor auszuführen, der alle Kerne pro CPU nutzt.

Setup-Info

KVM-Version: 2.12.0

Gastbetriebssystem: Windows10-Startseite

HOST-CPU: AMD Opteron(TM) Prozessor 6128 mit

  • CPU-Modell:x86_64
  • CPU(s):16
  • CPU-Frequenz:2000 MHz
  • CPU-Sockel:1
  • Kerne pro Sockel:4
  • Thread(s) pro Kern:1
  • NUMA-Zelle(n):4
  • Speichergröße:65771872 KiB

Wie man OpenStack konfiguriert, um Windows10 VM auf einem Multicore-Prozessor auszuführen

Moderne Server-CPUs wie oben verwenden die NUMA-Architektur (Non-Uniform Memory Access). Das folgende Bild zeigt den Vergleich von UMA mit NUMA. Die NUMA-Architektur bietet separaten Speicher für jeden Prozessor (im Gegensatz zu UMA, wo alle Prozessoren über einen Bus auf gemeinsam genutzten Speicher zugreifen). Gleichzeitig kann ein Prozessor über einen gemeinsam genutzten Bus auf Speicher zugreifen, der anderen Prozessoren gehört. Eine CPU hat den Leistungsvorteil, dass sie schneller auf ihren eigenen lokalen Speicher zugreift als auf anderen Speicher auf einem Multiprozessor.

PIC-Höflichkeit:www.nakivo.com

Wenn Sie VMs auf NUMA-Hosts ausführen, wie in der folgenden Abbildung gezeigt, ist es wichtig, dass sich die vCPUs, die Prozesse ausführen, auf demselben NUMA-Knoten befinden wie der von diesen Prozessen verwendete Arbeitsspeicher. Dadurch wird sichergestellt, dass alle Speicherzugriffe lokal auf dem Knoten erfolgen und somit nicht die begrenzte knotenübergreifende Speicherbandbreite verbrauchen, wodurch die Latenz für Speicherzugriffe erhöht wird.

Die OpenStack-Konfiguration der NUMA-Topologie- und CPU-Pinning-Funktionen bietet eine umfassende Kontrolle darüber, wie Instanzen auf Hypervisor-CPUs ausgeführt werden, und die Topologie virtueller CPUs, die Instanzen zur Verfügung stehen.

Konfigurieren von Flavors mit NUMA-Knotenplatzierung und Topologie

Mit der folgenden Konfiguration ist der libvirt-Treiber in der Lage, eine intelligente CPU/CORES-Platzierung für Gäste vorzunehmen. Dies erhöht die effektive Nutzung von Rechenressourcen und verringert die Latenz, indem knotenübergreifende Speicherzugriffe durch Gäste vermieden werden. Um die Spezifikation der Topologie zu unterstützen, müssen Sie dem Flavor zusätzliche Spezifikationen hinzufügen. Openstack ermöglicht es, die CPU-Topologie der Prozessoren in der virtuellen Maschine mithilfe von Eigenschaften zu definieren.

$ openstack flavor set FLAVOR-NAME \
    --property hw:cpu_sockets=FLAVOR-SOCKETS \
    --property hw:cpu_cores=FLAVOR-CORES \
    --property hw:cpu_threads=FLAVOR-THREADS \

Wo:

  • FLAVOR-SOCKETS: (Ganzzahl) Die Anzahl der Sockets für die Gast-VM. Standardmäßig ist dies auf die Anzahl der angeforderten vCPUs eingestellt.
  • FLAVOR-CORES:(Ganzzahl) Die Anzahl der Kerne pro Socket für die Gast-VM. Standardmäßig ist diese auf 1 gesetzt.
  • FLAVOR-THREADS:(Ganzzahl) Die Anzahl der Threads pro Kern für die Gast-VM. Standardmäßig ist diese auf 1 gesetzt.
Nie höhere Nr. konfigurieren. von Kernen auf jeder VM

Konfigurieren Sie niemals eine höhere Anzahl virtueller Kerne auf jeder VM als die Anzahl realer Kerne, die auf dem Hostcomputer verfügbar sind.

Für meine Topologie ist unten das Flavor-Set:

$ openstack flavor set Windows10 \
    --property hw:cpu_sockets=1 \
    --property hw:cpu_cores=4 \
    --property hw:cpu_threads=1 \


Linux
  1. So überprüfen Sie die Serverlast auf einem Windows-Server

  2. Liste der Server nach zugewiesenem Arbeitsspeicher/CPU abfragen?

  3. Ssh – Warum ist Firefox gegenüber SSH so langsam?

  4. CPU-Auslastung und Speicherauslastung eines einzelnen Prozesses unter Linux abrufen?

  5. Warum ist das Drucken auf stdout so langsam? Kann es beschleunigt werden?

So erhöhen Sie Speicher und CPU auf Vagrant Machine

Effektive Überwachung von Netzwerkbandbreite, CPU und Speicher

Speicherlimit und CPU-Limit im Docker-Container

Warum ist meine SSH-Anmeldung langsam?

Verlangsamen Sie nur einen Prozess, um die CPU-Temperatur zu regulieren

Warum ändert sich MemTotal in /proc/meminfo?