GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué Windows10 VM es lento en OpenStack?

Antes de continuar, lea ¿Por qué Windows 10 VM muestra una utilización de CPU del 100 % siempre en QEMU-KVM? El mismo problema ocurre con Windows10 VM en OpenStack, lo que lo hace lento y utiliza siempre el 100 % de la utilización de la CPU. Este artículo muestra cómo configurar OpenStack para ejecutar Windows10 VM en un procesador multinúcleo utilizando todos los núcleos por CPU.

Información de configuración

Versión KVM: 2.12.0

SO invitado: Inicio de Windows10

CPU HOST: Procesador AMD Opteron(TM) 6128 con

  • Modelo de CPU:x86_64
  • CPU(s):16
  • Frecuencia de la CPU:2000 MHz
  • Zócalo(s) de CPU:1
  • Núcleo(s) por socket:4
  • Hilo(s) por núcleo:1
  • celda(s) NUMA:4
  • Tamaño de memoria:65771872 KiB

Cómo configurar OpenStack para ejecutar Windows10 VM en un procesador multinúcleo

Las CPU de servidor modernas como las anteriores utilizan la arquitectura NUMA (acceso a memoria no uniforme). La siguiente imagen muestra la comparación de UMA con NUMA. La arquitectura NUMA proporciona memoria separada para cada procesador (a diferencia de UMA, donde todos los procesadores acceden a la memoria compartida a través de un bus). Al mismo tiempo, un procesador puede acceder a la memoria que pertenece a otros procesadores mediante un bus compartido. Una CPU tiene la ventaja de rendimiento de acceder a su propia memoria local más rápido que otra memoria en un multiprocesador.

FOTO cortesía:www.nakivo.com

Cuando se ejecutan máquinas virtuales en hosts NUMA como se muestra en la imagen a continuación, es importante que los procesos de ejecución de vCPU estén en el mismo nodo NUMA que la memoria utilizada por estos procesos. Esto garantiza que todos los accesos a la memoria sean locales para el nodo y, por lo tanto, no consuman el ancho de banda de memoria limitado entre nodos, lo que agrega latencia a los accesos a la memoria.

La configuración de OpenStack de la topología NUMA y las funciones de asignación de CPU brindan un control de alto nivel sobre cómo se ejecutan las instancias en las CPU del hipervisor y la topología de las CPU virtuales disponibles para las instancias.

Cómo configurar tipos con topología y ubicación de nodos NUMA

Con la siguiente configuración, el controlador libvirt podrá realizar una ubicación inteligente de CPU/CORES para invitados. Esto aumentará la utilización efectiva de los recursos informáticos y disminuirá la latencia al evitar el acceso a la memoria entre nodos por parte de los invitados. Para admitir la especificación de la topología, debe agregar especificaciones adicionales al tipo. Openstack permite definir la topología de CPU de los procesadores en la Máquina Virtual usando propiedades.

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

Dónde:

  • SOCKETS DE FLAVOR: (entero) La cantidad de sockets para la máquina virtual invitada. De forma predeterminada, se establece en la cantidad de CPU virtuales solicitadas.
  • FLAVOR-CORES:(entero) La cantidad de núcleos por socket para la máquina virtual invitada. De forma predeterminada, se establece en 1.
  • FLAVOR-THREADS:(entero) La cantidad de subprocesos por núcleo para la máquina virtual invitada. De forma predeterminada, se establece en 1.
Nunca configure un número más alto. de núcleos en cada máquina virtual

Nunca configure una cantidad mayor de núcleos virtuales en cada máquina virtual que la cantidad de núcleos reales disponibles en la computadora host.

Para mi topología, a continuación se muestra el conjunto de tipos:

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


Linux
  1. ¿Por qué Scp es tan lento y cómo hacerlo más rápido?

  2. ¿Consulta la lista de servidores para la memoria/cpu asignada?

  3. ¿Recuperar el uso de la CPU y el uso de la memoria de un solo proceso en Linux?

  4. Limitar el uso de memoria/CPU de proceso en Linux

  5. ¿Por qué mi rsync es tan lento?

Cómo aumentar la memoria y la CPU en la máquina Vagrant

Supervisión eficaz del ancho de banda de la red, la CPU y la memoria

Límite de memoria y límite de CPU en Docker Container

¿Por qué mi inicio de sesión SSH es lento?

Reduzca la velocidad de un solo proceso para regular la temperatura de la CPU

¿Por qué cambia MemTotal en /proc/meminfo?