Soluciona problemas de rendimiento de las instancias de procesamiento


En este documento, se muestra cómo diagnosticar y mitigar los problemas de rendimiento de almacenamiento, memoria y CPU en las instancias de máquinas virtuales (VM) de Compute Engine y de equipos físicos.

Antes de comenzar

Visualiza las métricas de rendimiento

Para ver las métricas de rendimiento de tus instancias de procesamiento, usa las métricas de observabilidad de Cloud Monitoring disponibles en la consola de Google Cloud.

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Puedes ver las métricas de instancias individuales o de las cinco instancias que consumen más cantidad de un recurso.

    Para ver las métricas de VMs individuales, haz lo siguiente:

    1. Haz clic en el nombre de la instancia de la que deseas ver las métricas de rendimiento. Se abre la página de detalles de la instancia.

    2. Haz clic en la pestaña Observabilidad para abrir la página Descripción general de la observabilidad.

    Para ver las métricas de las cinco instancias que consumen la mayor cantidad de un recurso, haz clic en la pestaña Observabilidad en la página Instancias de VM.

  3. Explora las métricas de rendimiento de la instancia. Consulta las secciones Descripción general ,CPU, Memoria, Red y Disco para ver métricas detalladas sobre cada tema. Las siguientes son las métricas clave que indican el rendimiento de la VM:

    • En la página Descripción general:

      • Uso de CPU. El porcentaje de CPU que usa la instancia.

      • Uso de memoria. El porcentaje de memoria que usa la instancia, sin incluir los almacenamientos en caché del disco. En las instancias que usan un SO Linux, esto también excluye la memoria del kernel.

      • Tráfico de red. La tasa promedio de bytes enviados y recibidos en intervalos de un minuto.

      • Conexiones nuevas con VMs/External/Google. La cantidad estimada de flujos de TCP/UDP distintos en un minuto, agrupados por tipo de intercambio de tráfico.

      • Capacidad de procesamiento del disco. La tasa promedio de bytes escritos y leídos desde discos.

      • IOPS del disco. La tasa promedio de operaciones de lectura y escritura de E/S en los discos.

    • En la página Resumen de red:

      • Enviado a VMs/External/Google. La tasa de tráfico de la red enviada a los servicios de Google, las instancias y los destinos externos en función de una muestra de paquetes. La métrica se escala para que la suma coincida con el tráfico total de red enviado.

      • Recibido de VM/recurso externo/Google. La tasa de tráfico de red que se recibe de los servicios de Google, las instancias y las fuentes externas, en función de una muestra de paquetes. La métrica se escala para que la suma coincida con el tráfico total de red recibido.

      • Totales de paquetes de red. La tasa total de paquetes enviados y recibidos en intervalos de un minuto.

      • El tamaño medio del paquete. El tamaño medio de los paquetes, en bytes, enviados y recibidos en intervalos de un minuto.

      • Paquetes entrantes de firewall rechazados. La frecuencia de paquetes de red entrantes que se enviaron a la instancia, pero que esta no recibió, ya que las reglas de firewall los rechazaron.

    • En la página Rendimiento de discos, haz lo siguiente:

      • Tamaño de tamaño promedio de E/S. El tamaño promedio de las operaciones de lectura y escritura de E/S en los discos. Las E/S aleatorias pequeñas (de 4 a 16 KiB) suelen estar limitadas por IOPS y las E/S secuenciales o grandes (de 256 KiB a 1 MiB) están limitadas por la capacidad de procesamiento.

      • Promedio de longitud de la cola: La cantidad de operaciones de E/S de disco en cola y en ejecución, también llamada profundidad de cola, para los 5 dispositivos principales. Para alcanzar los límites de rendimiento de los discos, usa una profundidad de cola de E/S alta. Persistent Disk y Google Cloud Hyperdisk son almacenamientos conectados en red y, por lo general, tienen una latencia más alta en comparación con los discos físicos o los discos SSD locales.

      • Promedio de latencia de E/S: La latencia promedio de las operaciones de lectura y escritura de E/S agregadas en las operaciones de todos los discos conectados a la instancia, medidos por el Agente de operaciones. Este valor incluye la latencia de procesamiento del sistema operativo y del sistema de archivos, y depende de la longitud de la cola y el tamaño de E/S.

Información sobre las métricas de rendimiento

El rendimiento de la instancia se ve afectado por el hardware en el que se ejecuta la instancia, la carga de trabajo que se ejecuta en la instancia y el tipo de máquina de la instancia. Si el hardware no puede admitir la carga de trabajo o el tráfico de red de tu instancia, el rendimiento de esta podría verse afectado.

