Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este documento se proporcionan instrucciones para optimizar el rendimiento y la eficacia de los costos al implementar máquinas virtuales (VM) mediante la virtualización de OpenShift en Azure Red Hat OpenShift. Esta guía también aborda cualquier preocupación sobre el rendimiento de la aplicación y proporciona pasos accionables para una implementación correcta.
Enfoque para la optimización
Nota:
Actualmente no se admiten cargas de trabajo dependientes de GPU en OpenShift Virtualization en Azure. Planee las implementaciones en consecuencia.
La optimización de las implementaciones de máquinas virtuales comienza con la comprensión de las cargas de trabajo de la aplicación y la alineación de las opciones de infraestructura en consecuencia. La implementación de OpenShift Virtualization en máquinas de Azure Boost, los nodos de trabajo del clúster presentan una sobrecarga arquitectónica en comparación con las implementaciones nativas de máquinas virtuales o pods. El planeamiento de la capacidad y el rendimiento deben tener en cuenta esta sobrecarga.
Identificación de la carga de trabajo
Antes de aprovisionar máquinas virtuales, clasifique las cargas de trabajo para determinar sus requisitos de rendimiento y recursos. Entre los tipos de carga de trabajo comunes se incluyen:
- Uso general: Servidores web, servidores de aplicaciones, sistemas de administración de contenido.
- Base de datos: Bases de datos relacionales y NoSQL que requieren operaciones de entrada y salida coherentes por segundo (IOPS) y memoria.
- Análisis en tiempo real: Procesamiento de datos de baja latencia, paneles operativos.
- AI/ML: Cargas de trabajo de cálculo intensivo que requieren CPU/GPU alta y memoria.
- Streaming y mensajería de datos: Arquitecturas basadas en eventos de alto rendimiento y baja latencia.
- Procesamiento por lotes: Trabajos periódicos o a petición que procesan grandes volúmenes de datos.
- Informática de alto rendimiento (HPC): Simulaciones científicas, modelado financiero.
- Edge e IoT: Agregación y procesamiento de datos de sensores distribuidos.
- Procesamiento multimedia: Codificación y descodificación de vídeo, transformación de imágenes, streaming.
- Entornos de desarrollo y pruebas: Entornos temporales para desarrollo y pruebas.
Cada tipo de carga de trabajo tiene características únicas que influyen en las estrategias de ajuste de tamaño, configuración de almacenamiento y optimización del rendimiento de las máquinas virtuales.
Ajuste adecuado del tamaño de las cargas de trabajo de la aplicación
Consideraciones clave para el ajuste de tamaño correcto
- Requisito básico mínimo: OpenShift Virtualization requiere un mínimo de ocho (8) máquinas virtuales de Azure principales para nodos de trabajo de OpenShift.
- Sobrecarga arquitectónica: El rendimiento puede variar en función de las decisiones arquitectónicas tomadas al configurar el entorno, incluidos los tipos de instancia, el almacenamiento y las características de red.
- Escalado horizontal: Para cargas de trabajo exigentes, el escalado horizontal del clúster de Red Hat OpenShift de Azure agregando más nodos puede ayudar a superar la contención de recursos y a mantener el rendimiento.
- Pruebas comparativas de las cargas de trabajo: Evite confiar únicamente en referencias de tamaño locales; realizar pruebas comparativas de sus propias cargas de trabajo para informar sobre el ajuste de tamaño correcto.
- Factores de costo: Considere los costos de proceso de Azure, las licencias de OpenShift, las licencias de máquina virtual y los requisitos de escalabilidad.
El ajuste de tamaño correcto garantiza que las máquinas virtuales se aprovisionen con recursos adecuados para cumplir los objetivos de rendimiento sin sobreaprovisionamiento. Este proceso es fundamental en entornos en la nube, donde la eficiencia de los recursos afecta directamente al costo y al rendimiento.
Pasos para ajustar el tamaño de las cargas de trabajo
Definir métricas de salud
- Uso de CPU: objetivo de un uso promedio de 60 a 70%.
- Presión de memoria: monitorice el uso de swap, la saturación de memoria y los fallos de página.
- Tensión de E/S: mida la latencia de disco, el rendimiento y la profundidad de la cola.
Configuración de la supervisión
- Use Prometheus y Grafana para la recopilación y visualización de métricas en tiempo real.
- Habilite las métricas de KubeVirt para obtener detalles a nivel de máquina virtual.
- Correlacione las métricas de nivel de infraestructura con el rendimiento de la aplicación mediante la integración con Azure Monitor a través de Azure Arc.
Análisis de datos históricos
- Revise las tendencias de rendimiento a lo largo del tiempo.
- Identifique los períodos de uso máximo y los eventos de saturación de recursos.
- Use líneas base históricas para guiar las decisiones futuras de escalado automático.
Ajuste de las especificaciones de máquina virtual
- Elija los tamaños de máquina virtual adecuados de la serie Dsv5 o Dsv6 en función de las métricas observadas.
- Considere las necesidades de CPU, memoria, IOPS de disco y rendimiento de red.
- Evite el sobreaprovisionamiento mediante la alineación de recursos con patrones de uso reales.
- Revise las instrucciones de Red Hat sobre el dimensionamiento adecuado - Anunciando el dimensionamiento adecuado para la virtualización de OpenShift | Desarrollador de Red Hat.
Prueba y validación
- Realice pruebas de carga mediante herramientas como Apache JMeter, Locust o stress-ng.
- Verifique con las métricas de salud definidas y los objetivos de rendimiento.
- Recorre en iteración los cambios de configuración y vuelve a probar para confirmar las mejoras.
Características de rendimiento observadas
A continuación puede encontrar métricas de rendimiento observadas para cargas de trabajo de virtualización de OpenShift en Azure Red Hat OpenShift para configuraciones y cargas de trabajo especificadas. El rendimiento observado real puede variar en función de la carga de trabajo elegida y la configuración específica del clúster, pero las tablas siguientes le darán una idea de lo que se puede esperar. Debido a la naturaleza de ejecutar máquinas virtuales en Azure Red Hat OpenShift, comprobarás que su rendimiento no será tan alto como el de ejecutar las cargas de trabajo en un pod. El rendimiento se mejorará en el futuro próximo, con tipos de instancia mejorados que estarán disponibles y nuevas tecnologías, como la virtualización directa.
Compute
- Tipo de nodo de trabajo: Standard_D96ds_v5 (con Azure Boost)
- Versión de OpenShift: 4.20
- Operador de virtualización: 4.20
| Máquina virtual de virtualización de OCP | Pod | Con Virtualización Directa | |
|---|---|---|---|
| Eventos | 525,022 | 546,997 | Próximamente |
| Latencia (ms) | 0.70 | 0.65 | Próximamente |
Storage
- Disco: SSD Premium v2 Discos SCSI/SATA
- Tipo de nodo de trabajo: Standard_D96ds_v5 (con Azure Boost)
- Versión de OpenShift: 4.20
- Operador de virtualización: 4.20
- Operador de almacenamiento de ODF: 4.19
- Clúster de AZ único
| Threads | Máquina virtual de OCP (TPM) | Pod (TPM) | Con la virtualización directa |
|---|---|---|---|
| 1 | 4,332 | 6,303 | Próximamente |
| 2 | 9,266 | 12,371 | Próximamente |
| 4 | 17,006 | 23,422 | Próximamente |
| 8 | 31.148 | 43,314 | Próximamente |
| 16 | 44,904 | 68,872 | Próximamente |
| 32 | 64,294 | 103,359 | Próximamente |
Red
- Tipo de nodo de trabajo: Standard_D96ds_v5 (con Azure Boost)
- NIC: 35 GB
- Clúster de AZ único
| Tamaño del mensaje: hilos | Latencia de máquina virtual de virtualización de OCP (μs) | Rendimiento de las máquinas virtuales de virtualización OCP (Gbps) | Latencia de pod (μs) | Rendimiento del Pod (Gbps) | Con Virtualización Directa |
|---|---|---|---|---|---|
| 64B - 1 thr | 94.58 | 0,4 | 45.84 | 0.9 | Próximamente |
| 64B - 8 thr | 87.93 | 3.4 | 49.90 | 7,5 | Próximamente |
| 1024B - 1 thr | 90.6 | 6.1 | 48.32 | 7.0 | Próximamente |
| 1024B - 8 thr | 93.57 | 24.7 | 48.59 | 28,9 | Próximamente |
| 8192B - 1thr | 151,4 | 7.6 | 104.43 | 10.9 | Próximamente |
| 8192B - 8 thr | 157.27 | 20.7 | 90.96 | 27.0 | Próximamente |
Ajuste del entorno
Ajustar el entorno de OpenShift Virtualization es esencial para lograr un rendimiento óptimo, especialmente para cargas de trabajo exigentes. Los siguientes procedimientos recomendados se derivan de una amplia experiencia comparativa y de mundo real en la serie de máquinas virtuales de Azure Boost (Dsv5/Dsv6).
Estrategias de optimización del rendimiento
- Escalado horizontal o vertical para cargas de trabajo exigentes: Agregue más nodos o actualice los nodos en el clúster de Red Hat OpenShift de Azure para aplicaciones de alta concurrencia o uso intensivo de recursos.
- Evite límites estrictos de recursos: Establezca solo la memoria de invitado para las máquinas virtuales; evite límites estrictos de recursos a menos que sea necesario para la gobernanza.
- Ajuste de las configuraciones de almacenamiento y red: Seleccione soluciones de almacenamiento y niveles de rendimiento que coincidan con sus necesidades de carga de trabajo. Para cargas de trabajo intensivas en red, ajuste configuraciones como NAPI y multiqueue, y supervise el rendimiento y la latencia.
- Supervisar y realizar pruebas comparativas con regularidad: Use Prometheus, Grafana y Azure Monitor para realizar un seguimiento de las métricas clave. Realice pruebas comparativas de sus propias cargas de trabajo para validar el rendimiento y guiar el ajuste adicional.
- Espere sobrecarga arquitectónica: Planee la capacidad y establezca las expectativas en consecuencia, especialmente para las cargas de trabajo con altas demandas de E/S o de red.
Optimización excesiva de la máquina virtual
El operador OpenShift Virtualization permite ajustar las relaciones de uso excesivo de CPU y memoria, lo que le permite asignar más recursos virtuales que los disponibles físicamente. Este cambio puede mejorar la densidad y el uso de recursos, pero puede aumentar la contención y afectar al rendimiento.
Procedimientos recomendados para la optimización excesiva:
- Utiliza una sobreasignación conservadora para las cargas de trabajo de producción.
- Considere la posibilidad de una mayor sobrecarga para entornos de desarrollo y pruebas.
- Supervise el uso de los recursos y ajuste las relaciones según sea necesario.
Para más información, consulte Configuración de una mayor densidad de carga de trabajo de máquina virtual.
Procedimientos recomendados basados en pruebas comparativas
- Cargas de trabajo de base de datos: Evite establecer las solicitudes de recursos y los límites de las máquinas virtuales. Supervise el rendimiento estrechamente al usar almacenamiento rápido y alta simultaneidad. Escalar nodos de clúster horizontalmente para implementaciones de bases de datos grandes.
- Cargas de trabajo de red: Ajuste la configuración de red para obtener un rendimiento óptimo. Aumente la capacidad horizontalmente según sea necesario para lograr el rendimiento deseado de la red.
Optimización de soluciones de almacenamiento
- OpenShift Data Foundation (ODF): Use el almacenamiento respaldado por SSD para el acceso de baja latencia. Configure directivas de codificación de replicación y borrado en función de las necesidades de carga de trabajo. Para evitar la competencia por los recursos de cómputo de la aplicación, considere crear un grupo de nodos de trabajo independiente para ODF con tamaños de máquina virtual de Azure más pequeños. Ds16v5 es un buen punto de partida, y utilice manchas/toleraciones para asegurarse de que ODF sea la única carga de trabajo programada allí. Supervise el rendimiento del almacenamiento y ajuste los factores de replicación según sea necesario.
- Azure NetApp Files (ANF): Elija los niveles de rendimiento en función de los requisitos de IOPS y rendimiento. Asegúrese de que las opciones de montaje y la configuración de red sean adecuadas para obtener un rendimiento óptimo. Use instantáneas de volumen y copias de seguridad para admitir estrategias de protección y recuperación de datos.
Contenido relacionado
Virtualización de OpenShift para Microsoft Azure Red Hat OpenShift.