Risolvere i problemi relativi al montaggio /tmp pieno per Adobe Commerce

Questo articolo fornisce una soluzione per quando il mount /tmp è pieno, il sito potrebbe essere inattivo e non è possibile eseguire SSH in un nodo.

Descrizione description

Prodotti e versioni interessati

Adobe Commerce 2.3.0 - 2.3.6-p1, 2.4.0 - 2.4.2

Problema

Il montaggio /tmp pieno potrebbe causare una serie di possibili sintomi, inclusi i seguenti errori:

  • SQLSTATE[ HY000]: errore generale: 3 Errore durante la scrittura del file

  • Codice errore: 28

  • Spazio insufficiente sul dispositivo (28)

  • errore session_start(): non riuscito: non è rimasto spazio sul dispositivo

  • *ERRORE 1 (HY000): impossibile creare/scrivere nel file '/tmp/* *

  • Errore SQL: 3, SQLState: HY000

  • Errore generale: disco 1021 pieno (https://experienceleague.adobe.com/tmp?lang=it)

  • *Impossibile accedere al nodo tramite SSH:

    bash: impossibile creare un file temporaneo per here-document: non è rimasto spazio sul dispositivo*

  • errno: 28 "Spazio insufficiente sul dispositivo"

  • mysqld: il disco sta scrivendo completamente '/tmp'

  • [ERRORE] mysqld: disco pieno (https://experienceleague.adobe.com/tmp?lang=it)

  • SQLSTATE[ HY000] : errore generale: 1 Impossibile creare/scrivere nel file '/tmp/'

  • SQLSTATE[ HY000]: errore generale: 23 risorse esaurite all'apertura del file '/tmp/'

  • Codice di errore: 24 "Troppi file aperti"

  • Errore: 23: risorse esaurite all'apertura del file

Passaggi da riprodurre:

Per verificare il livello di riempimento del mount /tmp, nell'interfaccia CLI passare a /tmp ed eseguire il comando seguente: df -h

Risultato previsto:

Inferiore all’80%.

Risultato effettivo:

Circa il 100%.

Causa

Il mount /tmp contiene troppi file, che potrebbero essere causati da:

  • Query SQL non valide che generano tabelle temporanee di grandi dimensioni e/o troppo grandi.
  • Servizi che scrivono nella directory /tmp.
  • Backup/dump del database rimasti nella directory /tmp.

Risoluzione resolution

Per liberare spazio una sola volta, è possibile eseguire alcune operazioni. Sono inoltre disponibili procedure consigliate che impediscono a /tmp di raggiungere il pieno.

Controllare e liberare gli interni

Assicurati che siano disponibili abbastanza nodi. A tale scopo, eseguire il comando seguente: df -i

L'output sarà simile al seguente: Filesystem Inodes Used Free Use% Mounted on /dev/nvme2n1 655360 1695 653665 1% /data/mysql

Verificare che Use% sia < 70%. Gli nodi sono correlati con i file. Se si rimuovono file dalla partizione, si libereranno gli inodi.

Controllare e liberare spazio di archiviazione

Alcuni servizi potrebbero salvare i file in /tmp.

Verifica e libera spazio MySQL

Segui le istruzioni in Spazio su disco MySQL insufficiente in Adobe Commerce sull'infrastruttura cloud > Controlla e libera spazio di archiviazione nella knowledge base di supporto.

Controllare le immagini heap di Elasticsearch

AVVISO
Le immagini heap contengono informazioni di registrazione che potrebbero essere utili per l’analisi dei problemi. Valuta di conservarli in una posizione separata per almeno 10 giorni.

Rimuovi le heapdump (*.hprof) tramite la shell di sistema: find /tmp/*.hprof -type f -delete

Se non disponi delle autorizzazioni necessarie per eliminare i file creati da un altro utente (in questo caso, Elasticsearch), ma noti che i file sono di grandi dimensioni, crea un ticket di supporto per gestirli.

Controllare le immagini/i backup del database

AVVISO
I backup del database vengono in genere creati per uno scopo specifico. Se non sai se il file è ancora necessario, puoi spostarlo in una posizione diversa invece di eliminarlo.

Controllare /tmp per .sql o .sql.gz file e pulirli. Questi potrebbero essere stati creati da strumenti ece durante il backup o durante la creazione manuale di immagini di database con lo strumento mysqldump.

Best practice

Per evitare problemi con /tmp pieno, seguire queste raccomandazioni:

  • Non utilizzare MySQL per la ricerca. Elasticsearch for search elimina in genere la necessità di creare la maggior parte delle tabelle temporanee. Consulta Configurare Adobe Commerce per utilizzare Elasticsearch nella documentazione per gli sviluppatori.
  • Evitare di eseguire la query SELECT su colonne senza indici, in quanto questa operazione occupa una grande quantità di spazio su disco temporaneo. Puoi anche aggiungere gli indici.
  • Creare un cron per pulire /tmp eseguendo il comando seguente in CLI: sudo find /tmp -type f -atime +10 -delete
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f