Rendimiento de la CPU y la memoria

Detalles del hardware

El rendimiento de la CPU y la memoria se ve afectado por las siguientes restricciones de hardware:

  • Cada CPU virtual se implementa como un subproceso múltiple de hardware único en un procesador de CPU.
  • Los procesadores de CPU Intel Xeon admiten varios subprocesos de app en un solo núcleo del procesador.
  • Las VMs que usan tipos de máquinas C2 tienen una asignación fija del núcleo virtual al físico, y exponen la arquitectura de celdas de NUMA al SO invitado.
  • La mayoría de las VM obtienen la frecuencia turbo de núcleo completo que se mencionan en las plataformas de CPU, incluso si solo la frecuencia base se anuncia al entorno invitado.
  • Los tipos de máquinas de núcleo compartido usan el cambio de contexto para compartir un núcleo físico entre las CPU virtuales para realizar varias tareas al mismo tiempo. También ofrecen capacidades de aumentos de actividad durante las cuales el uso de CPU para una VM puede superar el 100%. Para obtener más información, consulta Tipos de máquinas de núcleo compartido.

Para comprender el rendimiento de CPU y memoria de una instancia, consulta las métricas de rendimiento del uso de CPU y el uso de memoria. Además, puedes usar métricas de procesos para ver procesos en ejecución, anomalías en el consumo de recursos de un proceso específico o identificar los consumidores de recursos más costosos de tu instancia.

El uso coherente de CPU o memoria indica la necesidad de escalar verticalmente el tamaño de una VM. Si la VM usa de manera coherente más del 90% de su CPU o memoria, cambia el tipo de máquina de la VM por un tipo de máquina con más CPU virtuales o memoria.

Rendimiento de la red

Detalles del hardware

El rendimiento de la red se ve afectado por las siguientes restricciones de hardware:

  • Cada tipo de máquina tiene un límite de ancho de banda de salida específico. Para encontrar el ancho de banda de salida máximo del tipo de máquina de tu instancia, visita la página que corresponde a la familia de máquinas de tu instancia.
  • Agregar interfaces de red adicionales o agregar direcciones IP adicionales por interfaz de red a una VM no aumenta el ancho de banda de red de entrada o salida de la VM, pero puedes configurar algunos tipos de máquinas para obtener un mayor ancho de banda. Para obtener más información, consulta Configura una VM con mayor ancho de banda.

Para comprender el rendimiento de la red de una instancia, consulta las métricas de rendimiento para Totales de paquetes de red, Tamaño medio del paquete, Conexiones nuevas con VMs/Externos/Google, Enviado a VMs/Externos/Google, Recibidos de VMs/Externos/Google y Paquetes denegados de firewall.

Revisa si los Totales de paquetes de red, el Tamaño medio de los paquetes y las Conexiones nuevas con VM/Recurso externo/Google son típicos para tu carga de trabajo. Por ejemplo, un servidor web puede experimentar muchas conexiones y paquetes pequeños, mientras que una base de datos puede experimentar pocas conexiones y paquetes grandes.

El tráfico de red enviado que es alto de forma constante puede indicar la necesidad de cambiar el tipo de máquina de la VM a una que tenga un límite de ancho de banda de salida más alto.

Si notas una gran cantidad de paquetes entrantes denegados por los firewalls, visita la página Estadísticas de firewall de Network Intelligence en la consola de Google Cloud para obtener más información sobre los orígenes de los paquetes denegados.

Ir a la página de estadísticas de firewall

Si crees que los firewalls deniegan tu tráfico de forma incorrecta, intenta ejecutar las pruebas de conectividad.

Si tu instancia envía y recibe una gran cantidad de tráfico desde instancias en diferentes zonas o regiones, considera modificar tu carga de trabajo a fin de mantener más datos dentro de una zona o región para aumentar la latencia y disminuir los costos. Para obtener más información, consulta los precios de las transferencias de datos de VM a VM dentro de Google Cloud. Si tu instancia envía una gran cantidad de tráfico a otras instancias dentro de la misma zona, considera una política de posición compacta para lograr una latencia de red baja.

Instancias de equipos físicos

