Solucionar problemas de rendimiento de instancias de computación


En este documento se explica cómo diagnosticar y mitigar los problemas de rendimiento de la CPU, la memoria y el almacenamiento en las instancias de máquina virtual (VM) y de hardware desnudo de Compute Engine.

Antes de empezar

Ver métricas de rendimiento

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

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

    Ir a Instancias de VM

  2. Puede ver las métricas de instancias concretas o de las cinco instancias que consumen la mayor cantidad de un recurso.

    Para ver las métricas de instancias concretas, haz lo siguiente:

    1. Haga clic en el nombre de la instancia de la que quiera ver las métricas de rendimiento. Se abrirá la página Detalles de la instancia.

    2. Haga clic en la pestaña Observabilidad para abrir la página Resumen de Observabilidad.

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

  3. Consulta las métricas de rendimiento de la instancia. Consulta las secciones Resumen, CPU, Memoria, Red y Disco para ver métricas detalladas sobre cada tema. Estas son las métricas clave que indican el rendimiento de la instancia:

    • En la página Vista general:

      • Uso de CPU. El porcentaje de CPU que ha usado la instancia.

      • Uso de memoria. Porcentaje de memoria usada por la instancia, sin incluir las cachés de disco. En el caso de las instancias que usan un SO Linux, también se excluye la memoria del kernel.

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

      • Nuevas conexiones con VMs/External/Google. Número estimado de flujos TCP/UDP distintos en un minuto, agrupados por tipo de peer.

      • Rendimiento del disco. Tasa media de bytes escritos y leídos de los discos.

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

    • En la página Resumen de la red:

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

      • Recibido de VMs/External/Google. La tasa de tráfico de red recibida de servicios, instancias y fuentes externas de Google, basada en una muestra de paquetes. La métrica se escala de forma que la suma coincida con el tráfico de red total recibido.

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

      • Tamaño medio de los paquetes. Tamaño medio de los paquetes, en bytes, enviados y recibidos en intervalos de un minuto.

      • Paquetes entrantes del cortafuegos denegados. La tasa de paquetes de red entrantes enviados a la instancia, pero no recibidos por la instancia, porque las reglas de cortafuegos los han denegado.

    • En la página Rendimiento de los discos:

      • Tamaño medio de E/S: tamaño medio 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 las IOPS, mientras que las E/S secuenciales o grandes (de 256 KiB a 1 MiB) están limitadas por el rendimiento.

      • Longitud media de la cola: número de operaciones de E/de disco en cola y en ejecución, también denominado profundidad de la cola, de los cinco dispositivos principales. Para alcanzar los límites de rendimiento de tus discos, usa una profundidad de cola de E/S alta. Persistent Disk y Google Cloud Hyperdisk son servicios de almacenamiento en red y, por lo general, tienen una latencia mayor que los discos físicos o los discos SSD locales.

      • Latencia de E/S media: latencia media de las operaciones de lectura y escritura de E/S agregadas en todas las operaciones de los discos conectados a la instancia, medida 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 del tamaño de las operaciones de entrada/salida.

Información sobre las métricas de rendimiento

El rendimiento de las instancias se ve afectado por el hardware en el que se ejecutan, la carga de trabajo que se ejecuta en ellas 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, es posible que el rendimiento de la instancia se vea 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 limitaciones de hardware:

  • Cada CPU virtual (vCPU) se implementa como un único multihilo de hardware en un procesador de CPU.
  • Los procesadores Intel Xeon CPU admiten varios hilos de aplicaciones en un solo núcleo de procesador.
  • Las VMs que usan tipos de máquinas C2 tienen una asignación de núcleos virtuales a físicos fija y exponen la arquitectura de celdas NUMA al SO invitado.
  • La mayoría de las VMs obtienen la frecuencia de turbo en todos los núcleos que se indica en las plataformas de CPU, aunque solo se anuncie la frecuencia base 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 vCPUs y realizar varias tareas. También ofrecen funciones de ráfaga durante las cuales la utilización de la CPU de una VM puede superar el 100%. Para obtener más información, consulta la página Tipos de máquinas de núcleo compartido.

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

