Saltar al contenido

¿Cómo soluciono los problemas de una instancia de EC2 de Linux que no supera una comprobación de estado debido al uso excesivo de los recursos?

9 minutos de lectura
0

Mi instancia de Linux de Amazon Elastic Compute Cloud (Amazon EC2) no ha superado la comprobación de estado de la instancia porque ya no tiene recursos disponibles.

Descripción corta

Es posible que la instancia no supere la comprobación de estado debido al uso de recursos por los siguientes motivos:

  • El uso de la CPU de la instancia es casi del 100 % y la instancia no tenía suficiente capacidad de procesamiento para que se ejecutara el kernel.
  • El dispositivo raíz está lleno al 100 % y no permite que otros procesos se completen o comiencen.
  • Los procesos que se ejecutan en la instancia usaron toda su memoria y no permiten que el kernel se ejecute.

Resolución

Importante: Antes de detener e iniciar la instancia, lleva a cabo las siguientes acciones.

Detén e inicia la instancia para obligar al kernel a detener los procesos en ejecución. Se trata de una solución temporal para devolver recursos al sistema operativo. Para solucionar los problemas de uso excesivo, toma las siguientes medidas para abordar la causa principal.

Nota: Al detener e iniciar una instancia, la dirección IP pública de la instancia cambia. Se recomienda utilizar una dirección IP elástica para enrutar el tráfico externo hacia la instancia en lugar de una dirección IP pública.

Comprobación de las métricas de CPU de CloudWatch de la instancia

Comprueba si la métrica CPUUtilization de Amazon CloudWatch de la instancia es igual o cercana al 100 %. Si es así, reinicia la instancia para devolverla a un estado correcto. Si el problema persiste después del reinicio, los requisitos de CPU de la instancia son superiores a los que ofrece tu tipo de instancia.

Para resolver este problema, cambia el tipo de instancia a una con mayor disponibilidad de CPU.

Si la instancia es una instancia de rendimiento ampliable, como T2, T3 o T3a, comprueba su métrica CPUCreditBalance. Si el saldo de créditos es cercano a cero, Amazon EC2 limita la CPU de la instancia. Si estableces la especificación de crédito de la instancia en Estándar, cámbiala a Ilimitada.

Comprobación de los posibles errores en el registro del sistema de la instancia

Comprueba si en el registro del sistema aparecen errores como «No space left on device» o «Out of memory».

Solución del error «No space left on device»

Si el sistema de archivos que contiene una carpeta de la lista está lleno, recibirás un error similar al del ejemplo siguiente:

«OSError: [Error 28] No space left on device '/var/lib/'»

En el ejemplo anterior, /var/lib está lleno.

Para liberar espacio, utiliza la consola serie de EC2 para conectarte a los tipos de instancias basadas en Nitro compatibles y a las instancias bare metal compatibles. A continuación, borra los archivos innecesarios. No necesitarás una conexión funcional para conectarte a la instancia si utilizas la consola serie de EC2.

Si no has utilizado antes la consola serie de EC2, asegúrate de cumplir los requisitos previos. Si no puedes acceder a tu instancia y aún no has configurado el acceso a la consola serie, no puedes usar la consola serie de EC2.

Si no puedes usar la consola serie de EC2, sigue estos pasos para iniciar una instancia de rescate y eliminar los archivos innecesarios:

  1. Inicia una nueva instancia de EC2 en tu nube virtual privada (VPC). Usa la misma imagen de máquina de Amazon (AMI) y la misma zona de disponibilidad que la instancia que no superó la comprobación de estado.
    Nota: También puedes usar una instancia existente que esté en la misma zona de disponibilidad y utilice la misma AMI que la instancia original.

  2. Detén la instancia original.

  3. Separa el volumen raíz de Amazon Elastic Block Store (Amazon EBS), como /dev/xvda o /dev/sda1, de la instancia original. Anota el nombre de dispositivo de tu volumen raíz.

  4. Conecta el volumen como dispositivo secundario /dev/sdf a la instancia de rescate.

  5. Usa SSH para conectarte a tu instancia de rescate.

  6. Para crear un directorio de puntos de montaje para el volumen que has conectado a la instancia de rescate, ejecuta el siguiente comando:

    sudo mkdir /rescue

    Nota: Sustituye /rescue por el directorio de puntos de montaje.

  7. Como usuario raíz, ejecuta los siguientes comandos para identificar el nombre correcto del dispositivo:

    sudo -i
    # lsblk

    Nota: El dispositivo que está conectado a la instancia de rescate puede tener un nombre de dispositivo diferente.

  8. Para montar el volumen en el nuevo directorio, ejecuta el siguiente comando:

    sudo mount /dev/xvdf1 /rescue

    Nota: Sustituye dev/xvdf1 por el nombre de dispositivo de tu volumen raíz y /rescue por el nombre de directorio de tu punto de montaje. Si recibes un error al ejecutar el comando anterior, consulta ¿Por qué no puedo montar mi volumen de Amazon EBS?

  9. Para identificar los archivos que ocupan más espacio, ejecuta el siguiente comando:

    du -shcm /rescue/var/lib/* |sort -n
  10. Para liberar espacio, elimina los archivos grandes que no necesites.

  11. Para desmontar el dispositivo secundario de la instancia de rescate, ejecuta el siguiente comando:

sudo umount /rescue

Nota: Sustituye /rescue por el directorio de puntos de montaje.
Si la operación de desmontaje falla, detén o reinicia la instancia de rescate. A continuación, ejecuta el comando anterior. Separa el volumen secundario de la instancia de rescate. Conecta el volumen a la instancia original como volumen raíz /dev/xvda o /dev/sda1. Inicia la instancia de EC2 y, a continuación, comprueba que la instancia responda.

Si aún no tienes suficiente espacio de almacenamiento disponible, sigue estos pasos para poder cambiar el tamaño del volumen raíz de EBS:

  1. Solicita una modificación del tamaño del volumen de EBS.
  2. Sigue los pasos 1 a 8 de la sección anterior para iniciar una instancia de rescate.
  3. Amplía el sistema de archivos Linux.

Solución del error «Out of memory»

Si la instancia no tiene memoria suficiente, recibirás el siguiente error:

«Out of memory: kill process»

Cuando la instancia se queda sin memoria, el kernel no tiene suficiente memoria para ejecutarse y Amazon EC2 finaliza otros procesos para liberar memoria. Para ver los pasos de solución de problemas, consulta Out of memory: kill process.

Para comprobar los registros de memoria, sigue los pasos 1 a 8 de la sección anterior para iniciar una instancia de rescate. A continuación, ejecuta el siguiente comando en función de tu distribución de Linux para buscar en los registros mensajes de «out of memory»:

Amazon Linux 2 (AL2):

sudo grep -i -r 'out of memory' /var/log/

Amazon Linux 2023 (AL2023):

sudo journalctl -p err | grep -i "out of memory"

Alternativa:

sudo dmesg | grep -i "out of memory"

Solución de errores de asignación de páginas

Recibes un error «page allocation failure» cuando el asignador de memoria del kernel no responde a la solicitud de asignación.

Para solucionar este problema, se recomienda actualizar la instancia a un tipo de instancia más grande. O bien, en el caso de las instancias que usan volúmenes de almacén de instancias efímeros, usa un archivo de intercambio o una partición de disco duro para agregar almacenamiento de intercambio a la instancia y reducir la presión de la memoria.

Nota: La instancia utiliza el espacio de intercambio cuando la RAM está llena. Puedes usar el espacio de intercambio para instancias que tengan una cantidad pequeña de RAM. Sin embargo, el espacio de intercambio no sirve para reemplazar más RAM. Como el espacio de intercambio está en el disco duro de la instancia, el rendimiento es más lento en comparación con la RAM. Para obtener más memoria o aumentar su velocidad, debes aumentar el tamaño de la instancia.

Uso de atop para investigar y prevenir problemas de recursos

Utiliza la herramienta de supervisión atop para identificar los patrones y procesos de uso de los recursos que pueden causar problemas antes de que provoquen fallos en el sistema. La herramienta atop te ayuda a supervisar y solucionar problemas del sistema de forma continua.

Nota: La herramienta atop registra los datos solo después de instalarla. No puedes recuperar los datos históricos de rendimiento anteriores a la instalación de la herramienta atop.

Utiliza la herramienta atop para comprobar los siguientes recursos:

  • Comprueba los datos históricos en /var/log/atop/ para analizar el sistema y los procesos cuando se produjo la falla.
  • Busca procesos que consuman una gran cantidad de recursos.
  • Comprueba los patrones de uso de la memoria, la CPU y el disco que provocaron el error.

Información relacionada

¿Cómo soluciono los errores de comprobación de estado de mi instancia de EC2 de Linux?

¿Qué pasos debo seguir antes de cambiar el tipo de instancia de mi instancia de EC2 de Linux?

OFICIAL DE AWSActualizada hace 7 meses