GNU/Linux >> Linux Esercitazione >  >> Linux

Perché Windows10 VM è lento su OpenStack?

Prima di procedere, leggi Perché Windows 10 VM mostra l'utilizzo della CPU al 100% sempre su QEMU-KVM? Lo stesso problema vale per Windows10 VM su OpenStack, rendendolo lento e utilizzando sempre il 100% di utilizzo della CPU. Questo articolo mostra come configurare OpenStack per eseguire Windows10 VM su un processore multicore utilizzando tutti i core per CPU.

Informazioni sulla configurazione

Versione KVM: 2.12.0

OS ospite: Windows10 Casa

CPU HOST: Processore AMD Opteron(TM) 6128 con

  • Modello CPU:x86_64
  • CPU:16
  • Frequenza CPU:2000 MHz
  • Presa/e CPU:1
  • Core per socket:4
  • Fili per core:1
  • Cella/e NUMA:4
  • Dimensioni della memoria:65771872 KiB

Come configurare OpenStack per eseguire Windows10 VM su un processore multicore

Le moderne CPU server come sopra utilizzano l'architettura NUMA (Non-Uniform Memory Access). L'immagine sotto mostra il confronto di UMA con NUMA. L'architettura NUMA fornisce memoria separata per ciascun processore (a differenza di UMA, in cui tutti i processori accedono alla memoria condivisa tramite un bus). Allo stesso tempo, un processore può accedere alla memoria che appartiene ad altri processori utilizzando un bus condiviso. Una CPU ha il vantaggio in termini di prestazioni di accedere alla propria memoria locale più velocemente rispetto ad altre memorie su un multiprocessore.

PIC Cortesia:www.nakivo.com

Quando si eseguono VM su host NUMA come mostrato nell'immagine seguente, è importante che le vCPU che eseguono i processi si trovino sullo stesso nodo NUMA della memoria utilizzata da questi processi. Ciò garantisce che tutti gli accessi alla memoria siano locali al nodo e quindi non consumino la larghezza di banda di memoria tra nodi limitata, aggiungendo latenza agli accessi alla memoria.

La configurazione di OpenStack della topologia NUMA e delle funzioni di blocco della CPU fornisce un controllo di alto livello sul modo in cui le istanze vengono eseguite sulle CPU hypervisor e sulla topologia delle CPU virtuali disponibili per le istanze.

Come configurare le varianti con il posizionamento e la topologia dei nodi NUMA

Con la configurazione seguente, il driver libvirt sarà in grado di eseguire il posizionamento intelligente di CPU/CORES per gli ospiti. Ciò aumenterà l'utilizzo efficace delle risorse di elaborazione e diminuirà la latenza evitando l'accesso alla memoria tra nodi da parte degli ospiti. Per supportare la specifica della topologia, è necessario aggiungere specifiche aggiuntive all'aroma. Openstack consente di definire la topologia della CPU dei processori nella Macchina Virtuale utilizzando le proprietà.

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

Dove:

  • FLAVOR-SOCKETS: (intero) Il numero di socket per la macchina virtuale guest. Per impostazione predefinita, questo è impostato sul numero di vCPU richieste.
  • FLAVOR-CORES:(intero) il numero di core per socket per la macchina virtuale guest. Per impostazione predefinita, è impostato su 1.
  • FLAVOR-THREADS:(intero) il numero di thread per core per la macchina virtuale guest. Per impostazione predefinita, è impostato su 1.
Mai configurare un n. di core su ogni macchina virtuale

Non configurare mai un numero di core virtuali su ciascuna macchina virtuale superiore al numero di core reali disponibili sul computer host.

Per la mia topologia, di seguito è riportato il set di gusti:

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


Linux
  1. Perché Scp è così lento e come renderlo più veloce?

  2. Ssh:perché Firefox è così lento rispetto a Ssh?

  3. Trova i 10 migliori processi in esecuzione per memoria e utilizzo della CPU

  4. Recuperare l'utilizzo della CPU e l'utilizzo della memoria di un singolo processo su Linux?

  5. Limitazione dell'utilizzo della memoria/CPU del processo su Linux

Come aumentare la memoria e la CPU sulla macchina Vagrant

Monitoraggio efficace della larghezza di banda, della CPU e della memoria della rete

Limite di memoria e limite della CPU nel contenitore Docker

Rallenta un solo processo per regolare la temperatura della CPU

Perché MemTotal in /proc/meminfo cambia?

Perché il mio rsync è così lento?