A diferencia de las instancias de VM, en una instancia de Bare Metal, los estados de suspensión C6 y C1E no están inhabilitados. Esto puede provocar que los núcleos inactivos entren en un estado de suspensión y que se reduzca el rendimiento de la red de las instancias de Bare Metal. Estos estados de suspensión se pueden inhabilitar en el sistema operativo si necesitas un rendimiento de ancho de banda de red completo.

  • Puedes usar la siguiente secuencia de comandos para inhabilitar los estados de suspensión en una instancia de Bare Metal C3 sin necesidad de reiniciar la instancia:

    for cpu in {0..191}; do
    echo "1" | sudo tee /sys/devices/system/cpu/cpu$cpu/cpuidle/state3/disable
    echo "1" | sudo tee /sys/devices/system/cpu/cpu$cpu/cpuidle/state2/disable
    done
    
  • Como alternativa, puedes actualizar el archivo de configuración de GRUB para que los cambios permanezcan en los reinicios de la instancia.

    # add intel_idle.max_cstate=1 processor.max_cstate=1 to GRUB_CMDLINE_LINUX
    sudo vim /etc/default/grub
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    sudo reboot
  • Después del reinicio, verifica que los estados de suspensión C6 y C1E estén inhabilitados:

    ls /sys/devices/system/cpu/cpu0/cpuidle/
    state0  state1
    
    cat /sys/devices/system/cpu/cpu0/cpuidle/state*/name
    POLL
    C1

La unidad de administración de memoria de entrada y salida (IOMMU) es una función de CPU que proporciona virtualización de direcciones para dispositivos PCI. IOMMU puede afectar de forma negativa el rendimiento de las herramientas de redes si hay muchos errores I/O translation lookaside buffer (IOTLB).

  • Es más probable que tengas errores cuando se usan páginas pequeñas.
  • Para obtener el mejor rendimiento, se recomienda usar páginas grandes (de 2 MB a 1 GB de tamaño).

Rendimiento del almacenamiento

Detalles del hardware

El almacenamiento se ve afectado por las siguientes restricciones de hardware:

  • El tamaño total de todos los discos persistentes combinados con la cantidad de CPU virtuales determina el rendimiento del almacenamiento total. Si hay diferentes tipos de discos persistentes conectados a una VM, el límite de rendimiento del disco persistente SSD se comparte por todos los discos en la VM. Para obtener más información, consulta Rendimiento del almacenamiento en bloque.
  • Cuando Persistent Disk y Hyperdisk compiten con el tráfico de transferencia de datos salientes, se usa el 60% del ancho de banda máximo de red de salida para Persistent Disk y Hyperdisk, y el 40% restante se puede usar para la transferencia de datos de red saliente. Para obtener más información, consulta Otros factores que afectan el rendimiento.
  • El rendimiento de la profundidad de la cola y el tamaño de E/S dependen de las cargas de trabajo. Es posible que algunas cargas de trabajo no sean lo suficientemente grandes como para usar límites de rendimiento de tamaño completo de E/S y profundidad de cola.
  • El tipo de máquina de una VM afecta su rendimiento de almacenamiento. Para obtener más información, consulta Recuento de tipo de máquina y CPU virtuales.

Para comprender el rendimiento de almacenamiento de una VM, consulta las métricas de rendimiento de la Capacidad de procesamiento, las Operaciones (IOPS) y el Tamaño de E/S, la Latencia de E/S y la Longitud de cola.

Las IOPS y la capacidad de procesamiento del disco indican si la carga de trabajo de la VM funciona como se espera. Si la capacidad de procesamiento o las IOPS son menores que el máximo esperado en el gráfico de tipo de disco, es posible que existan problemas de rendimiento de la latencia de E/S, del tamaño de la E/S y la cola.

Puedes esperar que el tamaño de E/S sea de entre 4 y 16 KiB en las cargas de trabajo que requieren altas IOPS y baja latencia, y de 256 KiB-1 para las que involucran tamaños de escritura secuenciales o grandes. El tamaño de E/S fuera de estos rangos indica que existen problemas de rendimiento del disco.

La longitud de la cola, también conocida como profundidad de cola, es un factor de capacidad de procesamiento y de IOPS. Cuando un disco funciona bien, la longitud de su cola debe ser casi la misma que la recomendada para alcanzar una capacidad de procesamiento o nivel de IOPS en particular, como se indica en el gráfico Profundidad de la cola de E/S recomendada.

La latencia de E/S depende de la longitud de la cola y del tamaño de E/S. Si la longitud de la cola o el tamaño de E/S de un disco es alto, la latencia también será alta.

Si alguna métrica de rendimiento de almacenamiento indica que existen problemas de rendimiento del disco, realiza una o más de las siguientes acciones: