Consideraciones de la máquina virtual Linux
Las máquinas virtuales Linux y BSD tienen consideraciones adicionales en comparación con las máquinas virtuales Windows en Hyper-V.
La primera consideración es si los Servicios de integración están presentes o si la máquina virtual se ejecuta simplemente en hardware emulado sin iluminación. Hay disponible una tabla de versiones de Linux y BSD que tienen los Servicios de integración integrados o descargables en máquinas virtuales Linux y FreeBSD compatibles para Hyper-V en Windows. Estas páginas tienen cuadrículas de características de Hyper-V disponibles para las versiones de distribución de Linux y notas sobre esas características cuando corresponda.
Incluso cuando el invitado ejecuta los Servicios de integración, se puede configurar con hardware heredado que no muestra el mejor rendimiento. Por ejemplo, configure y use un adaptador Ethernet virtual para el invitado en lugar de usar un adaptador de red heredado. Con Windows Server 2016, también están disponibles redes avanzadas como SR-IOV.
Rendimiento de la red Linux
Linux habilita de forma predeterminada la aceleración de hardware y las descargas de forma predeterminada. Si vRSS está habilitado en las propiedades de una NIC en el host y el invitado de Linux tiene la capacidad de usar vRSS, se habilitará la funcionalidad. En PowerShell, este mismo parámetro se puede cambiar con el comando EnableNetAdapterRSS
.
Del mismo modo, la característica VMMQ (RSS de conmutador virtual) se puede habilitar en la NIC física utilizada por el invitado Properties>Configurar...>Avanzado pestaña > establecer Virtual Switch RSS en Habilitado o habilitar VMMQ en PowerShell con lo siguiente:
Set-VMNetworkAdapter -VMName **$VMName** -VmmqEnabled $True
En el invitado, se puede realizar un ajuste adicional de TCP aumentando los límites. Para obtener el mejor rendimiento, la propagación de la carga de trabajo en varias CPU y la disponibilidad de unas cargas de trabajo profundas produce el mejor rendimiento, ya que las cargas de trabajo virtualizadas tendrán una latencia mayor que las “sin sistema operativo”.
Algunos parámetros de ajuste de ejemplo que han sido útiles en las pruebas comparativas de red incluyen:
net.core.netdev_max_backlog = 30000
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_wmem = 4096 12582912 33554432
net.ipv4.tcp_rmem = 4096 12582912 33554432
net.ipv4.tcp_max_syn_backlog = 80960
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535
net.ipv4.tcp_abort_on_overflow = 1
Una herramienta útil para los microbios de red es ntttcp, que está disponible tanto en Linux como en Windows. La versión de Linux es de código abierto y está disponible en ntttcp-for-linux en github.com. La versión de Windows se puede encontrar en el centro de descarga. Al optimizar las cargas de trabajo, es mejor usar tantos flujos como sea necesario para obtener el mejor rendimiento. Con ntttcp para modelar el tráfico, el parámetro -P
establece el número de conexiones paralelas usadas.
Rendimiento del almacenamiento de Linux
Algunos procedimientos recomendados, como los siguientes, se enumeran en Procedimientos recomendados para ejecutar Linux en Hyper-V. El kernel de Linux tiene diferentes programadores de E/S para reordenar las solicitudes con algoritmos diferentes. NOOP es una cola con el principio de primero en entrar, primero en salir (FIFO) que pasa la decisión de programación que debe tomar el hipervisor. Se recomienda usar NOOP como programador al ejecutar la máquina virtual Linux en Hyper-V. Para cambiar el programador de un dispositivo específico, en la configuración del cargador de arranque (/etc/grub.conf, por ejemplo), agregue elevator=noop
a los parámetros del kernel y, a continuación, reinicie.
De forma similar a las redes, el rendimiento de invitado de Linux con el almacenamiento se beneficia al máximo de múltiples colas con suficiente profundidad para mantener ocupado al host. El rendimiento del almacenamiento de microbenchmarking probablemente sea mejor con la herramienta de pruebas comparativas fio con el motor libaio.