Atlasingeniería

Incidentes en un servidor propioFallas que no avisanTema 4

El disco que se llena solo: caches, imágenes y logs

Un servidor que funcionaba se queda sin espacio y todo empieza a fallar a la vez, de formas que no parecen relacionadas. Qué ocupa el disco en un servidor con muchos contenedores y cómo se mantiene solo.

El disco lleno es una de las fallas más desagradables porque no se presenta como tal: la base deja de aceptar escrituras, una aplicación devuelve errores raros, un despliegue falla creando el contenedor, los registros se cortan. Cuatro síntomas distintos, una sola causa.

Y en un servidor con muchos contenedores, el espacio desaparece sin que nadie guarde nada.

Quién se come el disco

QuéPor qué creceCuánto puede llegar a ser
Imágenes viejasCada reconstrucción deja la anterior sin etiquetaDecenas de gigabytes en pocos meses
Caché de construcciónGuarda capas intermedias de cada buildMás que las imágenes mismas
Registros de contenedoresSin límite configurado, crecen para siempreUn servicio verboso llena un disco solo
Volúmenes huérfanosQuedan cuando un servicio cambia de nombreTodo lo que tenía la base anterior
Caché de gestores de paquetes y directorios temporalesCada instalación y cada proceso deja restosVarios gigabytes acumulados
Ninguno de estos es un error: todos son el funcionamiento normal sin límites puestos.

Hay un detalle que confunde al diagnosticar: borrar un archivo que un proceso todavía tiene abierto no libera el espacio hasta que ese proceso lo cierre. El tamaño del directorio baja y el disco sigue igual de lleno.

Poner límites en vez de limpiar a mano

Lo que se configura una vez

  1. Rotación de registros por contenedor: tamaño máximo y cantidad de archivos. Es la medida que más espacio ahorra y la que más se olvida.
  2. Techo para la caché de construcción, para que se mantenga sola en vez de crecer sin fin.
  3. Rotación de los registros del sistema y de las aplicaciones, con retención acotada.
  4. Limpieza periódica de imágenes sin etiqueta, contenedores detenidos y volúmenes sin uso, con una tarea programada y no a mano.

Avisar con margen

La diferencia entre un mantenimiento tranquilo y un incidente es cuándo llega el aviso.

Antes de seguir, predecí

¿Cuál es un buen umbral de alerta para el disco de un servidor de aplicaciones?

Además del porcentaje conviene mirar la tendencia: un crecimiento sostenido indica algo que se está acumulando, y es mejor encontrarlo por la pendiente que por el umbral.

Cuando ya pasó

El orden para recuperar espacio rápido

  1. Ver qué partición se llenó. No siempre es la raíz: puede ser la de datos o la de registros.
  2. Ubicar los directorios más grandes, de arriba hacia abajo, en vez de adivinar.
  3. Empezar por lo seguro: caché de construcción e imágenes sin etiqueta. No tocan datos.
  4. Después, registros viejos, comprobando que el proceso los haya soltado.
  5. Al final, y con cuidado, volúmenes, sólo después de confirmar a qué servicio pertenecen.
Más a fondo · nivel seniorLos inodos también se acaban

Un caso que desconcierta: el disco muestra espacio libre y el sistema dice que no puede crear archivos. Es que se agotaron los inodos, por millones de archivos diminutos —cachés de paquetes, sesiones, directorios temporales—. Se diagnostica con la vista de inodos del comando de espacio, y se resuelve borrando cantidad de archivos, no tamaño. Si no se sabe que existe, se pierden horas buscando espacio que sí hay.

Encontrarlo en el log

Buscá en el log

Un despliegue falló de madrugada y el disco decía 94 % ocupado, no 100 %. ¿Qué línea explica por qué falló igual?

debug 2info 5warn 3error 212 de 12

Que no vuelva a pasar

Cierre

Autoevaluación

¿Lo entendiste?

¿Qué suele ocupar más espacio en un servidor con muchos contenedores?
Se borraron archivos grandes y el disco sigue lleno. ¿Qué pasa?