Felsök fullständigt /tmp-paket för Adobe Commerce
Den här artikeln innehåller en lösning för när monteringen av /tmp
är full, platsen kan vara nere och du inte kan lägga till SSH i en nod.
Berörda produkter och versioner
- Adobe Commerce 2.3.0 - 2.3.6-p1, 2.4.0 - 2.4.2
Problem
Det fullständiga monteringsvärdet /tmp
kan resultera i en rad möjliga symtom, bland annat följande fel:
- SQLSTATE[HY000]: Allmänt fel: 3 Fel vid skrivning av fil
- Felkod: 28
- Inget utrymme kvar på enheten (28)
- error session_start(): failed: No space left on device
- FEL 1 (HY000): Det går inte att skapa/skriva till filen /tmp/
- SQL-fel: 3, SQLState: HY000
- Allmänt fel: 1021 Disken är full (https://experienceleague.adobe.com/tmp?lang=sv)
- Det går inte att komma åt noden via SSH:
bash: det går inte att skapa temporär fil för här-dokument: Det finns inget ledigt utrymme på enheten - fel: 28"Inget utrymme återstår på enheten"
- mysqld: Disken är full med "/tmp"
- [FEL] mysqld: Disken är full (https://experienceleague.adobe.com/tmp?lang=sv)
- SQLSTATE[HY000]: Allmänt fel: 1 Det går inte att skapa/skriva till filen /tmp/
- SQLSTATE[HY000]: Allmänt fel: 23 Slut på resurser när filen /tmp/ öppnas
- Felkod: 24"För många öppna filer"
- Allvarligt fel: 23: Resurser saknas när filen öppnas
Steg att återskapa:
Om du vill kontrollera hur full monteringen av /tmp
är växlar du i CLI till /tmp
och kör följande kommando:
df -h
Förväntat resultat:
Mindre än 80 %.
Faktiskt resultat:
Cirka 100 %.
Orsak
Monteringen /tmp
har för många filer, vilket kan bero på:
- Felaktiga SQL-frågor som genererar stora och/eller för många temporära tabeller.
- Tjänster skriver till katalogen
/tmp
. - Databassäkerhetskopior/dumpar finns kvar i katalogen
/tmp
.
Lösning
Det finns saker du kan göra för att frigöra lite utrymme en gång, och det finns god praxis som förhindrar \tmp
från att bli full.
Kontrollera och frigöra noder
Se till att det finns tillräckligt med tillgängliga noder. Kör följande kommando för att göra detta:
df -i
Utdata skulle se ut ungefär så här:
Filesystem Inodes Used Free Use% Mounted on
/dev/nvme2n1 655360 1695 653665 1% /data/mysql
Kontrollera att Use% är <70%. Inoder är korrelerade med filer. Om du tar bort filer från partitionen kommer du att frigöra noder.
Kontrollera och frigör lagringsutrymme
Det finns flera tjänster som kanske sparar filer i /tmp
.
Kontrollera och frigör MySQL-utrymme
Följ instruktionerna i MySQL-diskutrymmet har slut på Adobe Commerce i molninfrastrukturen > Kontrollera och frigör lagringsutrymme i vår supportkunskapsbas.
Kontrollera Elasticsearch-heapdumpar
Ta bort stackar (*.hprof
) med systemgränssnitt:
find /tmp/*.hprof -type f -delete
Om du inte har behörighet att ta bort filer som har skapats av en annan användare (i det här fallet Elasticsearch), men du ser att filerna är stora, kan du skapa en supportanmälan för att hantera dem.
Kontrollera databasdumpar/säkerhetskopior
Kontrollera /tmp
efter .sql
- eller .sql.gz
-filer och rensa dem. Dessa kan ha skapats med andra verktyg under säkerhetskopieringen eller när databasdumpar skapades manuellt med verktyget mysqldump
.
God praxis
Följ de här rekommendationerna för att undvika att få problem med att /tmp
är full:
-
Använd inte MySQL för sökning. Elasticsearch för sökning eliminerar vanligtvis behovet av de flesta komplicerade temporära tabellskapanden. Se Konfigurera Adobe Commerce att använda Elasticsearch i utvecklardokumentationen.
-
Undvik att köra
SELECT
-frågan på kolumner utan index eftersom det här kräver mycket temporärt diskutrymme. Du kan också lägga till index. -
Skapa en cron för att rensa upp
/tmp
genom att köra följande kommando i CLI:code language-bash sudo find /tmp -type f -atime +10 -delete
Relaterad läsning
Det är ont om diskutrymme på MySQL på Adobe Commerce i molninfrastrukturen i vår kunskapsbas för support.