Sugerencias generales para usar Compute Engine

En esta página, se describen sugerencias que pueden resultarte útiles si tienes problemas cuando usas Google Compute Engine.

Si quieres obtener ayuda para solucionar problemas específicos, consulta una de las siguientes secciones:

Observa diferentes formatos de respuesta

Google Cloud CLI realiza la mayoría de sus acciones mediante llamadas a la API de REST. Los resultados impresos muestran solo la información más importante que muestra cualquier comando específico. Para ver los diferentes formatos de respuesta, usa la marca --format, que muestra la respuesta en diferentes formatos de salida, como json, yaml y text. Por ejemplo, para ver una lista de instancias en JSON, usa --format json:

gcloud compute instances list --format json

Observa registros de gcloud compute

Gcloud CLI crea y almacena registros en un archivo de registro que puedes consultar, ubicado en $HOME/.config/gcloud/logs. Para ver el último archivo de registro en un sistema operativo con base en Linux, ejecuta el siguiente comando:

$ less $(find ~/.config/gcloud/logs | sort | tail -n 1)

El archivo de registro incluye información sobre todas las solicitudes y respuestas realizadas con la herramienta gcloud CLI.

Para borrar definitiva y automáticamente los archivos de registro creados por la CLI de gcloud, usa la propiedad max_log_days, que establece la cantidad máxima de días para conservar los archivos de registro antes de borrarlos. La configuración predeterminada es de 30 días. Si configuras este valor de propiedad en 0, se desactiva la recolección de elementos de registro no utilizados y no se borran los archivos de registro.

 gcloud config set core/max_log_days DAYS_TO_RETAIN_LOGS

Inhabilita el registro de archivos de la gcloud CLI:

El archivo $HOME/.config/gcloud/logs consume espacio en el sistema de archivos local. La cantidad de registros generados puede sobrecargar la cantidad de espacio en el sistema de archivos local, lo que puede causar problemas como los siguientes:

  • El uso de espacio alcanza el 100% en la instancia.
  • No se ejecutaron los comandos de registro de gcloud CLI porque no queda espacio para crear un archivo nuevo en el sistema de archivos local.

Para cambiar el comportamiento de la gcloud CLI e inhabilitar el registro de archivos, usa la propiedad disable_file_logging:

 gcloud config set core/disable_file_logging True

Selecciona nombres de recursos

Cuando selecciones nombres para los recursos, ten en cuenta que estos nombres descriptivos pueden verse en los paneles operativos y de asistencia dentro de Compute Engine. Por esta razón, se recomienda que los nombres de los recursos no revelen información sensible.

Comunicación a Internet

Una instancia tiene acceso directo a Internet solo si se cumplen las siguientes condiciones:

Las instancias también pueden acceder a Internet de forma indirecta mediante la conexión a través de Cloud NAT o un proxy basado en instancias. Para conocer consideraciones adicionales, incluida la configuración de las reglas de firewall, consulta los requisitos de acceso a Internet.

Conexiones inactivas

Google Cloud Los componentes de red no mantienen las conexiones inactivas abiertas de forma indefinida. Para evitar las conexiones interrumpidas, ten en cuenta cómo los siguientes componentes controlan las conexiones inactivas:

Para evitar que se descarten las conexiones TCP inactivas, puedes configurar TCP keepalive, que mantiene las conexiones activas enviando paquetes periódicos (sondeos) para restablecer los tiempos de espera por inactividad:

  • Asegúrate de que las aplicaciones cliente o servidor creen sockets con la opción de socket SO_KEEPALIVE. Consulta la documentación de tu aplicación o biblioteca de software para determinar cómo abrir sockets con la opción SO_KEEPALIVE.

  • Configura los siguientes parámetros de keepalive de TCP:

    • El período de inactividad, que representa el tiempo que debe transcurrir entre el último paquete de no keepalive y la primera sonda de keepalive en una secuencia.

    • El intervalo de keepalive, que representa el tiempo entre cada sondeo de keepalive de TCP.

    • Los sondeos de keepalive, que representan la cantidad total de sondeos de keepalive de TCP no confirmados que se envían en una secuencia antes de que se considere que se interrumpió la conexión.

