Este documento le muestra cómo diagnosticar y mitigar problemas de rendimiento de CPU, memoria y almacenamiento en máquinas virtuales (VM) e instancias bare metal de Compute Engine.
Antes de comenzar
- Instale Ops Agent para ver las métricas completas de rendimiento de la instancia, como la utilización de la memoria y el espacio en disco.
Ver métricas de rendimiento
Para ver las métricas de rendimiento de sus instancias informáticas, utilice las métricas de observabilidad de Cloud Monitoring disponibles en la consola de Google Cloud.
En la consola de Google Cloud, vaya a la página Instancias de VM .
Puede ver métricas para instancias individuales o para las cinco instancias que consumen la mayor cantidad de un recurso.
Para ver métricas de instancias individuales, haga lo siguiente:
Haga clic en el nombre de la instancia para la que desea ver las métricas de rendimiento. Se abre la página Detalles de la instancia.
Haga 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, haga clic en la pestaña Observabilidad en la página de instancias de VM .
Explore las métricas de rendimiento de la instancia. Vea las secciones Descripción general , CPU , Memoria , Red y Disco para ver métricas detalladas sobre cada tema. Las siguientes son métricas clave que indican el rendimiento de la instancia:
En la página Descripción general :
Utilización de la CPU. El porcentaje de CPU utilizado por la instancia.
Utilización de la memoria. El porcentaje de memoria utilizada por la instancia, excluyendo las cachés de disco. En los casos que utilizan un sistema operativo 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.
Nuevas conexiones con VM/Externas/Google. El número estimado de flujos TCP/UDP distintos en un minuto, agrupados por tipo de igual.
Rendimiento del disco. La tasa promedio de bytes escritos y leídos en discos.
IOPS de disco. La tasa promedio de operaciones de lectura y escritura de E/S en discos.
En la página Resumen de red :
Enviado a máquinas virtuales/externo/Google. La tasa de tráfico de red enviada a los servicios, instancias y destinos externos de Google, según una muestra de paquetes. La métrica se escala para que la suma coincida con el tráfico de red total enviado.
Recibido de VM/Externo/Google. La tasa de tráfico de red recibido de los servicios, instancias y fuentes externas de Google, según una muestra de paquetes. La métrica se escala para 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 del paquete. El tamaño medio de los paquetes, en bytes, enviados y recibidos en intervalos de un minuto.
Paquetes entrantes del firewall denegados. La tasa de paquetes de red entrantes enviados a la instancia, pero no recibidos por la instancia porque fueron rechazados por las reglas de firewall.
En la página Rendimiento de los discos :
Tamaño de E/S promedio El tamaño promedio de las operaciones de lectura y escritura de E/S en discos. Las E/S aleatorias pequeñas (4 a 16 KiB) generalmente están limitadas por IOPS y las E/S secuenciales o grandes (256 KiB a 1 MiB) están limitadas por el rendimiento.
Longitud promedio de la cola La cantidad de operaciones de E/S de disco en cola y en ejecución, también denominada profundidad de la cola, para los cinco dispositivos principales. Para alcanzar los límites de rendimiento de sus discos, utilice una profundidad de cola de E/S alta . Persistent Disk y Google Cloud Hyperdisk son almacenamiento en red y generalmente 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 entre las operaciones de todos 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 el tamaño de E/S.
Comprender 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 soportar la carga de trabajo o el tráfico de red de su instancia, el rendimiento de su instancia podría verse afectado.
Rendimiento de la CPU y la memoria
Detalles de 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 subproceso de hardware en un procesador de CPU.
- Los procesadores de CPU Intel Xeon admiten múltiples subprocesos de aplicaciones en un único núcleo de procesador.
- Las máquinas virtuales que utilizan tipos de máquinas C2 tienen una asignación de núcleo virtual a física fija y exponen la arquitectura de celda NUMA al sistema operativo invitado.
- La mayoría de las máquinas virtuales obtienen la frecuencia turbo de todos los núcleos que figura en las plataformas de CPU , incluso si solo se anuncia la frecuencia base en el entorno invitado.
- Los tipos de máquinas de núcleo compartido utilizan el cambio de contexto para compartir un núcleo físico entre vCPU para realizar múltiples tareas. También ofrecen capacidades 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, consulte Tipos de máquinas de núcleo compartido .
Para comprender el rendimiento de la CPU y la memoria de una instancia, consulte las métricas de rendimiento para la utilización de la CPU y la utilización de la memoria . Además, puede utilizar 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 costosos de su instancia.
La utilización constantemente alta de CPU o memoria indica la necesidad de aumentar el tamaño de una VM. Si la máquina virtual utiliza constantemente más del 90 % de su CPU o memoria, cambie el tipo de máquina de la máquina virtual a un tipo de máquina con más vCPU o memoria.
Una utilización de CPU inusualmente alta o baja puede indicar que su VM está experimentando un bloqueo suave de la CPU. Para obtener más información, consulte Solución de problemas de bloqueos suaves de vCPU .
Rendimiento de la red
Detalles de 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 encontrar el ancho de banda de salida máximo para el tipo de máquina de su instancia, visite la página que corresponde a la familia de máquinas de su 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 la red de entrada o salida de la VM, pero puede configurar algunos tipos de máquinas para un mayor ancho de banda. Para obtener más información, consulte Configuración de una máquina virtual con mayor ancho de banda .
Para comprender el rendimiento de la red de una instancia, vea las métricas de rendimiento para los totales de paquetes de red , el tamaño medio del paquete , las nuevas conexiones con máquinas virtuales/externas/Google , enviadas a máquinas virtuales/externas/Google , recibidas de máquinas virtuales/externas/Google y paquetes entrantes de firewall denegados .
Revise si los totales de paquetes de red , el tamaño medio de los paquetes y las nuevas conexiones con máquinas virtuales/externas/Google son típicas para su 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.
Un tráfico de red saliente constantemente alto puede indicar la necesidad de cambiar el tipo de máquina de la máquina virtual a un tipo de máquina que tenga un límite de ancho de banda de salida más alto.
Si observa una gran cantidad de paquetes entrantes denegados por los firewalls, visite la página Network Intelligence Firewall Insights en la consola de Google Cloud para obtener más información sobre los orígenes de los paquetes denegados.
Vaya a la página Información sobre firewall
Si cree que los firewalls niegan incorrectamente su propio tráfico, puede crear y ejecutar pruebas de conectividad .
Si su instancia envía y recibe una gran cantidad de tráfico de instancias en diferentes zonas o regiones, considere modificar su carga de trabajo para 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, consulte Precios de transferencia de datos VM-VM dentro Google Cloud . Si su instancia envía una gran cantidad de tráfico a otras instancias dentro de la misma zona, considere una política de ubicación compacta para lograr una baja latencia de red.
Instancias de metal desnudo
A diferencia de las instancias de VM, en una instancia básica, los estados de suspensión C6 y C1E no están deshabilitados. Esto puede hacer que los núcleos inactivos entren en estado de suspensión y puede provocar una reducción del rendimiento de la red de las instancias bare metal. Estos estados de suspensión se pueden desactivar en el sistema operativo si necesita un rendimiento completo del ancho de banda de la red.
Puede utilizar el siguiente script para deshabilitar los estados de suspensión en una instancia básica 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
Alternativamente, puede actualizar el archivo de configuración de GRUB para conservar los cambios durante 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, verifique que los estados de suspensión C6 y C1E estén deshabilitados:
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 la CPU que proporciona virtualización de direcciones para dispositivos PCI. IOMMU puede afectar negativamente el rendimiento de la red si hay muchas fallas I/O translation lookaside buffer
(IOTLB).
- Es más probable que se produzcan errores cuando se utilizan páginas pequeñas.
- Para obtener el mejor rendimiento, se recomienda utilizar páginas grandes (de 2 MB a 1 GB de tamaño).
Rendimiento de almacenamiento
Detalles de hardware
El almacenamiento se ve afectado por las siguientes limitaciones de hardware:
- El tamaño total de todos los discos persistentes combinado con la cantidad de vCPU determina el rendimiento total del almacenamiento. Si hay diferentes tipos de discos persistentes conectados a una máquina virtual, el límite de rendimiento del disco persistente SSD lo comparten todos los discos de la máquina virtual. Para obtener más información, consulte Rendimiento del almacenamiento en bloque .
- Cuando el disco persistente y el hiperdisco compiten con el tráfico de transferencia de datos salientes, el 60% del ancho de banda máximo de la red saliente se usa para el disco persistente y el hiperdisco, y el 40% restante se puede usar para la transferencia de datos de la red saliente. Para obtener más información, consulte Otros factores que afectan el rendimiento .
- El tamaño de E/S y el rendimiento de 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 utilizar los límites de rendimiento de profundidad de cola y tamaño de E/S completos.
- El tipo de máquina de una VM afecta su rendimiento de almacenamiento. Para obtener más información, consulte Tipo de máquina y recuento de vCPU .
Para comprender el rendimiento del almacenamiento de una máquina virtual, vea 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 del disco y las IOPS indican si la carga de trabajo de la VM funciona según lo esperado. Si el rendimiento o IOPS es inferior al máximo esperado que figura en el gráfico de tipos de disco , es posible que haya problemas de rendimiento con el tamaño de E/S, la longitud de la cola o la latencia de E/S.
Puede esperar que el tamaño de E/S esté entre 4 y 16 KiB para cargas de trabajo que requieren IOPS altas y baja latencia, y 256 KiB-1 MiB para cargas de trabajo que implican tamaños de escritura secuenciales o grandes. El tamaño de E/S fuera de estos rangos indica problemas de rendimiento del disco.
La longitud de la cola, también conocida como profundidad de la cola, es un factor de rendimiento y de IOPS. Cuando un disco funciona bien, la longitud de su cola debe ser aproximadamente la misma que la longitud de cola recomendada para lograr un rendimiento o nivel de IOPS particular, que se enumera en el cuadro de profundidad de 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 del almacenamiento indica problemas de rendimiento del disco, realice una o más de las siguientes acciones:
- Revise Optimización del rendimiento del disco persistente u Optimización del rendimiento del hiperdisco e implemente las mejores prácticas sugeridas para mejorar el rendimiento.
- Agregue un volumen de Hyperdisk o agregue un nuevo disco persistente a su instancia para aumentar los límites de rendimiento del disco. El rendimiento del disco se basa en la cantidad total de almacenamiento adjunto a una instancia. Esta opción es la menos disruptiva ya que no requiere que desmonte el sistema de archivos, reinicie o apague la instancia.
- Modifique el hiperdisco para aumentar las IOPS por disco y los límites de rendimiento. Para disco persistente, debe aumentar el tamaño del disco para aumentar las IOPS por disco y los límites de rendimiento. Los discos no tienen ninguna capacidad reservada e inutilizable, por lo que puede utilizar el disco completo sin degradación del rendimiento.
- Cambie el tipo de disco a un tipo de disco que ofrezca mayor rendimiento.