Si el uso de la CPU o la memoria es constantemente alto, significa que es necesario aumentar el tamaño de una VM. Si la VM usa constantemente más del 90% de su CPU o memoria, cambia el tipo de máquina de la VM a un tipo de máquina con más vCPUs o memoria.

Un uso de CPU inusualmente alto o bajo puede indicar que tu VM está experimentando un bloqueo suave de la CPU. Para obtener más información, consulta Solucionar problemas de bloqueos suaves de vCPU.

Rendimiento de la red

Detalles del hardware

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

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

Para conocer el rendimiento de la red de una instancia, consulta las métricas de rendimiento de Totales de paquetes de red, Tamaño medio de los paquetes, Nuevas conexiones con máquinas virtuales, entidades externas o Google, Paquetes enviados a máquinas virtuales, entidades externas o Google, Paquetes recibidos de máquinas virtuales, entidades externas o Google y Paquetes entrantes denegados por el cortafuegos.

Comprueba si los valores de Total de paquetes de red, Tamaño medio de los paquetes y Nuevas conexiones con VMs/External/Google son los habituales en 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.

Si el tráfico de red saliente es alto de forma constante, puede que tengas que cambiar el tipo de máquina de la VM a uno que tenga un límite de ancho de banda de salida más alto.

Si observas un número elevado de paquetes entrantes denegados por cortafuegos, visita la página Estadísticas del cortafuegos de Network Intelligence de la consolaGoogle Cloud para obtener más información sobre los orígenes de los paquetes denegados.

Ir a la página Estadísticas del cortafuegos

Si crees que los cortafuegos están denegando tu propio tráfico por error, puedes crear y ejecutar pruebas de conectividad.

Si tu instancia envía y recibe una gran cantidad de tráfico de instancias de diferentes zonas o regiones, plantéate modificar tu carga de trabajo para mantener más datos en una zona o región, lo que aumentará la latencia y reducirá los costes. Para obtener más información, consulta los precios de la transferencia de datos entre máquinas virtuales de Google Cloud. Si tu instancia envía una gran cantidad de tráfico a otras instancias de la misma zona, te recomendamos que utilices una política de colocación compacta para conseguir una latencia de red baja.

Instancias Bare Metal

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 estado de suspensión y que se reduzca el rendimiento de la red de las instancias de hardware desnudo. Estos estados de suspensión se pueden inhabilitar en el sistema operativo si necesitas un rendimiento de ancho de banda de red completo.

  • Para inhabilitar los estados de suspensión en una instancia de hardware desnudo sin tener que reiniciar la instancia, usa la siguiente secuencia de comandos:

    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
    
  • También puedes actualizar el archivo de configuración de GRUB para que los cambios se conserven al reiniciar 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 de reiniciar, comprueba 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 gestión de memoria de entrada/salida (IOMMU) es una función de la CPU que proporciona virtualización de direcciones para dispositivos PCI. IOMMU puede afectar negativamente al rendimiento de la red si hay muchos errores de I/O translation lookaside buffer (IOTLB).

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

Rendimiento del almacenamiento

Detalles del hardware

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

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

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

El rendimiento y las IOPS del disco indican si la carga de trabajo de la VM funciona según lo previsto. Si el rendimiento o las IOPS son inferiores al máximo esperado que se indica en el gráfico de tipos de disco, puede que haya problemas de rendimiento con el tamaño de E/S, la longitud de la cola o la latencia de E/S.

El tamaño de E/S será de entre 4 y 16 KiB en las cargas de trabajo que requieran un número elevado de IOPS y una latencia baja, y de entre 256 KiB y 1 MiB en las cargas de trabajo que impliquen tamaños de escritura secuenciales o grandes. Si el tamaño de E/S está fuera de estos intervalos, significa que hay problemas de rendimiento del disco.

La longitud de la cola, también denominada profundidad de la cola, es un factor del rendimiento y las IOPS. Cuando un disco funciona bien, su longitud de cola debe ser aproximadamente la misma que la longitud de cola recomendada para alcanzar un nivel de rendimiento o IOPS concreto, que se indica en el gráfico Profundidad de cola de E/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 son altos, la latencia también lo será.

Si alguna métrica de rendimiento del almacenamiento indica que hay problemas de rendimiento del disco, haz una o varias de las siguientes acciones: