Résolution des problèmes /tmp de montage complet pour Adobe Commerce
Cet article fournit une solution pour lorsque le montage /tmp
est plein, que le site peut être hors service et que vous ne pouvez pas SSH dans un noeud.
Produits et versions concernés
- Adobe Commerce 2.3.0 - 2.3.6-p1, 2.4.0 - 2.4.2
Problème
Le montage /tmp
étant complet, il se peut que plusieurs symptômes se produisent, notamment les erreurs suivantes :
- SQLSTATE[HY000] : Erreur générale : 3 Erreur lors de l’écriture du fichier
- Code d’erreur : 28
- Aucun espace laissé sur l’appareil (28)
- error session_start() : échec : aucun espace restant sur l’appareil
- ERROR 1 (HY000) : impossible de créer/écrire dans le fichier '/tmp/
- Erreur SQL : 3, SQLState : HY000
- Erreur générale : 1021 disque plein (https://experienceleague.adobe.com/tmp?lang=fr)
- Impossible d'accéder au noeud via SSH:
bash : impossible de créer un fichier temporaire pour le document ici : aucun espace ne reste sur l’appareil - errno : 28 "No space left on device"
- mysqld : le disque est en écriture complète '/tmp'
- [ERROR] mysqld : disque plein (https://experienceleague.adobe.com/tmp?lang=fr)
- SQLSTATE[HY000] : Erreur générale : 1 Impossible de créer/écrire dans le fichier '/tmp/'
- SQLSTATE[HY000] : Erreur générale : 23 ressources épuisées lors de l’ouverture du fichier '/tmp/'
- Errcode : 24 "Trop de fichiers ouverts"
- Erreur de récupération : 23 : ressources épuisées lors de l'ouverture du fichier
Étapes à reproduire :
Pour vérifier l’intégralité du montage /tmp
, dans l’interface de ligne de commande, passez à /tmp
et exécutez la commande suivante :
df -h
Résultat attendu :
Moins de 80%.
Résultat réel :
Environ 100%.
Cause
Le montage /tmp
contient trop de fichiers, qui peuvent être causés par :
- Requêtes SQL incorrectes générant des tables temporaires volumineuses et/ou trop nombreuses.
- Services écrivant dans le répertoire
/tmp
. - Sauvegardes/vidages de base de données laissés dans le répertoire
/tmp
.
Solution
Il existe des choses que vous pouvez faire pour libérer de l’espace une fois, et il existe des bonnes pratiques qui empêcheraient \tmp
d’être complet.
Vérifier et libérer des informations
Assurez-vous que suffisamment d’informations sont disponibles. Pour cela, exécutez la commande suivante :
df -i
La sortie ressemblerait à ce qui suit :
Filesystem Inodes Used Free Use% Mounted on
/dev/nvme2n1 655360 1695 653665 1% /data/mysql
Vérifiez que le taux d’utilisation est inférieur à 70 %. Les noeuds sont corrélés avec des fichiers. Si vous supprimez des fichiers de la partition, vous libérez des informations.
Vérifier et libérer l’espace de stockage
Plusieurs services peuvent enregistrer des fichiers dans /tmp
.
Vérifier et libérer l’espace MySQL
Suivez les instructions de la section L’espace disque MySQL est faible sur Adobe Commerce sur l’infrastructure cloud > Vérifier et libérer l’espace de stockage dans notre base de connaissances de support.
Vérification des vidages Elasticsearch
Supprimez les vidages (*.hprof
) à l’aide du shell système :
find /tmp/*.hprof -type f -delete
Si vous ne disposez pas des autorisations nécessaires pour supprimer des fichiers créés par un autre utilisateur (dans ce cas, Elasticsearch), mais que vous constatez que les fichiers sont volumineux, veuillez créer un ticket d'assistance pour les traiter.
Vérification des vidages/sauvegardes de base de données
Vérifiez les fichiers /tmp
ou .sql
et nettoyez-les. .sql.gz
Ils peuvent avoir été créés par des outils de base de données lors de la sauvegarde ou lors de la création manuelle de vidages de base de données à l’aide de l’outil mysqldump
.
Bonnes pratiques
Pour éviter d’obtenir des problèmes avec /tmp
saturés, suivez ces recommandations :
-
N’utilisez pas MySQL pour la recherche. L’Elasticsearch pour la recherche élimine généralement la nécessité de la plupart des créations de tables temporaires volumineuses. Voir Configuration d’Adobe Commerce pour utiliser Elasticsearch dans notre documentation destinée aux développeurs.
-
Évitez d’exécuter la requête
SELECT
sur des colonnes sans index, car cela consomme beaucoup d’espace disque temporaire. Vous pouvez également ajouter les index. -
Créez un cron pour nettoyer
/tmp
en exécutant la commande suivante dans l’interface de ligne de commande :code language-bash sudo find /tmp -type f -atime +10 -delete
Lecture connexe
L’espace disque MySQL est faible sur Adobe Commerce sur l’infrastructure cloud dans notre base de connaissances de support.