Solucionar problemas del montaje completo de /tmp para Adobe Commerce
Este artículo proporciona una solución para cuando el montaje de /tmp
esté lleno, el sitio pueda estar caído y no pueda SSH en un nodo.
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 obtener acceso 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 Recursos insuficientes 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
.
Solución
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 Use% 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 del Elasticsearch
Elimine los 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
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. El 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:code language-bash sudo find /tmp -type f -atime +10 -delete
Lectura relacionada
El espacio en disco de MySQL es bajo en Adobe Commerce en la infraestructura en la nube en nuestra base de conocimiento de soporte.