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
SELECTsu 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
/tmpeseguendo il comando seguente in CLI:sudo find /tmp -type f -atime +10 -delete