Solucionar problemas del montaje completo de /tmp para Adobe Commerce

Este artículo proporciona una solución para cuando el montaje /tmp está lleno, el sitio puede estar caído y no puede SSH en un nodo.

Descripción description

Productos y versiones afectados

Adobe Commerce 2.3.0: 2.3.6-p1, 2.4.0: 2.4.2

Problema

Si el montaje /tmp está lleno, es posible que aparezcan varios síntomas, incluidos los siguientes errores:

  • SQLSTATE[ HY000] : Error general: 3 Error al escribir el archivo

  • Código de error: 28

  • No queda espacio en el dispositivo (28)

  • error session_start(): error: no queda espacio en el dispositivo

  • *ERROR 1 (HY000): No se puede crear/escribir en el archivo '/tmp/* *

  • Error de SQL: 3, SQLState: HY000

  • Error general: disco 1021 lleno (https://experienceleague.adobe.com/tmp?lang=es)

  • *No se puede acceder al nodo a través de SSH:

    bash: no se puede crear el archivo temporal para aquí-documento: no queda espacio en el dispositivo*

  • error: 28 "No queda espacio en el dispositivo"

  • mysqld: el disco está escribiendo por completo '/tmp'

  • [ERROR] mysqld: Disco lleno (https://experienceleague.adobe.com/tmp?lang=es)

  • SQLSTATE[ HY000] : Error general: 1 No se puede crear/escribir en el archivo '/tmp/'

  • SQLSTATE[ HY000] : Error general: 23 Sin recursos al abrir el archivo '/tmp/'

  • Código de error: 24 "Demasiados archivos abiertos"

  • Error obtenido: 23: Recursos insuficientes al abrir el archivo

Pasos a seguir:

Para comprobar el grado de llenado del montaje /tmp, en la CLI cambie a /tmp y ejecute el siguiente comando: df -h

Resultado esperado:

Menos del 80%.

Resultado real:

Alrededor del 100%.

Causa

El montaje de /tmp tiene demasiados archivos, lo que podría deberse a lo siguiente:

  • Consultas SQL incorrectas que generan tablas temporales grandes o demasiadas.
  • Servicios escribiendo en el directorio /tmp.
  • Copias de seguridad/volcados de base de datos restantes en el directorio /tmp.

Resolución resolution

Hay cosas que puede hacer para liberar espacio una vez y hay prácticas recomendadas que evitarían que /tmp se llenara.

Comprobación y liberación de inodes

Asegúrese de que haya suficientes nodos disponibles. Para ello, ejecute el siguiente comando: df -i

El resultado sería similar al siguiente: Filesystem Inodes Used Free Use% Mounted on /dev/nvme2n1 655360 1695 653665 1% /data/mysql

Compruebe que el % de uso sea < 70 %. Los nodos se correlacionan con los archivos. Si elimina archivos de la partición, liberará inodes.

Compruebe y libere espacio de almacenamiento

Hay varios servicios que podrían estar guardando archivos en /tmp.

Comprobar y liberar espacio en MySQL

Siga las instrucciones de MySQL disk space is low on Adobe Commerce on cloud Infrastructure > Compruebe y libere espacio de almacenamiento en nuestra base de conocimiento de asistencia.

Compruebe los volcados de pila de Elasticsearch

ADVERTENCIA
Los volcados de la pila contienen información de registro que puede ser útil para investigar problemas. Considere la posibilidad de almacenarlas en un lugar separado durante al menos 10 días.

Eliminar volcados de la pila (*.hprof) mediante el shell del sistema: find /tmp/*.hprof -type f -delete

Si no tiene permisos para eliminar archivos creados por otro usuario (en este caso, Elasticsearch), pero ve que los archivos son grandes, cree un ticket de asistencia para encargarse de ellos.

Comprobar volcados/copias de seguridad de base de datos

ADVERTENCIA
Las copias de seguridad de bases de datos suelen crearse con un propósito. Si no está seguro de si el archivo sigue siendo necesario, considere la posibilidad de moverlo a una ubicación independiente en lugar de eliminarlo.

Busque /tmp archivos de .sql o .sql.gz y límpielos. Es posible que se hayan creado mediante ece-tools durante la copia de seguridad o al crear manualmente volcados de base de datos con la herramienta mysqldump.

Prácticas recomendadas

Para evitar problemas con /tmp, siga estas recomendaciones:

  • No utilice MySQL para la búsqueda. Elasticsearch para la búsqueda generalmente elimina la necesidad de la mayoría de las creaciones de tablas temporales pesadas. Consulte Configuración de Adobe Commerce para usar Elasticsearch en nuestra documentación para desarrolladores.
  • Evite ejecutar la consulta SELECT en columnas sin índices, ya que esto consume una gran cantidad de espacio temporal en disco. También puede añadir los índices.
  • Cree un cron para limpiar /tmp ejecutando el siguiente comando en la CLI: sudo find /tmp -type f -atime +10 -delete
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f