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.
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 il file temporaneo per here-document: Spazio non disponibile 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.
Soluzione
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 su infrastruttura cloud > Controlla e libera spazio di archiviazione nella nostra knowledge base di supporto.
Controllare le immagini heap di Elasticsearch
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
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:code language-bash sudo find /tmp -type f -atime +10 -delete
Lettura correlata
Lo spazio su disco di MySQL nell'infrastruttura cloud di Adobe Commerce è insufficiente nella Knowledge Base di supporto.