[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

Dépannage du montage /tmp complet pour Adobe Commerce

Cet article fournit une solution pour le cas où le montage /tmp est saturé, où le site est en panne et où vous ne pouvez pas effectuer de SSH sur un nœud.

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 saturé, divers symptômes peuvent se produire, notamment les erreurs suivantes :

  • SQLSTATE[HY000] : Erreur générale : 3 Erreur lors de l'écriture du fichier
  • Code d'erreur : 28
  • Pas d'espace restant sur l'appareil (28)
  • error session_start(): failed: No space left on device
  • ERREUR 1 (HY000) : impossible de créer/écrire dans le fichier '/tmp/
  • Erreur SQL : 3, SQLState : HY000
  • Erreur générale : 1 021 Disque plein (https://experienceleague.adobe.com/tmp?lang=fr)
  • Impossible d’accéder au nœud via SSH:
    bash: impossible de créer un fichier temporaire pour here-document: Il ne reste plus d'espace sur l'appareil
  • errno : 28 « Aucun espace restant sur l'appareil »
  • mysqld : le disque est en pleine écriture '/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 insuffisantes lors de l'ouverture du fichier '/tmp/'
  • Code d’erreur : 24 « Trop de fichiers ouverts »
  • Erreur reçue : 23 : ressources insuffisantes lors de l’ouverture du fichier

Procédure à suivre :

Pour vérifier si le montage /tmp est plein, 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 comporte trop de fichiers, ce qui peut être dû aux éléments suivants :

  • 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 y a des choses que vous pouvez faire pour libérer de l'espace une fois, et il y a des pratiques exemplaires qui empêcheraient les \tmp d'être pleines.

Vérifier et libérer des nœuds

Assurez-vous qu’il y a suffisamment d’inodes 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 pourcentage d’utilisation est < 70 %. Les nœuds sont corrélés aux fichiers. Si vous supprimez des fichiers de la partition, vous libérez des inodes.

Vérifier et libérer de l'espace de stockage

Plusieurs services peuvent enregistrer des fichiers dans /tmp.

Vérifier et libérer de 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 de l’espace de stockage dans notre base de connaissances du support.

Vérifier les vidages de tas d’Elasticsearch

WARNING
Les images mémoire contiennent des informations de journalisation qui peuvent s’avérer utiles pour enquêter sur les problèmes. Envisagez de les stocker dans un emplacement distinct pendant au moins 10 jours.

Supprimez les vidages de tas (*.hprof) à l’aide du shell système :

find /tmp/*.hprof -type f -delete

Si vous ne disposez pas des autorisations nécessaires pour supprimer les 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 gérer.

Vérifier les sauvegardes/vidages de bases de données

WARNING
Les sauvegardes de base de données sont généralement créées dans un but précis. Si vous ne savez pas si le fichier est toujours nécessaire, envisagez de le déplacer vers un emplacement distinct au lieu de le supprimer.

Recherchez /tmp fichiers .sql ou .sql.gz et nettoyez-les. Ils peuvent avoir été créés par ece-tools pendant 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 tout problème lié au remplissage du /tmp, suivez ces recommandations :

  • N’utilisez pas MySQL pour la recherche. Elasticsearch for search élimine généralement la nécessité de créer des 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 une grande quantité d’espace disque temporaire. Vous pouvez également ajouter les index.

  • Créez un cron pour nettoyer les /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 les infrastructures cloud dans notre base de connaissances d’assistance.

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a