Optimiza el rendimiento del procesamiento

Last reviewed 2023-08-05 UTC

En este documento de Google Cloud Arquitectura Framework, se proporcionan recomendaciones para ayudarte a optimizar el rendimiento de Compute Engine, Google Kubernetes Engine (GKE) y los recursos sin servidores.

Compute Engine

En esta sección, se proporciona orientación para ayudarte a optimizar el rendimiento de los recursos de Compute Engine.

Recursos con ajuste de escala automático

Los grupos de instancias administrados (MIG) te permiten escalar las apps sin estado implementadas en las VMs de Compute Engine de manera eficiente. El ajuste de escala automático ayuda a que tus apps sigan entregando un rendimiento predecible cuando la carga aumente. En un MIG, se inicia un grupo de VMs de Compute Engine según una plantilla que definas. En la plantilla, debes configurar una política de ajuste de escala automático, que especifica una o más señales que el escalador automático usa para escalar el grupo. Los indicadores de ajuste de escala automático pueden basarse en un programa, como la hora de inicio o la duración, o en métricas de destino, como el uso de CPU promedio. Si quieres obtener más información, consulta Ajuste de escala automático para grupos de instancias.

Inhabilita SMT

Cada CPU virtual que asignas a una VM de Compute Engine se implementa como un solo subproceso de hardware único. De forma predeterminada, dos CPU virtuales comparten un núcleo de CPU física. Esta arquitectura se denomina multisubprocesos simultáneos (SMT).

Para cargas de trabajo que son en gran medida paralelas o que realizan cálculos de punto flotante (como transcodificación, simulaciones de Monte Carlo, análisis de secuencias genéticas y modelado de riesgo financiero), puedes mejorar el rendimiento si inhabilitas SMTP. Para obtener más información, consulta Configura una cantidad de subprocesos por núcleo.

Usa GPU

Para cargas de trabajo como aprendizaje automático y visualización, puedes agregar unidades de procesamiento de gráficos (GPU) a tus VMs. Compute Engine proporciona GPU de NVIDIA en modo de transferencia para que tus VMs tengan control directo sobre las GPU y la memoria asociada. Para cargas de trabajo con alto contenido gráfico, como la visualización en 3D, puedes usar las estaciones de trabajo virtuales de NVIDIA RTX. Después de implementar las cargas de trabajo, supervisa el uso de la GPU y revisa las opciones para optimizar el rendimiento de la GPU.

Usa tipos de máquinas optimizados para procesamiento

Las cargas de trabajo como los videojuegos, la transcodificación de medios y la computación de alto rendimiento (HPC) requieren un rendimiento alto y coherente por núcleo de CPU. Google recomienda que uses tipos de máquinas optimizados para procesamiento para las VMs que ejecutan esas cargas de trabajo. Las VMs optimizadas para procesamiento se compilan en una arquitectura que usa funciones como el acceso a la memoria no uniforme (NUMA) para obtener un rendimiento óptimo y confiable.

Las cargas de trabajo de HPC con acoplamiento alto tienen un conjunto único de requisitos para lograr una eficiencia máxima de rendimiento. Para obtener más información, consulta la siguiente documentación:

Elige el almacenamiento adecuado

Google Cloud ofrece una amplia gama de opciones de almacenamiento para VMs de Compute Engine: discos persistentes, discos de unidad de estado sólido (SSD) locales, Filestore y Cloud Storage. Si deseas obtener recomendaciones de diseño y prácticas recomendadas para optimizar el rendimiento de cada una de estas opciones de almacenamiento, consulta Optimiza el rendimiento del almacenamiento.

Google Kubernetes Engine

En esta sección, se proporciona orientación para ayudarte a optimizar el rendimiento de los recursos de Google Kubernetes Engine (GKE).

Recursos con ajuste de escala automático

Puedes cambiar el tamaño de los grupos de nodos de forma automática en un clúster de GKE para que coincidan con la carga actual a través de la función de escalador automático de clúster. El ajuste de escala automático ayuda a que tus apps sigan entregando un rendimiento predecible cuando la carga aumente. El escalador automático de clúster cambia el tamaño de los grupos de nodos de forma automática en función de las solicitudes de recursos (en lugar del uso real de recursos) de los Pods que se ejecutan en los nodos. Cuando usas el ajuste de escala automático, puede haber un equilibrio entre el rendimiento y el costo. Revisa las prácticas recomendadas para configurar el ajuste de escala automático de clúster de manera eficiente.

Usa VMs C2D

Puedes mejorar el rendimiento de las cargas de trabajo alojadas en contenedores de procesamiento intensivo a través de los tipos de máquinas C2D. Puedes agregar nodos C2D a tus clústeres de GKE si eliges un tipo de máquina C2D en tus grupos de nodos.

Inhabilita SMT

Los multisubprocesos simultáneos (SMT) pueden aumentar la capacidad de procesamiento de la aplicación de manera significativa para las tareas de procesamiento generales y las cargas de trabajo que necesitan una E/S alta. Sin embargo, para las cargas de trabajo en las que ambos núcleos virtuales están vinculados al procesamiento, SMT puede causar un rendimiento incoherente. Si deseas obtener un rendimiento mejor y más predecible, puedes inhabilitar los SMT para tus nodos de GKE si configuras la cantidad de CPU virtuales por núcleo como 1.

Usa GPU

Para cargas de trabajo de procesamiento intensivo, como el reconocimiento de imágenes y la transcodificación de video, puedes acelerar el rendimiento a través de la creación de grupos de nodos que usen GPU. Para obtener más información, consulta Ejecuta GPU.

Usa el balanceo de cargas nativo del contenedor

El balanceo de cargas nativo del contenedor permite que los balanceadores de cargas distribuyan el tráfico de manera directa y uniforme a los Pods. Este enfoque proporciona un mejor rendimiento de la red y una visibilidad mejorada de la latencia entre redes entre el balanceador de cargas y los Pods. Debido a estos beneficios, el balanceo de cargas nativo del contenedor es la solución recomendada para el balanceo de cargas a través de Ingress.

Define una política de posición compacta

Las cargas de trabajo por lotes con acoplamiento alto necesitan una latencia de red baja entre los nodos del grupo de nodos de GKE. Puedes implementar esas cargas de trabajo en grupos de nodos de zona única y asegurarte de que los nodos estén cerca uno de otro a través de la definición de una política de posición compacta. Si deseas obtener más información, consulta Define la posición de compactación para los nodos de GKE.

Servicios de computación sin servidores

En esta sección, se proporciona orientación para ayudarte a optimizar el rendimiento de los servicios de procesamiento sin servidores en Google Cloud: Cloud Run y Cloud Functions. Estos servicios proporcionan funciones de ajuste de escala automático, en las que la infraestructura subyacente controla el escalamiento automáticamente. A través de estos servicios sin servidores, puedes reducir el esfuerzo de escalar los microservicios y funciones y enfocarte en optimizar el rendimiento a nivel de la aplicación.

Para obtener más información, consulta la siguiente documentación:

¿Qué sigue?

Consulta las prácticas recomendadas para optimizar el rendimiento de tus recursos de procesamiento, herramientos de redes, bases de datos y estadísticas: