Salta al contenuto

Come posso risolvere i problemi di un'istanza EC2 Linux che non supera il controllo dello stato a causa dell'uso eccessivo delle risorse?

8 minuti di lettura
0

La mia istanza Amazon Elastic Compute Cloud (Amazon EC2) Linux non ha superato il controllo dello stato dell'istanza perché non ha più risorse disponibili.

Breve descrizione

Un'istanza potrebbe non superare il controllo dello stato a causa dell'utilizzo delle risorse per i seguenti motivi:

  • L'utilizzo della CPU dell'istanza è prossimo al 100% e l'istanza non ha capacità di calcolo sufficiente per l'esecuzione del kernel.
  • Il dispositivo principale è pieno al 100% e non consente il completamento o l'avvio di altri processi.
  • I processi eseguiti sull'istanza hanno utilizzato tutta la sua memoria e non consentono l'esecuzione del kernel.

Risoluzione

Importante: prima di arrestare e avviare l'istanza, intraprendi le seguenti azioni.

Arresta e avvia l'istanza per forzare il kernel ad arrestare l'esecuzione dei processi. Si tratta di una soluzione temporanea per restituire risorse al sistema operativo. Per risolvere i problemi di utilizzo eccessivo, intraprendi le seguenti azioni per risolvere la causa principale.

Nota: quando arresti e avvii un'istanza, l'indirizzo IP pubblico dell'istanza cambia. È consigliabile utilizzare un indirizzo IP elastico per indirizzare il traffico esterno all'istanza anziché un indirizzo IP pubblico.

Controlla in CloudWatch le metriche della CPU dell'istanza

Verifica in ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html#ec2-cloudwatch-metrics)Amazon CloudWatch se la metrica CPUUtilization[ dell'istanza è pari o prossima al 100%. In caso affermativo, riavvia l'istanza per riportarla a uno stato integro. Se il problema persiste dopo il riavvio, i requisiti di CPU dell'istanza sono superiori a quelli offerti dal tipo di istanza.

Per risolvere il problema, modifica il tipo di istanza scegliendo un tipo con una maggiore CPU disponibile.

Se l'istanza ha prestazioni espandibili, come T2, T3 o T3a, controlla la relativa metrica CPUCreditBalance. Se il saldo del credito è prossimo allo zero, Amazon EC2 limita la CPU dell'istanza. Se imposti il valore Specifica del credito dell'istanza su Standard, modifica la specifica su Illimitato.

Verifica la presenza di errori nel log di sistema dell'istanza

Verifica nel registro di sistema eventuali errori come "No space left on device" o "Out of memory".

Risolvi l'errore "No space left on device"

Se il file system che contiene una cartella elencata è pieno, viene visualizzato un errore simile al seguente esempio:

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

Nell'esempio precedente, /var/lib è pieno.

Per liberare spazio, utilizza la Console seriale EC2 per connetterti ai tipi di istanza basati su Nitro supportati e alle istanze bare metal supportate. Quindi elimina i file non necessari. Per connetterti all'istanza quando utilizzi la Console seriale EC2, non ti serve una connessione funzionale.

Se non hai mai utilizzato la Console seriale EC2 in precedenza, assicurati di rispettare i prerequisiti. Se l'istanza non è raggiungibile e non hai già configurato l'accesso alla console seriale, non puoi usare la Console seriale EC2.

Se non riesci a utilizzare la Console seriale EC2, completa i seguenti passaggi per avviare un'istanza di ripristino e rimuovere i file non necessari:

  1. Avvia una nuova istanza di ripristino nel cloud privato virtuale (VPC). Utilizza la stessa Amazon Machine Image (AMI) e la stessa zona di disponibilità dell'istanza che non ha superato il controllo dello stato.
    Nota: puoi anche utilizzare un'istanza esistente che si trova nella stessa zona di disponibilità e utilizza la stessa AMI dell'istanza originale.

  2. Arresta l'istanza originale.

  3. Scollega il volume Amazon Elastic Block Store (Amazon EBS) principale, ad esempio /dev/xvda o /dev/sda1, dall'istanza originale. Annota il nome del dispositivo del volume principale.

  4. Collega il volume come dispositivo secondario /dev/sdf all'istanza di ripristino.

  5. Utilizza SSH per connetterti all'istanza di ripristino.

  6. Per creare una directory del punto di montaggio per il volume collegato all'istanza di ripristino, esegui questo comando:

    sudo mkdir /rescue

    Nota: sostituisci /rescue con il nome della cartella del punto di montaggio.

  7. Esegui questo comando come utente root per identificare il nome corretto del dispositivo:

    sudo -i
    # lsblk

    Nota: il dispositivo collegato all'istanza di ripristino potrebbe avere un nome del dispositivo diverso.

  8. Per montare il volume nella nuova directory, esegui questo comando:

    sudo mount /dev/xvdf1 /rescue

    Nota: sostituisci dev/xvdf1 con il nome del dispositivo del volume principale e /rescue con il nome della directory del punto di montaggio. Se ricevi un errore quando esegui il comando precedente, consulta Perché non riesco a montare il mio volume Amazon EBS?

  9. Per identificare i file che occupano più spazio, esegui questo comando:

    du -shcm /rescue/var/lib/* |sort -n
  10. Per liberare spazio, elimina i file di grandi dimensioni che non ti servono.

  11. Per smontare il dispositivo secondario dall'istanza di ripristino, esegui questo comando:

sudo umount /rescue

Nota: sostituisci /rescue con il nome della cartella del punto di montaggio.
Se l'operazione di smontaggio non riesce, arresta o riavvia l'istanza di ripristino. Quindi esegui nuovamente il comando precedente. Scollega il volume secondario dall'istanza di ripristino. Collega il volume all'istanza originale come volume principale /dev/xvda o /dev/sda1. Avvia l'istanza e verifica che sia reattiva.

Se non hai ancora abbastanza spazio di archiviazione disponibile, completa i seguenti passaggi per ridimensionare il volume EBS principale:

  1. Richiedi una modifica delle dimensioni del volume EBS.
  2. Segui i passaggi 1-8 della sezione precedente per avviare un'istanza di ripristino.
  3. Estendi il file system Linux.

Risolvi l'errore "Out of memory"

Se la memoria dell'istanza è esaurita, viene visualizzato il seguente errore:

"Out of memory: kill process"

Quando la memoria dell'istanza è esaurita, il kernel non dispone di memoria sufficiente per l'esecuzione e Amazon EC2 interrompe altri processi per liberare memoria. Per la procedura di risoluzione dei problemi, consulta Out of memory: kill process (Memoria esaurita: processo di interruzione).

Per controllare i log della memoria, avvia un'istanza di ripristino seguendo i passaggi 1-8 della sezione precedente. Quindi esegui questo comando a seconda della distribuzione Linux per cercare nei log i messaggi "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"

-oppure-

sudo dmesg | grep -i "out of memory"

Risolvi gli errori di allocazione delle pagine

Ricevi un errore "page allocation failure" quando l'allocatore di memoria del kernel non risponde alla richiesta di allocazione.

Per risolvere il problema, è consigliabile aggiornare l'istanza a un tipo di istanza più grande. Oppure, per le istanze che utilizzano volumi di archivio dell'istanza effimeri, utilizza un file di swap o una partizione del disco rigido per aggiungere spazio di archiviazione di swap all'istanza e alleviare la pressione sulla memoria.

Nota: l'istanza utilizza lo spazio di swap quando la RAM è piena. Puoi utilizzare lo spazio di swap per le istanze con una RAM ridotta. Tuttavia, lo spazio di swap non sostituisce una RAM maggiore. Poiché lo spazio di swap si trova sul disco rigido dell'istanza, le prestazioni sono inferiori rispetto alla RAM. Per una memoria più grande o più veloce, devi aumentare le dimensioni dell'istanza.

Utilizza atop per indagare e prevenire problemi relativi alle risorse

Utilizza lo strumento di monitoraggio atop per identificare i modelli e i processi di utilizzo delle risorse che potrebbero causare problemi prima che causino errori di sistema. Lo strumento atop consente di monitorare e risolvere i problemi del sistema su base continuativa.

Nota: lo strumento atop registra i dati solo dopo l'installazione. Non puoi recuperare i dati storici sulle prestazioni precedenti alla sua installazione.

Utilizza lo strumento atop per controllare le seguenti risorse:

  • Controlla i dati storici in /var/log/atop/ per analizzare il sistema e i processi nel momento in cui si è verificato l'errore.
  • Cerca i processi che consumano una grande quantità di risorse.
  • Controlla i modelli di utilizzo della memoria, della CPU e del disco che hanno portato all'errore.

Informazioni correlate

Come posso risolvere gli errori di controllo di stato della mia istanza EC2 Linux?

Quali passaggi devo eseguire prima di modificare il tipo di istanza della mia istanza EC2 Linux?

AWS UFFICIALEAggiornata 9 mesi fa