ID de la causa dk-full · Responsable principal Infraestructura de servidores (Equipo de infraestructura) · También Infraestructura de BD (Equipo de infraestructura), Desarrollo de servidor (Equipo de desarrollo)
Si los logs y los volcados se acumulan hasta llenar el disco, las escrituras fallan y, si no hay nada previsto, el servidor se cae.
Por qué Logs, volcados y archivos temporales se acumulan hasta el 100% → Efecto Fallan las escrituras. Sin manejo de errores, crash; con manejo de errores, fallos al guardar → En pantalla Desconexión, rollback del progreso
Responsable principal Infraestructura de servidores (Equipo de infraestructura) · También Infraestructura de BD (Equipo de infraestructura), Desarrollo de servidor (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Manejar los fallos de escritura con reintento del guardado y alerta (sin llegar al crash), reducir los logs y volcados innecesarios.
Tareas (Equipo de infraestructura)
Servidores/SO: rotar los logs, poner alertas de espacio en disco, separar los discos de logs y de datos. Servidores de BD: vigilar que los logs de transacciones de la BD (WAL, binlog) no se acumulen por una replicación detenida o por copias de seguridad del log que no se hicieron.
En el gráfico
Subida gradual · Porcentaje de uso del disco
Dónde mirar
Porcentaje de uso de df -h y de inodos de df -i; buscar errores ENOSPC en los logs del servidor y de la BD. En la BD: en PostgreSQL, slots de pg_replication_slots con active en false; en MySQL, el número y el tamaño de los archivos de SHOW BINARY LOGS; en SQL Server, log_reuse_wait_desc de sys.databases; en RDS, FreeStorageSpace
Se confirma si
El porcentaje de uso sube de forma constante durante varios días y llega al 100% a la misma hora que los crashes o los fallos al guardar, y en los logs queda ENOSPC
Se descarta si
Si hay espacio de sobra pero las escrituras fallan, apunta a otra causa (permisos, límite de tamaño de archivo)
Se verifica con
Con herramientas de infraestructura (no hace falta código del juego)
Para saber más
Los logs de transacciones de la BD (WAL, binlog, etc.) no se borran y siguen acumulándose si una réplica se detiene o falta una copia de seguridad del log. Si ese disco se llena, todas las escrituras de la BD se detienen y los guardados y los intercambios fallan todos a la vez.
Fuentes
write(2) — Linux manual pageLinux man-pages Si no queda espacio en el dispositivo, la escritura falla con el error ENOSPC
Log-Shipping Standby Servers (PostgreSQL Documentation)PostgreSQL Un slot de replicación no borra el WAL hasta que la réplica lo recibe, por lo que puede llenar el espacio de pg_wal (se limita con max_slot_wal_keep_size)
Troubleshoot a full transaction log (SQL Server Error 9002)Microsoft SQL Server Con el log lleno, la BD solo admite lecturas y no se puede modificar; las causas habituales que impiden truncar el log son copias de seguridad del log que faltan, retraso de replicación y transacciones largas; qué lo impide se ve en log_reuse_wait_desc de sys.databases
df(1) — Linux manual pagecoreutils Uso por sistema de archivos; -i cambia la medida de bloques a inodos