Las aplicaciones cliente o servidor pueden establecer los parámetros de keepalive de TCP con opciones de socket, como TCP_KEEPIDLE, TCP_KEEPINTVL y TCP_KEEPCNT, o bien puedes establecer los parámetros de keepalive de TCP para tu sistema operativo.

En los siguientes ejemplos, se muestra cómo establecer un período de inactividad de 60 segundos para tu sistema operativo:

Linux


Ejecuta el siguiente comando:

$ sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5

Para asegurarte de que la configuración sobreviva al reinicio, agrégala a tu archivo /etc/sysctl.conf. Estos parámetros del kernel se aplican a IPv4 e IPv6, aunque tengan ipv4 en sus nombres.

Consulta la sección INSTRUCTIVO para Keepalive de TCP de Linux a fin de obtener más información.

macOS


Ejecuta el siguiente comando:

$ sudo sysctl -w net.inet.tcp.always_keepalive=1 net.inet.tcp.keepidle=60000 net.inet.tcp.keepinit=60000 net.inet.tcp.keepintvl=60000

Windows


En la ruta de registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\, agrega los siguientes parámetros de configuración con el tipo de datos DWORD o edita los valores si los parámetros de configuración ya existen:

KeepAliveInterval: 1000
KeepAliveTime: 60000
TcpMaxDataRetransmissions: 10

Accede a Compute Engine como un usuario SSH diferente

De forma predeterminada, la herramienta de línea de comandos de gcloud compute usa la variable $USER para agregar usuarios al archivo /etc/passwd para conectarse a instancias con SSH. Puedes especificar un usuario diferente con la marca --ssh-key-file PRIVATE_KEY_FILE cuando ejecutas el comando gcloud compute ssh. Por ejemplo:

gcloud compute ssh example-instance --ssh-key-file my-private-key-file

Para obtener más información, consulta la documentación de referencia de gcloud.

Interactúa con la consola en serie

Puedes habilitar el acceso interactivo a la consola en serie de una instancia para poder conectarte y solucionar los problemas de las instancias a través de la consola en serie.

Para obtener más información, consulta Soluciona problemas con la consola en serie.

Evita la fragmentación de paquetes en instancias compiladas a partir de imágenes personalizadas

La red de VPC tiene una unidad de transmisión máxima (MTU) predeterminada de 1460 bytes para imágenes de Linux y Windows Server. Sin embargo, se puede cambiar la MTU de la red. Para obtener detalles, consulta la descripción general de la unidad de transmisión máxima en la documentación de VPC.

Cuando creas aplicaciones cliente que se comunican con instancias de Compute Engine a través de sockets UDP, puedes evitar la fragmentación si configuras el tamaño máximo de datos del UDP en 28 bytes menos que la MTU de la red. Por ejemplo, si la MTU de la red es de 1,460 bytes, puedes enviar hasta 1,432 bytes de datos UDP por paquete sin fragmentación. Si la MTU de la red es de 1,500 bytes, puedes enviar hasta 1,472 bytes de datos UDP sin fragmentación. Los 28 bytes se usan para un encabezado de paquete IPv4 (20 bytes) y un encabezado de datagramas UDP (8 bytes). Puedes configurar la MTU de la red en un máximo de 8896 bytes.

Diagnósticos de rendimiento y CPU

Los aumentos repentinos de latencia o las fallas inesperadas en tu aplicación en plataformas de CPU modernas pueden indicar bloqueos del bus de la CPU. Estos problemas ocurren cuando se realizan operaciones atómicas en memoria no alineada.

Para identificar el problema, revisa la salida del puerto en serie y busca la siguiente entrada de registro: x86/split lock detection: #DB: <process_name>/<pid> took a bus_lock trap at address: 0x<address>.

El resultado de la consola en serie permite detectar eventos a nivel del hardware, como las interrupciones de bloqueo del bus de la CPU, que indican operaciones de memoria no alineadas que pueden degradar el rendimiento del sistema.

Para obtener más información, consulta Soluciona problemas de bloqueos del bus de la CPU.